Voriges Monat anzeigen
#1
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
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
Hallo, 

via VBA gibt es das DateSerial()
Schau dazu in die MS-Hilfe.

Gruß Uwe
Antworten Top
#5
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.
Antworten Top
#6
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
Antworten Top
#7
Danke für eure Hilfe, jetzt verstehe ich es besser.
Excel Version 2016
Antworten Top
#8
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
Antworten Top
#9
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)
Antworten Top
#10
@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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste