ich habe eine Art Kalender erstellt. Dieser besteht aus 12 Sheets für die jeweiligen Monate. In der Zeile 1 sind jeweils (im benutzerdefninierten Zahlenformat "T") die aktuellen Tage hinterlegt.
Ich habe anschließend an einem Makro gebastelt, welches den jeweiligen Monatssheet aktivieren sollte um im Anschluss auf den aktuellen Tag zu scrollen.
Dies war mein erster Enwurf:
'(Arbeitsmappe)
Private Sub Workbook_Open()
Datumssprung
End Sub
'(Module)
Sub Datumssprung()
Dim bDate As Byte
ActiveSheet.Unprotect
bDate = Format(Date, "mm")
Sheets(bDate).Select
ActiveSheet.Range("A2").Select
Set gZelle = Rows(1).Find(DateValue(Date), _
LookIn:=xlFormulas)
ActiveWindow.ScrollColumn = gZelle.Column
ActiveSheet.Protect
End Sub
Leider funktionierte das Makro nur, wenn vorher schon das Tabellenblatt mit dem richtigen Monat aktiviert war.
Andernfalls blieb die Variable gZelle leer und ich bekam in der Folgezeile eine Fehlermeldung.
Mit folgenden Änderunge funktionierte mein Makro endlich:
Private Sub Workbook_Open()
Dim bDate As Byte
bDate = Format(Date, "mm")
Sheets(bDate).Select
Range("A2").Select
Datumssprung
End Sub
Sub Datumssprung()
ActiveSheet.Unprotect
Set gZelle = Rows(1).Find(DateValue(Date), _
LookIn:=xlFormulas)
ActiveWindow.ScrollColumn = gZelle.Column
ActiveSheet.Protect
End Sub
Nur von der Logik habe ich nicht verstanden, warum die Zeile mit "set gZelle" bei meinem ersten Makro nicht funktioniert hat. Es sollte doch eigentlich auf dem aktuellen Tabellenblatt das Datum suchen.
Kann mir jemand erklären, warum dem nicht so war?
cu
Marco