Hast du jetzt 'n Vor-/Folgejahr eingestellt ...
26.11.2013 01:45:21
Luc:-?
…und die Mappe so hochgeladen, Mike?
Das habe ich nicht überprüft und einen solchen Fehler auch nicht abgefangen. Dann muss man das anders machen, nämlich sich ggf nach der Jahreszahl in der Tab richten:
Sub StartZelle()
Const zlOff As Long = 2, adJahrZ$ = "F3", adMonBer$ = "A7:A40"
Dim axDatum As Variant, monBer As Range
axDatum = Split(Range(adJahrZ).Text & Format(Now, "-m d"))
Set monBer = Range(adMonBer)
monBer.Cells(WorksheetFunction.Match(CLng(CDate(axDatum(0) & "-1")), _
monBer, 0)).Offset(zlOff, CInt(axDatum(1))).Activate
Set monBer = Nothing
End Sub
Aber eigentl ist das Quatsch, denn in anderen Jahren als dem aktuellen müssten eigentl andere Zellen ausgewählt wdn:
1. in Vorjahren evtl der 31.12. oder sonstwas bzw gar nichts,
2. in Folgejahren der 1.1. oder ebenfalls dito.
Deshalb schlage ich eher Folgendes vor:
Sub StartZelle()
Const zlOff As Long = 2, adJahrZ$ = "F3", adMonBer$ = "A7:A40"
Dim fxJahr As Long, axDatum As Variant, monBer As Range
On Error GoTo fx
fxJahr = Range(adJahrZ)
If fxJahr Year(Now) Then Err.Raise xlErrNum
axDatum = Split(Format(Now, "yyyy-m d"))
Set monBer = Range(adMonBer)
monBer.Cells(WorksheetFunction.Match(CLng(CDate(axDatum(0) & "-1")), _
monBer, 0)).Offset(zlOff, CInt(axDatum(1))).Activate
GoTo ex
fx: If Err.Number = xlErrNum Then
MsgBox "Das eingestellte Jahr entspricht nicht dem aktuellen!", _
vbExclamation, "Jahresvergleich"
Else: MsgBox Err.Description, vbCritical, "Interner Fehler " & CStr(Err.Number)
End If
ex: Set monBer = Nothing
End Sub
Mann, du bringst mich noch um den Verstand… ;-]
Gruß Luc :-?