Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Markierung einer Zelle verschwindet

Markierung einer Zelle verschwindet
04.12.2020 11:15:13
Jvana
Liebes Forum
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierung einer Zelle verschwindet
04.12.2020 16:42:42
Yal
Hallo Jvana,
Schön wie Du es auf die Beine gestellt hat.
Die Gestaltung lagere ich in eine separate Sub, die die Adresse der Zelle als String annimmt.
Was Du brauchst, ist dieposition der ActiveCell auf die Seite zu legen, und diese wieder zu setzen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ActCellMemory As Range
Set ActCellMemory = ActiveCell
Gestaltung Target.Address(False, False)
ActCellMemory.Parent.Activate 'ehem. Worksheet
ActCellMemory.Select          'ehem. aktive Zelle
End Sub
Private Sub Gestaltung(TargetAdresse As String)
If TargetAdresse = "D16" Then
Viel Erfolg
Yal
Anzeige
AW: Markierung einer Zelle verschwindet
04.12.2020 17:08:54
Jvana
Hallo Yal
Danke erstmals für deine Anwort. Ich habe es so versucht (praktisch Copy/paste deines Codes):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ActCellMemory As Range
Set ActCellMemory = ActiveCell
Gestaltung Target.Address(0, 0)
ActCellMemory.Parent.Activate 'ehem. Worksheet
ActCellMemory.Select          'ehem. aktive Zelle
End Sub

Private Sub Gestaltung(TargetAdresse As String)
If TargetAddresse = "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
End Sub

Leider funktioniert nun das Ein- und Ausblenden der Spalten / Zeilen nun nicht mehr.
Oder muss dein zusätzlicher "Memory"-Code in ein anderes Code-Fenster?
Gruss
Jvana
Anzeige
AW: Markierung einer Zelle verschwindet
04.12.2020 18:16:02
Yal
Sorry, wieder geschlampert:
Gestaltung weißt natürlich nicht, was Target ist.
Prüfung Target im Erregnis-Proc machen und als Parameter übergeben.
In Gestalung diese Parameter verwenden.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ActCellMemory As Range
Set ActCellMemory = ActiveCell
Gestaltung Target.Address(0, 0), (Target = 0)
ActCellMemory.Parent.Activate 'ehem. Worksheet
ActCellMemory.Select          'ehem. aktive Zelle
End Sub
Private Sub Gestaltung(TargetAdresse As String, TargetIsNull As Boolean)
If TargetAddresse = "D16" Then 'Lehrperson
Sheets("Zeiterfassung1").Unprotect
Worksheets("Zeiterfassung1").Columns("F:F").EntireColumn.Hidden = TargetIsNull
Worksheets("Zeiterfassung1").Columns("L:M").EntireColumn.Hidden = TargetIsNull
Worksheets("Zeiterfassung1").Columns("S:T").EntireColumn.Hidden = TargetIsNull
VG
Yal
Anzeige
AW: Markierung einer Zelle verschwindet
04.12.2020 21:03:44
Jvana
Hallo Yal
Danke nochmals.
Die Spalten und Zeilen werden nun wieder wie gewünscht aus- und eingeblendet. Nun leider ist mein ursprüngliches Problem zurück, dass die Markierung verschwindet... siehe Bild: Userbild
wie man im Namenfeld sieht, ist die Zelle D18 markiert, jedoch sieht man die Markierung nicht...
Wenn ich das Tabellenblatt wechsle oder ein anderes Programm am PC auswähle und dann zurückgehe in das Tabellenblatt "Einstellung Person", dann erscheint die Markierung wieder.
Wie könnte das Problem, das vor allem ein Anwender-Schönheitsfehler ist, gelöst werden?
Liebe Grüsse
Jvana
Anzeige
AW: Markierung einer Zelle verschwindet
04.12.2020 21:12:35
Yal
Versuche mal die reihenfolge der beiden letzten Zeilen von Worksheet_Change zu tauschen... Ratlos.
Es scheint etwas bei der Aktiviterung des Blattes zu fehlen.
Ein ActCellMemory.Activate könnte vielleicht auch helfen. Im gleichen Block. Reihenfogle unklar.
AW: Markierung einer Zelle verschwindet
04.12.2020 21:29:39
Jvana
Deine beiden Tipps habe ich nun auch noch ausprobiert, sie haben leider mein Problem auch nicht gelöst. Bin auch ratlos...
Hat sonst jemand noch eine Idee, wie das Problem gelöst werden könnte?
Danke und viele Grüsse
Jvana
AW: Markierung einer Zelle verschwindet
04.12.2020 21:31:31
Jvana
Sorry, habe das "Thread-noch-offen"-Kästchen vorher nicht aktiviert
AW: Markierung einer Zelle verschwindet
04.12.2020 21:58:39
Jvana
Ich habe das Problem auf eine ganz unschöne Art gelöst. Wie ich beschrieben habe, kommt die sichtbare Markierung zurück, wenn ich auf ein anderes Tabellenblatt klicke und dann zurückgehe...
Das habe ich nun jeweils am Ende jeder If-Schleife im Code eingebaut:
Worksheets("Jahreskalender").Activate
Worksheets("Einstellung Person").Activate
Range("H19").Activate
Für das Archiv hier der Code, den ich zum Schluss anwende:
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
Worksheets("Jahreskalender").Activate
Worksheets("Einstellung Person").Activate
Range("D17").Activate
End If
End Sub

Anzeige
AW: Markierung einer Zelle verschwindet
04.12.2020 22:03:26
Yal
Neugierigkeitshalber, was passiert, wenn ein Screenupdating-Unterdrückung eingebaut wäre?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ActCellMemory As Range
Application.ScreenUpdating = False
Set ActCellMemory = ActiveCell
Gestaltung Target.Address(0, 0), (Target = 0)
ActCellMemory.Parent.Activate 'ehem. Worksheet
ActCellMemory.Select          'ehem. aktive Zelle
Application.ScreenUpdating = True
End Sub
VG
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige