Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datumsformat in VBA auf englisch

Datumsformat in VBA auf englisch
23.01.2007 17:46:51
Arthur
Hallo zusammen.
Meine Frage lautet, wie ein Datum innerhalb VBA auf Englisch formatiert werden kann. In der Recherche habe ich leider keine echte Lösung gefunden, bin jedoch überzeugt, dass es sie gibt.
Folgendes. Eine Zelle kann z.B. mit dem Format [$-409]MMMM;@ versehen werden. Damit wird der Monat auf englisch ausgegeben. Bspw. February anstelle Februar.
Gleich, ob ich es mit MonthName() oder mit Format() versuche, bei mir erscheint die deutsche Version. Normalerweise auch korrekt. In meinem aktuellen Fall eben nicht. Allerdings habe ich es bei der Funktion Format() noch nicht hinbekommen, dass er den Ländercode beachtet. Wie funktioniert das? Wie oder mit welcher Funktion versteht Excel das [$-409] in VBA?
Übrigens: Mit einem internen Array möchte ich nicht arbeiten, da ich der Überzeugung bin, dass Excel die verschiedenen Sprachen auch so beherrscht.
Gruß
-Arthur
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsformat in VBA auf englisch
23.01.2007 18:01:10
praetorius
Hallo -Arthur,
wenn das System es nicht hergibt, mach es einfach selber! Ich habe dir mal einen Beispielcode zusammengebastelt. Frag das Systemdatum nicht nach dem Monatsnamen, sondern nur nach der Monatsnummer. Das ist dann der Index für das Array, das dir den englischen Monatsnamen ausgibt.
Option Explicit
Option Base 1

Sub test()
Dim Monate As Variant
Monate = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
Dim i As Integer
For i = 1 To 12
MsgBox Monate(i)
Next i
End Sub

Bei Bedarf lässt sich das ganze auch an andere Sprachen anpassen. Es lebe die Flexibilität!
good luck
Anzeige
... ohne Array
23.01.2007 18:12:12
Arthur
Hallo Praetorius.
Danke für die Antwort, aber das wollte ich ja nicht machen. Excel kennt den englischen Ausdruck für die Monate. Das beweist es in jedem Tabellenblatt. Die Frage ist nur, wie man da in VBA dran kommt. Ich bin mir sicher, dass irgendwo eine xFormat(,language) oder so existiert.
... es bleibt spannend.
Gruß
Arthur
Anzeige
AW: VBA: Monatsnamen englisch
23.01.2007 18:20:45
Erich
Hallo Arthur,
denn dd ein Datum ist:
Application.Text(dd, "[$-409]MMMM;@")
(Text steht zwar nicht in der Liste der WorksheetFunctions, funzt ber trotzdem.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
funzt
24.01.2007 11:55:23
Arthur
Hallo Erich.
Kleine Verzögerung in der Rückmeldung, musste mal Feierabend machen ;o)
Der Einzeiler funktioniert bestens, allerdings ist dd nicht das Datum, sondern die Monats-Nummer. Das aber ist "Null Problemo".
Danke für die Lösung.
-Arthur
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datumsformat in VBA auf Englisch angeben


Schritt-für-Schritt-Anleitung

  1. Öffne deinen VBA-Editor in Excel, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Sub DatumEnglisch()
        Dim aktuellesDatum As Date
        aktuellesDatum = Date ' Aktuelles Datum holen
        MsgBox Application.Text(aktuellesDatum, "[$-409]MMMM;@") ' Monat in Englisch anzeigen
    End Sub
  4. Führe das Makro aus: Drücke F5 oder klicke auf "Ausführen".

  5. Überprüfe die Ausgabe: Der aktuelle Monat sollte nun in Englisch angezeigt werden, z.B. "February".


Häufige Fehler und Lösungen

  • Fehler: Die Ausgabe zeigt den Monatsnamen in Deutsch.

    • Lösung: Stelle sicher, dass der Ländercode [$-409] korrekt im Format-String verwendet wird. Dies sorgt dafür, dass das Datum im englischen Format angezeigt wird.
  • Fehler: VBA gibt eine Fehlermeldung zurück.

    • Lösung: Überprüfe, ob der Code korrekt eingefügt wurde und keine Syntaxfehler vorhanden sind.

Alternative Methoden

Falls du das Datum im englischen Format in einer Zelle ausgeben möchtest, kannst du folgende Methode verwenden:

Sub DatumInZelle()
    Dim aktuellesDatum As Date
    aktuellesDatum = Date
    Range("A1").Value = Application.Text(aktuellesDatum, "[$-409]MMMM;@")
End Sub

Diese Methode gibt den Monatsnamen direkt in Zelle A1 aus.


Praktische Beispiele

  1. Aktueller Monat auf Englisch ausgeben:

    Sub AktuellerMonatEnglisch()
        MsgBox "Der aktuelle Monat ist: " & Application.Text(Date, "[$-409]MMMM;@")
    End Sub
  2. Datumsangabe im englischen Format in eine Zelle schreiben:

    Sub SchreibeEnglischesDatum()
        Dim aktuellesDatum As Date
        aktuellesDatum = Date
        Range("B1").Value = Application.Text(aktuellesDatum, "[$-409]dd/mm/yyyy") ' Beispiel für ein Datum
    End Sub

Tipps für Profis

  • Nutze die Funktion Format() anstelle von Application.Text() für erweiterte Anpassungen:

    MsgBox Format(Date, "[$-409]MMMM")
  • Experimentiere mit verschiedenen Datumsformaten, um die gewünschten Ergebnisse zu erzielen, z.B. [$-409]dd-mm-yyyy.

  • Vermeide interne Arrays, wenn Excel die mehrsprachige Unterstützung direkt bietet. Das macht deinen Code einfacher und wartungsfreundlicher.


FAQ: Häufige Fragen

1. Wie kann ich das aktuelle Datum im englischen Format anzeigen?
Verwende die Funktion Application.Text(Date, "[$-409]dd/mm/yyyy"), um das aktuelle Datum im englischen Format anzuzeigen.

2. Gibt es eine Möglichkeit, das deutsche Datum in das englische Format umzuwandeln?
Ja, du kannst die Funktion Application.Text() verwenden, um das deutsche Datum in das englische Datumsformat umzuwandeln, z.B. Application.Text(deutschesDatum, "[$-409]dd/mm/yyyy").

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige