mein selbsterstellter Kalender hat in der Spalte D das jeweilige Datum pro Zeile.
Wie kann ich das anstellen, daß beim Starten des Kalenders die Zeile mit dem
Tagesdatum oben als erste (lieber noch als 2. !) steht ?
Vielen Dank
Private Sub Worksheet_Activate()
Dim zelle As Range
For Each zelle In Range("kalender")
If zelle.Value = Date Then
zelle.Select
Exit Sub
End If
Next zelle
End Sub
nur für Datum gültig nicht für Formel
Private Sub Worksheet_Activate()
Cells.Find(What:=Date, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub
Serge
Private Sub Worksheet_Activate()
Dim LoX As Long
For LoX = 1 To 365
If Cells(LoX, "D") = Date Then Application.Goto Cells(LoX, "D"), True: Exit For
Next
ActiveWindow.SmallScroll Down:=-1
Cells(ActiveCell.Row, 1).Select
Cells(ActiveCell.Row, 4).Select
End Sub
hier eine Beispielmappe: https://www.herber.de/bbs/user/46717.xls
Private Sub Worksheet_Activate()
Dim LoX As Long
For LoX = 1 To 365
If Cells(LoX, "D") = Date Then Application.Goto Cells(LoX, "D"), True: Exit For
Next
ActiveWindow.SmallScroll -1
Application.Goto Cells(ActiveCell.Row, 1)
Application.Goto Cells(ActiveCell.Row, 4)
End Sub
Es scheint so schneller zu laufen.
oder wie Serge Dir vorgeschlagen hat: (etwas modifiziert)
Private Sub Workbook_Open()
Dim zelle As Range
For Each zelle In Range("kalender")
If zelle.Value = Date Then Application.Goto zelle, True: Exit For
Next zelle
ActiveWindow.SmallScroll -1
Application.Goto Cells(ActiveCell.Row, 1)
Application.Goto Cells(ActiveCell.Row, 4)
End Sub
wobei Du dem Bereich D1:D365 den Namen Kalender zuweisen mußt.
Das geht so:
D1:D365 markieren - Strg+F3 - Namen vergeben