08.11.2021, 23:56
Hallo
da sind offenbar so einige kleine Flüchtigkeitsfehler in diversen Codes! Gehen wir sie der Reihe nach durch:
Löscht nur eine Zelle statt die ganze Zeile. Ist laut Makro auch völlig korrekt, beim Code Selection.Delete!
Die Umschaltung in L1 funktioniert nicht. Kann sie auch nicht, wenn man im Makro NICHT von 1 auf 2 oder umgekehrt wechselt!
Auch diese Funktion ist laut Makro völlig korrekt. Da kann man sich zu Tode ärgern. Oder man ist einfach Clever!
Ich habe mir erlaubt an deiner Beispieldatei ein paar kleine Änderungen vorzunehmen. Die könnten dich verblüffen.
Um die Tabelle entsperrt bearbeiten zu können gibst du in Zelle "D2" den Text "Free" ein, dann bleibt sie entsperrt.
Den Blattschutz kannst du durch einmal umschalten von L1 Deaktivieren. Bei meinem Code bleibt er auch deaktiviert.
Zum Umschalten von L! habe ich die Zelle von D! nach H1 verlegt. Da liegt sie unter einem Button, nicht zugänglich.
Dafür habe ich den Blattschutz für H1 aufgehoben, sonst kann es sein das die Umschaltung irgendwann versagt!
mfg Gast 123
Für Heute ist's genug, wenn es noch Probleme gibt, morgen ist auch noch ein Tag ....
da sind offenbar so einige kleine Flüchtigkeitsfehler in diversen Codes! Gehen wir sie der Reihe nach durch:
Löscht nur eine Zelle statt die ganze Zeile. Ist laut Makro auch völlig korrekt, beim Code Selection.Delete!
Code:
Private Sub CommandButton22_Click()
ActiveSheet.Unprotect Password:="TEST"
Selection.EntireRow.Delete Shift:=xlUp
ActiveSheet.Protect Password:="TEST"
End Sub
Die Umschaltung in L1 funktioniert nicht. Kann sie auch nicht, wenn man im Makro NICHT von 1 auf 2 oder umgekehrt wechselt!
Code:
Sub Spalten_C_F_EIN_AUS()
Application.ScreenUpdating = False
ActiveSheet.Unprotect Password:="TEST"
Select Case ActiveSheet.Range("H1").Value
Case 1
Range("J:J,K:K").EntireColumn.Hidden = True
Range("G:G,H:H,I:I").EntireColumn.Hidden = False
ActiveSheet.Range("H1") = 2
Case 2
Range("G:G,I:I").EntireColumn.Hidden = True
Range("H:H,J:J,K:K").EntireColumn.Hidden = False
ActiveSheet.Range("H1") = 1
End Select
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="TEST"
Application.ScreenUpdating = True
End Sub
'Zusätzlich Code unter Tabelle1, falls Wert in A4 nicht über die Options-Schaltflächen geändert _
wird
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Hallo"
ActiveSheet.Unprotect Password:="TEST"
If Range("H1") = 3 Then Exit Sub
Select Case Target.Address
Case "$D$1"
Spalten_J_K_EIN_AUS
Case Else
'do nothing
If [d2].Value = "Free" Then Exit Sub
ActiveSheet.Protect Password:="TEST"
End Select
End Sub
Auch diese Funktion ist laut Makro völlig korrekt. Da kann man sich zu Tode ärgern. Oder man ist einfach Clever!
Zitat:wenn ich die Tabelle manuell entsperre und iregendwohin klicke, sperrt sie sich automatisch wieder
Ich habe mir erlaubt an deiner Beispieldatei ein paar kleine Änderungen vorzunehmen. Die könnten dich verblüffen.
Um die Tabelle entsperrt bearbeiten zu können gibst du in Zelle "D2" den Text "Free" ein, dann bleibt sie entsperrt.
Den Blattschutz kannst du durch einmal umschalten von L1 Deaktivieren. Bei meinem Code bleibt er auch deaktiviert.
Zum Umschalten von L! habe ich die Zelle von D! nach H1 verlegt. Da liegt sie unter einem Button, nicht zugänglich.
Dafür habe ich den Blattschutz für H1 aufgehoben, sonst kann es sein das die Umschaltung irgendwann versagt!
mfg Gast 123
Für Heute ist's genug, wenn es noch Probleme gibt, morgen ist auch noch ein Tag ....