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

Datum um monat erhöhen

Forumthread: Datum um monat erhöhen

Datum um monat erhöhen
11.01.2007 08:56:49
Andy
Hallo zusammen !
Ich kopiere per VBA das letzte Tabellenblatt und möchte das Aktuelle datum in Zelle A7 um einen monat erhöhen.
Leider klappt das mit dem Monat erhöhen nicht.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum um monat erhöhen
11.01.2007 09:09:03
Erich
Hallo Anday,
so gehts:
Cells(7, 1) = DateSerial(Year(Cells(7, 1)), Month(Cells(7, 1)) + 1, Day(Cells(7, 1)))
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Datum um monat erhöhen
11.01.2007 09:49:45
Andy
Hat Super geklappt, vielen Dank !
AW: Datum um 1 Monat erhöhen
11.01.2007 15:55:56
rlenz
Hallo,
wird zum Datum 31.01.2007 ein Monat addiert, ist das Ergebnis 28.02.2007 und nicht etwa 03.03.2007. Zu einem Monat innerhalb eines Datums Monat(e) zu addieren oder zu subtrahieren geht nur in allen Fällen richtig bis zu 28. Tag des Ausgangsmonats. Monate haben nun mal eine unterschiedliche Anzahl von Tagen.
 
 ABC
6Datum+ 1 Monat mit Makro+ 1 Monat mit Funktion EDATUM
731.01.200703.03.200728.02.2007
Formeln der Tabelle
C7 : =EDATUM(A7;1)
 

Makro in B7
Cells(7, 2) = DateSerial(Year(Cells(7, 1)), Month(Cells(7, 1)) + 1, Day(Cells(7, 1)))
MfG
Rüdiger Lenz
Anzeige
AW: Datum um 1 Monat erhöhen
11.01.2007 17:27:29
Erich
Hallo Rüdiger,
da hast du recht - so einfach lässt sich die Addition um 1 Monat nicht sauber lösen.
Aber mit EDATUM würd ichs nicht machen (auch, weil man dazu die Analyse-Fkt. braucht).
EDATUM rechnet mitunter auch falsch:
 ABCDE
1QuelleMIN-FormelEDATUMVBA neuVBA alt
231.01.200728.02.200728.02.200728.02.200703.03.2007
328.02.200731.03.200728.03.200731.03.200728.03.2007

Formeln der Tabelle
ZelleFormel
B2=MIN(DATUM(JAHR(A2);MONAT(A2)+1+{0.1}+(TAG(A2+1)=1);{1.0}*TAG(A2)*(TAG(A2+1)>1)))
C2=EDATUM(A2;1)
D2=Monat_plus1(A2)
E2=altMonat_plus1(A2)

Die MIN-Formel ist von Franz (aus dem Salzkammergut):
https://www.herber.de/forum/archiv/768to772/t769578.htm
Hier der Code zu den beiden VBA-Fkt.:
Option Explicit
Function Monat_plus1(dat As Date)
Dim tmp1 As Long, tmp2 As Long
tmp1 = DateSerial(Year(dat), Month(dat) + 1 - (Day(dat + 1) = 1), Day(dat) * (Day(dat + 1) > 1))
tmp2 = DateSerial(Year(dat), Month(dat) + 2 - (Day(dat + 1) = 1), 0)
Monat_plus1 = IIf(tmp1 <= tmp2, tmp1, tmp2)
End Function
Function altMonat_plus1(dat As Date)
altMonat_plus1 = DateSerial(Year(dat), Month(dat) + 1, Day(dat))
End Function
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Datum um 1 Monat erhöhen - Korrektur
11.01.2007 17:33:27
Erich
Hallo nochmal.
Sorry, da fehlte noch ein Minuszeichen:
Function Monat_plus1(dat As Date)
Dim tmp1 As Long, tmp2 As Long
tmp1 = DateSerial(Year(dat), Month(dat) + 1 - (Day(dat + 1) = 1), -Day(dat) * (Day(dat + 1) > 1))
tmp2 = DateSerial(Year(dat), Month(dat) + 2 - (Day(dat + 1) = 1), 0)
Monat_plus1 = IIf(tmp1 <= tmp2, tmp1, tmp2)
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Datum um monat erhöhen
11.01.2007 09:16:03
Oberschlumpf
Hi Andy
Versuch mal so:
With Sheets(Sheets.Count-1)
ActiveSheet.Range("A7").Value = DateValue(Day(.Range("A7").Value) & "." & Month(.Range("A7").Value) + 1 & "." & Year(.Range("A7").Value))
End With
Vielleicht musst du noch irgendwo anpassen.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Datum um monat erhöhen
11.01.2007 10:10:44
Andy
Auch Dir vielen Dank für die Hilfe,
Ich habe noch ein Problem das Ich nur Teilweise gelöst habe.
Ich möchte aus Zellinhalt den Blattnamen erstellen (ActiveSheet.Name = Range("I2").Value)
, der Zellinhalt besteht aus einem Datum, das Ich so formatiert habe, dass der Monat und das Jahr angezeigt wird (Feb.07) , bei Mir wird aber das normale Datum eingefügt.
Anzeige
AW: Datum um monat erhöhen
11.01.2007 10:44:44
Andy
Zweite Frage hat sich erledigt, Ich habe es selbst herausgefunden.
So gehts:
Blattname = Format(Range("A7"), "mmm.yy")
ActiveSheet.Name = Blattname
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum um einen Monat erhöhen in Excel


Schritt-für-Schritt-Anleitung

Um ein Datum in Excel um einen Monat zu erhöhen, kannst Du eine der folgenden Methoden verwenden:

  1. Mit einer Formel:

    • Verwende die EDATUM-Funktion:
      =EDATUM(A1; 1)
    • Hierbei wird das Datum in Zelle A1 um einen Monat erhöht.
  2. Mit VBA:

    • Verwende diesen VBA-Code, um das Datum in Zelle A7 um einen Monat zu erhöhen:
      Cells(7, 1) = DateSerial(Year(Cells(7, 1)), Month(Cells(7, 1)) + 1, Day(Cells(7, 1)))

Häufige Fehler und Lösungen

Ein häufiger Fehler beim Hinzufügen von Monaten zu einem Datum ist, dass Excel nicht korrekt mit unterschiedlichen Monatslängen umgeht. Zum Beispiel:

  • Wenn Du zum Datum 31. Januar einen Monat hinzufügst, erwartet man möglicherweise den 31. Februar, erhält jedoch den 28. Februar (oder 29 in einem Schaltjahr).
  • Um dies zu vermeiden, sollte man die EDATUM-Funktion verwenden, da sie automatisch die korrekten Tage im Monat berücksichtigt.

Alternative Methoden

Neben der Verwendung von EDATUM und VBA gibt es auch andere Ansätze:

  1. Mit einer MIN-Formel:

    • Diese Formel sorgt dafür, dass das Datum korrekt bleibt:
      =MIN(DATE(YEAR(A1), MONTH(A1) + 1, DAY(A1)), DATE(YEAR(A1), MONTH(A1) + 2, 0))
  2. Datumsformatierung:

    • Wenn Du ein Datum um einen Monat erhöhen möchtest, könntest Du das Datum auch manuell umformatieren. Achte darauf, dass Excel die richtigen Datumsformate unterstützt.

Praktische Beispiele

  1. Datum um 1 Monat erhöhen:

    • Angenommen, in Zelle A1 steht das Datum 31.01.2023. Verwende die Formel:
      =EDATUM(A1; 1)  // Ergebnis: 28.02.2023
  2. Datum um 6 Monate erhöhen:

    • Für das gleiche Datum in Zelle A1, um 6 Monate zu erhöhen:
      =EDATUM(A1; 6)  // Ergebnis: 31.07.2023

Tipps für Profis

  • VBA-Optimierung: Wenn Du oft mit Datumsmanipulationen arbeitest, erstelle eigene Funktionen wie Monat_plus1, um die Arbeit zu erleichtern.
  • Fehlerüberprüfung: Achte darauf, dass die Datumsangaben im richtigen Format vorliegen, um unerwartete Fehler zu vermeiden.
  • Performance: Bei großen Datenmengen kann die Verwendung von VBA schneller sein als komplexe Formeln.

FAQ: Häufige Fragen

1. Wie kann ich ein Datum um mehrere Monate erhöhen?
Du kannst die EDATUM-Funktion mit der Anzahl der Monate verwenden, die Du hinzufügen möchtest, z.B. =EDATUM(A1; 6) für 6 Monate.

2. Warum funktioniert die DateSerial-Methode manchmal nicht wie erwartet?
Die DateSerial-Methode kann bei Monatsenden zu unerwarteten Ergebnissen führen, da sie die Tage nicht automatisch anpasst. Die EDATUM-Funktion ist in solchen Fällen zuverlässiger.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige