Markierung einer Zelle verschwindet
04.12.2020 11:15:13
Jvana
Anbei das File zu meiner Frage: https://www.herber.de/bbs/user/142061.xlsm
Ich habe mit meinem Halbwissen und bestehenden Foreneinträgen einen Worksheet_Change(ByVal Target As Range)-VBA-Code erstellt. Das Makro ist im Codefenster vom Tabellenblatt "Einstellung Person" drin, funktioniert grundsätzlich und sieht so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "D16" Then 'Lehrperson
Sheets("Zeiterfassung1").Unprotect
Worksheets("Zeiterfassung1").Columns("F:F").EntireColumn.Hidden = Target.Value = 0
Worksheets("Zeiterfassung1").Columns("L:M").EntireColumn.Hidden = Target.Value = 0
Worksheets("Zeiterfassung1").Columns("S:T").EntireColumn.Hidden = Target.Value = 0
Sheets("Zeiterfassung1").Protect
Sheets("Auswertung1").Unprotect
Worksheets("Auswertung1").Columns("C:K").EntireColumn.Hidden = Target.Value = 0
Sheets("Auswertung1").Protect
Sheets("Grafik1").Unprotect
Worksheets("Grafik1").Rows("1:32").EntireRow.Hidden = Target.Value = 0
Sheets("Grafik1").Protect
End If
If Target.Address(0, 0) = "D17" Then 'SL
Sheets("Zeiterfassung1").Unprotect
Worksheets("Zeiterfassung1").Columns("G:G").EntireColumn.Hidden = Target.Value = 0
Worksheets("Zeiterfassung1").Columns("N:N").EntireColumn.Hidden = Target.Value = 0
Worksheets("Zeiterfassung1").Columns("U:V").EntireColumn.Hidden = Target.Value = 0
Sheets("Zeiterfassung1").Protect
Sheets("Auswertung1").Unprotect
Worksheets("Auswertung1").Columns("L:N").EntireColumn.Hidden = Target.Value = 0
Sheets("Auswertung1").Protect
Sheets("Grafik1").Unprotect
Worksheets("Grafik1").Rows("33:63").EntireRow.Hidden = Target.Value = 0
Sheets("Grafik1").Protect
End If
End Sub
(plus noch drei weitere solcher "If-Schleifen") Das Problem ist, dass die Markierung im Tab "Einstellung Person" nicht mehr sichtbar ist, wenn man die erste Zahl eingegeben hat und mit Enter bestätigt. Das wird wohl an der Bastelei liegen und kann sicher ganz einfach behoben werden ;-)
Das Ziel des Codes ist übrigens, dass wenn in der entsprechenden Zelle im Tab "Einstellung Person" eine 0 eingetragen wird oder der irgendwann vorher eingetragene Inhalt des Feldes gelöscht wird (delete), dass dann gewisse Spalten im Tab "Zeiterfassung1" und "Auswertung1" sowie gewisse Zeilen im Tab "Grafik1" ausgeblendet werden (alle Tabs sind ohne PW gesperrt).
Wäre es evtl. eine Option, den Code im Tab "Zeiterfassung1" zu hinterlegen und in einen bereits bestehenden "Worksheet_Activate()"-Code zu integrieren?
Danke schon im Voraus für eure Hilfe.
Liebe Grüsse
Jvana