Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Funktionen

Format

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --
Format - ein Kurzer Überblick

Die Formatfunktion ist eine sehr nützliche Funktion zum darstellen von Datum und Zahl.
Ich möchte hier nicht die VBA Hilfe abschreiben, sondern nur einen Kurzüberblick geben.
Die Struktur ist :

Format(Wert,"Ausgabeformat",[Erster Wochentag],[ErsteWocheImJahr],)

Wobei Wert hier auch ein in Anführungszeichen gesetztes Datum sein kann.
Bsp:
Format("12.3.2003","dddd dd.mm.yyyy") wird zu Mittwoch 12.03.2003

Die zwei letzten optionalen Argumente dienen nicht zur eigentlichen Formatierung sondern zu "Formatierten Berechnungen". (z.B. der Kalenderwoche) auf die ich hier nicht eingehen will.

1. Datumsformate
Die wichtigsten Bezeichner für Datum und Zeit
ZeichenBezieht sich auf
dTag
mMonat
yJahr
hStunde
nMinute
sSekunde


Die Wiederholung von Zeichen ändern die Darstellung.
z.B. dd ist der Tag 2-Stellig, ddd der Tag abgkürzt (z.B. Mi), dddd der Tag ausgeschrieben.

Für y sollte man entweder yy oder yyyy heranziehen.

Selbstverständlich kann man anstatt Datumsliteralen("12.3.2003") auch die entsprechende serielle Datumszahl benutzen. In unserem Beispielfall ergibt:
Format(37692,"dddd dd.mm.yyyy") auch wieder Mittwoch 12.03.2003

2. Zahlenformate

Hier ist es wichtig zu verstehen, dass wir mit den englischen "Zahlentrennern" arbeiten müssen.
Während in Deutschland das 1000er Trennzeichen der Punkt und das Dezimalzeichen das Komma ist, müssen wir in VBA hier das Komma für das 1000er Trennzeichen und den Punkt für das Dezimaltrennzeichen einsetzen. Ansonsten können wir in etwa analog zu Excel damit arbeiten, wie bei benutzerdefinierten Zahlenformaten.

Beispiele für die Zahl 12345

FormatErgebnis
Format(12345,"#,##0")12.345
Format(12345,"#,##0.00")12.345,00


3. Darstellungsoptionen

Ich kann die Ausgabe natürlich noch weiter beeinflussen, indem ich in den Formatierungsstring weitere Zeichen hinzuziehe, welche, wenn diese keine Formatbedeutung haben, einfach übernommen werden:
Format(37692,"dddd: dd_mm_yyyy") wird zu Mittwoch: 12_03_2003

Etwas anders sieht es aus, wenn ich solch eine Ausgabe erreichen will:

Mittwoch, den 12.03.2003

Wenn ich nun etwas probiere wie: Format(37692,"dddd den dd.mm.yyyy")
erhalte ich: Mittwoch 12e0 12.03.2003
Die Erklärung ist einfach: d und n sind reservierte Zeichen und werden entsprechend umgesetzt.
Eine Lösung ist, den Ausdruck zu verketten:

Format(37692,"dddd ") & "den " & Format(37692,"dd.mm.yyyy")

Maskierung:

Aber auch hier hilft, wie so oft, die Maskierung von unseren reservierten Zeichen.
Die Maskierung erreichen wir über einen Backslash \

Format(37692,"dddd \de\n dd.mm.yyyy")
Wobei Sie auch das e "Backslashen" können, ohne dass VBA meckert.
Und was ist mit dem Backslash selbst, wenn wir ihn haben wollen.
Wie immer das alte Lied, wir müssen ihn auch maskieren und zwar mit sich selbst.
Peter Haserodt
  • Formelhilfe
  • Makroentwicklung
  • VBA-Programmierung
  • + + + + + + + + +

Weitere Artikel der Gruppe: Funktionen Aus Excel VBA
Nach oben
ToDo
Google Werbung