Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Werte per Maus einfügen bei Blattschutz
#11
@cysu11

eine leere habe ich doch angehängt.. aber was meinst Du mit 2?

@schauan

stimmt, hab ich... und zwar in jedem Sheet (sollen 100 werden) um die Butoons rechts "schwebend" zu machen.

Wenn ich wüßte wie, würde ich das gern auch in "DieseArbeitsmappe" packen, da es mit vielen Sheets ohnehin laaaangsam wird.

Hast Du da eine Idee für mich?

Ich habe versucht, statt ActiveX-Steuerelement ein Formularsteuerelement zu nutzen um jeden einzelnen Button in ein Modul zu packen, bin aber daran
gescheitert. :(

@RPP63

das stimmt... in diesem Fall macht es vom Workflow aber Sinn... Würde man den "korrekten" Weg gehen, wären mehrere Arbeitsschritte vorher nötig.

...und funktioniert in eine "normale" Excel-Tabelle so ja auch problemlos. ;)
Gruß

ItsME
Antworten Top
#12
Hallöchen,

auch in DieseArbeitsmappe ist ein ...SelectionChange ein ...SelectionChange mit den entsprechenden FolgenSad

Allgemein zum Unterschied Blatt und DieseArbeitsmappe:
Du kannst das mal dort raussuchen und wirst sehen, dass da z.B. ein Parameter für das Blatt dazu kommt. Du müsstest also die Aktionen / Bereiche im Makro dem entsprechenden Blatt zuordnen, also z.B.
statt
Range("A1")...
dann
sh.Range("A1")...

oder mit with arbeiten
statt
Range("A1")...
dann
With sh
.Range("A1")...
...
.Range("A2")...
End With
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
@schauan

ist staune immer mehr, dass Ihr versteht, was da was bedeutet und was wohin führt 92

Je mehr ich versuche, zu verstehen, was da passiert, desto weniger kommt das bei meinen grauen Zellen an... vllt. hab ich zu spät damit angefangen 20 

Wenn ich nach "Range" im Projekt suche finde ich "ActiveWindow.VisibleRange.Cells" und "sh.range", sowie "Dim Found As Range"...

Was will ich damit sagen? Nichts... verstehe ja die zusammenhänge gar nicht 20 20 

Ich bastel eigentlich nur und hoffe, dass danach etwas so funktioniert wie ich es mir vorstelle... wenn nicht, heule mich mich bei Euch aus und hoffe auf Hilfe.  Blush 

Meine Bastelei hat zumindest schonmal dazu geführt, dass die Mappe bei vielen Sheets kleiner wurde als vorher, da ich es irgendwie geschafft habe, dass nach der Auslagerung einiger Code-Zeilen in Module (fast) alles noch
funktioniert...

Aber nicht fragen, wie... wiederholen könnte ich das vermutlich nicht.
Gruß

ItsME
Antworten Top
#14
ok... neue Idee...

Ich werde jetzt die ganzen ActiveX-Steuerelemente rausnehmen und statt dessen mit einer UserForm
arbeiten.

Dazu bin ich wie folgt vorgegangen:

Unter Formulare habe ich eine neue UserForm ("Sprungmarken") angelegt, meine Buttons darauf postioniert und jeden Button mit dem dazugehörigen Script versehen (Sprung in eine bestimmte Zeilennummer).

Ich rufe auf mit:
Code:
Option Explicit
Sub UserForm()
    ActiveSheet.Unprotect Password:="Test"
Sprungmarken.Show vbModeless
    If [d2].Value = "Free" Then Exit Sub
    ActiveSheet.Protect Password:="Test"
End Sub
und das ist der Code im UserForm
Code:
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 100
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton10_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1500
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton11_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 600
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton12_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1600
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton13_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 700
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton14_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1700
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton15_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 800
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton16_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 900
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton17_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1000
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton18_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1800
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton19_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1900
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1100
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton20_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 2000
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton3_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 200
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton4_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1200
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton5_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 300
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton6_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1300
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton7_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 400
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton8_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 1400
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub

Private Sub CommandButton9_Click()
ActiveSheet.Unprotect Password:="Test"
Application.ActiveWindow.ScrollRow = 500
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="Test"
End Sub
Alles funktioniert auch eigentlich perfekt...

Jetzt hab ich nur einen Wunsch... gibt es eine Möglichkeit, dass sich Ecxel merkt, wo das Fenster zuletzt war?
Gruß

ItsME
Antworten Top
#15
Hallöchen,

1)
Du könntest mit gespeicherten Ansichten arbeiten
2)
Du speicherst die Position in einer globalen Variable. Also Am Anfang vom Modul
Public rngPosition as Range 'wenn Du die Zelle willst
oder
Public lRow as Long 'wenn Du die Zeile willst
oder
Public strAddr as String 'wenn Du die Zelladresse willst

Es gibt aber ein, zwei Aktionen wo der Variableninhalt ungewollt gelöscht wird
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
hmm...

ich probier mal rum...

Vielen Dank erstmal und schöne Feiertage allerseits.

Xmas11
Gruß

ItsME
Antworten Top
#17
Hi,

ich habe jetzt 2 meiner Features in eine UserForm verpackt.. klappt soweit auch ganz gut und funktioniert (yeah). :)

Aktuell rufe ich mit folgendem Modul auf:
Code:
Option Explicit
Sub ListeAnzeigen()
    ActiveSheet.Unprotect Password:="Test"
ListeArbeitsblätter.Show vbModeless
    ListeArbeitsblätter.Top = 259
    ListeArbeitsblätter.Left = 1298
    If [d2].Value = "Free" Then Exit Sub
    ActiveSheet.Protect Password:="Test"
End Sub
Leider erscheint die userForm beim ersten Klick auf den Button nicht an der eingestellten Position (beim 2ten Klick schon)... ich weiss nicht wirklich warum...  <-- das Problem konnte ich lösen.. im Code standen Positionsangaben, die hatte ich übersehen Sleepy

Und... gibt es eine Möglichkeit die UserForm mit dem Button ein- und auszublenden?

Gruß und schöne Feiertage
Gruß

ItsME
Antworten Top
#18
Hallo,

zum Ausblenden gibt es das Kommando Hide, also z.B. Me.Hide wenn der Button auf dem Userform ist
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#19
Hi,

der Button ist nicht im UserForm, sondern nur auf dem jeweiligen Sheet.

Die Userform enthält eine Liste aller Tabellenblätter und Buttons um in vordefinierte Zeilen zu springen.

Der Aufruf dieser Userform geschieht über ein Formularseuerlement, dem ich ein Modul zugeweisen habe (Inhalt siehe oben).

Funktioniert prima.. ich würd's gern auch mit dem gleichen Steuerelement ausblenden können... wär zumindest ganz nett Angel

PS: Vielleicht sogar... dass es beim Aufruf der Mappe direkt erscheint. 19
Gruß

ItsME
Antworten Top
#20
Hallöchen,

also, der Button mit dem Du es startest ist bei normaler Ausführung blockiert bis das Userform beendet wird. Einen Button auf das userform zu setzen ist einfacher, wie gesagt, benötigt er nur Me.Hide
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste