Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Monatsnamen ausgeben

Monatsnamen ausgeben
24.01.2008 10:25:01
jjo
Hallo Zusammen,
habe ein kleines Problem. Ich möchte mir einfach den Aktuellen Monat anzeigen lassen (im 2. Schritt den vorherigen Monat). Nun dachte ich mir um erstmal den laufenden Monat zu erhalten mache ich folgendes:

Sub Monatsausgabe()
MsgBox Format(DatePart("m", Date, , vbUseSystem), "MMMM")
End Sub


Aber nix da, es kommt Dezember raus, obwohl eine "1" angezeigt wird, wenn ich das MMMM Format nicht drum lege.
Nun die Frage, woran liegt das? Oder um das zu überspringen, was müsste ich machen, um IMMER den vergangenen Monat zu erhalten?
Vielen Dank im voraus.
Jörg

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Monatsnamen ausgeben
24.01.2008 10:30:46
Beverly
Hi Jörg,
MsgBox Format(Date, "MMMM")


AW: Monatsnamen ausgeben
24.01.2008 10:50:49
jjo
Hi Karin,
dankeschön - warum einfach wenns auch kompliziert geht ;)
Noch eine kleine Frage, wie kann ich denn nun letzten Monat ermitteln?
Danke vorab
Jörg

Anzeige
AW: Monatsnamen ausgeben
24.01.2008 11:00:32
Beverly
Hi Jörg,
MsgBox Format(DateSerial(Year(Date), Month(Date) - 1, Day(Date)), "MMMM")


AW: Monatsnamen ausgeben
24.01.2008 11:07:53
Erich
Hi Karin,
das mit dem Vormonat macht am Monatsende Probleme, wenn der Vormonat weniger Tage hat.
Am 31.03.2008 ist DateSerial(Year(Date), Month(Date) - 1, Day(Date)) = 02.03.2008, also auch im März,
weil es dem 31.02. nicht gibt.
Mein Vorschlag:
msgbox Format(DateSerial(0, Month(Date) - 1, 1), "MMMM")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Monatsnamen ausgeben
24.01.2008 11:16:59
jjo
Hallo Karin, Hallo Erich,
danke nochmal für eure Mühen. Da eine Rückmeldung meinerseits erst in 8 Tagen möglich ist, hier noch nix vom mir ;)
Danke
Jörg

AW: Monatsnamen ausgeben
24.01.2008 11:21:48
Beverly
Hi Jörg,
du kannst doch das Systemdatum ändern.


Anzeige
AW: Monatsnamen ausgeben
24.01.2008 11:17:54
Beverly
Hi Erich,
bei mir (Excel2003) wird auch mit meinem Code jeden Monat und an jedem Tag richtig gerechnet.


AW: Monatsnamen ausgeben
24.01.2008 11:28:11
Erich
Hi Karin,
dass Excel/VBA hier richtig rechnen, meine ich sicher auch. Aber ob ein Ausdruck das gewünschte Ergebnis liefert?
Probier mal

Sub aaa()
Dim ddat As Date
ddat = "31.03.2008"
'  MsgBox Format(ddat, "MMMM")
MsgBox Format(DateSerial(0, Month(ddat) - 1, 1), "MMMM")
MsgBox Format(DateSerial(Year(ddat), Month(ddat) - 1, Day(ddat)), "MMMM")
'  MsgBox DateSerial(0, Month(ddat) - 1, 1)
MsgBox DateSerial(Year(ddat), Month(ddat) - 1, Day(ddat))
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Monatsnamen ausgeben
24.01.2008 12:05:00
Beverly
Hi Erich,
ja, das stimmt schon - in diesem Fall es ist eine Frage der Formatierung der Ausgabe. Mit deinem Code wird in der unformatierten Anzeige der 01.02.2000 ausgegeben.


AW: Monatsnamen ausgeben
24.01.2008 15:01:52
Erich
Hi Karin,
der 01.02.2000 ist hier das gewünschte Ergebnis. Tag und Jahr sind hier gleichgültig,
und Vormonat Februar ist für den 31.03.2008 wohl richtig.
Hier noch eine Alternative (bei der man auch das Jahr mit ausgeben könnte):
MsgBox Format(DateSerial(Year(Date), Month(Date), 0), "mmmm")
MsgBox Format(DateSerial(Year(Date), Month(Date), 0), "mmmm yyyy")
Der 0te des laufenden Monats ist automatisch der letzte des Vormats.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Monatsnamen in Excel VBA ausgeben


Schritt-für-Schritt-Anleitung

Um den aktuellen Monatsnamen in Excel mithilfe von VBA auszugeben, kannst Du den folgenden Code verwenden:

Sub Monatsausgabe()
    MsgBox Format(Date, "MMMM")
End Sub

Dieser Code gibt den Namen des aktuellen Monats aus. Wenn Du den Vormonat ermitteln möchtest, kannst Du diese Zeile anpassen:

Sub Vormonatsausgabe()
    MsgBox Format(DateSerial(Year(Date), Month(Date) - 1, 1), "MMMM")
End Sub

Damit erhältst Du den Monatsnamen des vorherigen Monats. Beachte, dass diese Methode am Monatsende Probleme verursachen kann, wenn der Vormonat weniger Tage hat.


Häufige Fehler und Lösungen

  1. Fehler: Falscher Monatsname wird angezeigt
    Wenn Du DatePart verwendest, wie im Beispiel von jjo, und das Format nicht korrekt anwendest, kann der falsche Monatsname angezeigt werden. Verwende stattdessen:

    MsgBox Format(Date, "MMMM")
  2. Problem beim Vormonat am Monatsende
    Wenn Du den Vormonat ermitteln möchtest, achte darauf, dass die Funktion DateSerial korrekt verwendet wird. Statt Day(Date) zu verwenden, setze den Tag auf 1, um Probleme zu vermeiden:

    MsgBox Format(DateSerial(Year(Date), Month(Date) - 1, 1), "MMMM")

Alternative Methoden

Eine alternative Methode zur Ermittlung des Monatsnamens kann die Verwendung der Funktion Format direkt auf ein Datum sein. Hier ein Beispiel, um den Monatsnamen aus einem bestimmten Datum auszugeben:

Sub MonatsnameAusDatum()
    Dim ddat As Date
    ddat = "31.03.2008" ' Beispiel-Datum
    MsgBox Format(ddat, "MMMM")
End Sub

Zusätzlich kannst Du für den Vormonat folgende Zeile nutzen:

MsgBox Format(DateSerial(Year(ddat), Month(ddat) - 1, 1), "MMMM")

Praktische Beispiele

Hier sind einige praktische Beispiele, die Du in Deinen VBA-Projekten verwenden kannst:

  1. Aktuellen Monat ausgeben:

    Sub AktuellerMonat()
        MsgBox Format(Date, "MMMM")
    End Sub
  2. Letzten Monat ausgeben:

    Sub LetzterMonat()
        MsgBox Format(DateSerial(Year(Date), Month(Date) - 1, 1), "MMMM")
    End Sub
  3. Vormonat von einem spezifischen Datum:

    Sub VormonatVonDatum()
        Dim bestimmtesDatum As Date
        bestimmtesDatum = "31.03.2008"
        MsgBox Format(DateSerial(Year(bestimmtesDatum), Month(bestimmtesDatum) - 1, 1), "MMMM")
    End Sub

Tipps für Profis

  • Verwende die Funktion DateSerial mit 0 für den Tag, um immer den letzten Tag des Vormonats zu erhalten:

    MsgBox Format(DateSerial(Year(Date), Month(Date), 0), "MMMM")
  • Wenn Du mit verschiedenen Datumsformaten arbeitest, achte darauf, dass das Format im Format-Befehl korrekt angegeben wird, um Missverständnisse zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den Monatsnamen aus einem Datum in einer Zelle ausgeben?
Du kannst die Funktion TEXT in Excel verwenden. Wenn das Datum in Zelle A1 steht, benutze:

=TEXT(A1, "MMMM")

2. Was ist der Unterschied zwischen Format und DatePart in VBA?
Format gibt den Monatsnamen direkt zurück, während DatePart eher für die Ermittlung von numerischen Werten verwendet wird. Für Monatsnamen ist Format die bessere Wahl.

3. Wie gehe ich mit Schaltjahren um?
Die oben genannten Methoden berücksichtigen Schaltjahre automatisch, solange Du die Funktionen korrekt anwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige