Kalenderwoche-Funktion über VBA aufrufen
01.11.2009 11:11:12
Erich
Hi Peter,
zunächst eine Bemerkung zur Funktion selbst:
Von- und Bis-Datum können in unterschiedlichen Jahre liegen.
Zumindest dann muss bei beiden Daten das Jahr mit angegeben werden, sonst ist das Ergebnis falsch.
Hier drei Testmakros mit Beispielen für den Aufruf der Fkt in VBA und die geänderte Fkt.:
Option Explicit
Sub Test1()
MsgBox Woche_von_bis(1, 2009)
MsgBox Woche_von_bis(40, 2009)
MsgBox Woche_von_bis(53, 2009)
End Sub
Sub Test2()
' in A1 stzeht die KW, in B1 das Jahr. Das Makro schreibt das Ergebnis in C1.
Cells(1, 3) = Woche_von_bis(Cells(1, 1), Cells(1, 2))
End Sub
Sub Test3()
Dim bytW As Byte, intJ As Integer, strW As String
bytW = 40
intJ = 2009
strW = Woche_von_bis(bytW, intJ)
MsgBox "Ergebnis: " & strW
End Sub
Function Woche_von_bis(intKW As Byte, intJJ As Integer)
'Gibt das Anfangs- und Enddatum einer Woche im Format TT.MM. - TT.MM.JJJJ
' oder TT.MM.JJJJ - TT.MM.JJJJ aus.
Dim datMo As Date, strJJ As String
datMo = DateSerial(intJJ, 1, 7 * intKW - 3 - Weekday(DateSerial(intJJ, 0, 0), 3))
If Year(datMo) Year(datMo + 6) Then strJJ = Format(datMo, "yyyy")
Woche_von_bis = Format(datMo, "dd.mm.") & strJJ & " - " & Format(datMo + 6, "dd.mm.yyyy")
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort