Wie so oft, kann man beim Rechnen mit Datum in Excel sagen: keine Regel ohne Ausnahme. In den Ausführungen über Datumsberechnungen mit Zellformeln hatte ich geschrieben: "Will man von einem Datum nur das Tagesdatum darstellen, so ist man auf dem falschen Weg, wenn versucht wird, mit so einer Formel =links(A1;2) diese Stellen "abzuschneiden". Da im Hintergrund eine ganz andere Zahl liegt, funtioniert so ein Ansatz nicht."
Diese Bemerkungen treffen nicht zu, wenn die Berechnungen über ein Makro ausgeführt werden. Die Quelltexte aus den Beispielen können kopiert und direkt im Visual Basic-Editor eingefügt werden. Diese und weitere Beipiele können aber auch im Downloadbereich herunter geladen werden.
Die folgenden Beipiele zeigen einige Möglichkeiten auf:
Sub datumberechnung() ' Schneidet die Jahreszahl von einem Datum ab und fügt eine neue hinzu ' postmaster@klaus-dieter-2000.de Dim dat As Date ' Variable deklarieren z = 1 ' Startzeile für Schleife Do While Cells(z, 1) <> "" ' Bedingung für Schleife dat = Left(Cells(z, 1), 6) & "2005" ' Wert an Variable übergeben Cells(z, 2) = dat ' Wert in neue Zelle schreiben z = z + 1 ' Schleifenzähler Loop ' Wendepunkt für Schleife End Sub ' Ende des Makros |
Dieses Makro schneidet vom Datum die Jahreszahl ab und fügt das Jahr 2005 an. Mit der Formatierung der Variable dat als Datum, wird erreicht, daß das Ergebnis wieder im Datumformat zurückgeschrieben wird.
Sub datum_splitten() ' Trennt ein Datum in Tag, Monat und Jahr ' postmaster@klaus-dieter-2000.de z = 2 ' Startzeile für Schleife Do While Cells(z, 1) <> "" ' Start Schleife Cells(z, 2).NumberFormat = "@" ' Textformat für Zelle Cells(z, 2) = Left(Cells(z, 1), 2) ' Tag Cells(z, 3).NumberFormat = "@" Cells(z, 3) = Mid(Cells(z, 1), 4, 2) ' Monat Cells(z, 4).NumberFormat = "@" Cells(z, 4) = Right(Cells(z, 1), 2) ' Jahr z = z + 1 ' Schleifenzähler Loop ' Wendepunkt für Schleife End Sub ' Ende des Makros |
Dieses Beipiel trennt ein Datum in Tag, Monat und Jahr.