Registriert seit: 08.02.2017
Version(en): 2016
02.06.2025, 07:26
(Dieser Beitrag wurde zuletzt bearbeitet: 02.06.2025, 07:28 von dertommy.)
Hallo!
Ich will mir mittels VBA das aktuelle und das vorige Monat anzeigen lassen. Für das aktuelle Monat habe ich es zusammen gebracht, aber wie zeige ich mir das vorige Monat an?
Hier mein Code für das aktuelle:
Format(Date, "MMMM")
Wenn ich Format(Month(Date)-1, "MMMM") eingebe, kommt Jänner raus, warum auch immer.
Und wenn ich Month(Date)-1 eingebe, kommt 5 raus.
Ich hoffe, dass mir jemand helfen kann.
Excel Version 2016
Registriert seit: 12.08.2019
Version(en): Office 365
Hallo,
was kommt denn bei "Month(Date)-1" raus?
5! Denn Monat von heute ist Juni (=6) minus 1. Und 5 bedeutet der 5. Tag in Excel = 05.01.1900.
Format(Date - Day(Date), "MMMM") ergibt den Vormonat.
Gruß Sigi
Registriert seit: 08.02.2017
Version(en): 2016
02.06.2025, 07:59
(Dieser Beitrag wurde zuletzt bearbeitet: 02.06.2025, 08:01 von dertommy.)
Hallo!
Danke für deine Hilfe. Jetzt wird Mai angezeigt, obwohl ich deine Formel ehrlich gesagt nicht verstehe. Die Frage stellt sich nämlich auch für mich, dass wenn heute z.B. der 25. Juni wäre, ob mit deiner Formel auch der Mai angezeigt wird?
Dann hätte ich noch eine Frage, wenn ich bei meiner Formel "-1" weglasse, dann wird auch Jänner angezeigt:
Format(Month(Date), "MMMM")
Ich hoffe, dass du mich etwas aufklären kannst, damit ich es auch verstehe.
Excel Version 2016
Registriert seit: 16.08.2020
Version(en): 2019 64bit
Hallo,
via VBA gibt es das DateSerial()
Schau dazu in die MS-Hilfe.
Gruß Uwe
Registriert seit: 13.04.2014
Version(en): 365
Hi,
wie Sigi schon erläuterte:
was kommt denn bei "Month(Date)" raus?
6! Denn Monat von heute ist Juni (=6) . Und 6 bedeutet der 6. Tag in Excel = 06.01.1900.
Format(Date - Day(Date), "MMMM") ergibt immer den letzten Tag des Vomonats.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 12.08.2019
Version(en): Office 365
Hallo,
meine Formel ist eigentlich ganz simpel: Von Heute wird der Tag von Heute abgezogen.
Bsp. Heute sei der 25. Juni davon 25 ab, dann landest du bei 31.05.!
(Es ist halt immer der letzte des Vormonats.)
Format(Month(Date), "MMMM") ist doch fast des selbe wie zuvor! Was ist Month(Date)? 6! und das ist dann der 06.01.1900!
Gruß Sigi
Registriert seit: 08.02.2017
Version(en): 2016
Danke für eure Hilfe, jetzt verstehe ich es besser.
Excel Version 2016
Registriert seit: 16.08.2020
Version(en): 2019 64bit
Hallo,
dir sollte aber klar sein, dass mittels Format() dieses Datum als Text in der Zelle landet.
Wenn es nur um die Betrachtung des Datums geht ist das sicherlich kein Problem. Aber für die Weiterverarbeitung muss man dies u.U. nachträglich in ein echtes Datum umwandeln.
Besser ist es gleich für klare Verhältnisse zu sorgen.
Gruß Uwe
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
03.06.2025, 05:43
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2025, 05:44 von RPP63.)
Moin!
Es geht ja auch (nur) um den Monatsnamen lang in Textform.
Das auch von mir bevorzugte Format(Date - Day(Date), "MMMM") ergibt den Monatsletzten des Vormonats, formatiert als Monat in Langform.
Die Monate sind auch in der benutzerdefinierten Liste #8 gespeichert.
Deshalb nur als Alternativen:
• aktueller Monat: Application.GetCustomListContents(8)(Month(Date))
• Vormonat: Application.GetCustomListContents(8)(Month(DateAdd("m", -1, Date)))
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 16.08.2020
Version(en): 2019 64bit
@Ralf,
ja, wenn die Ausgabe des Monatsnamens als Text reicht. Man kann da auch das passende Kürzel (Nr. 1 bis 8) sich ausgeben lassen.
Sollte die Ausgabe aber weiter verarbeitet werden, muss man dann wieder nachhelfen.
Bei meiner Betrachtung bin ich einfach vom aktuellen Datum (Date) ausgegangen, dass der TO eine Ausgabe als Monat in der Zelle stehen hat (Zellformat "MMMM") und die Datumzahl erhalten bleibt.
Was man sich vielleicht zu diesem Thema wünschen könnte, wäre statt der Kombination .Value + .NumberFormat eine VBA Funktion, um es in einer Zeile zu haben.
Gut, man kann sich eine Funktion dazu auch selbst zusammenbauen.
Gruß Uwe