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.
| ||||||||||||||
| A | B | C | D | E | |
| 1 | Quelle | MIN-Formel | EDATUM | VBA neu | VBA alt |
| 2 | 31.01.2007 | 28.02.2007 | 28.02.2007 | 28.02.2007 | 03.03.2007 |
| 3 | 28.02.2007 | 31.03.2007 | 28.03.2007 | 31.03.2007 | 28.03.2007 |
| Formeln der Tabelle | ||||||||||
|
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-LintfortFunction 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-LintfortUm ein Datum in Excel um einen Monat zu erhöhen, kannst Du eine der folgenden Methoden verwenden:
Mit einer Formel:
EDATUM-Funktion:
=EDATUM(A1; 1)Mit VBA:
Cells(7, 1) = DateSerial(Year(Cells(7, 1)), Month(Cells(7, 1)) + 1, Day(Cells(7, 1)))Ein häufiger Fehler beim Hinzufügen von Monaten zu einem Datum ist, dass Excel nicht korrekt mit unterschiedlichen Monatslängen umgeht. Zum Beispiel:
EDATUM-Funktion verwenden, da sie automatisch die korrekten Tage im Monat berücksichtigt.Neben der Verwendung von EDATUM und VBA gibt es auch andere Ansätze:
Mit einer MIN-Formel:
=MIN(DATE(YEAR(A1), MONTH(A1) + 1, DAY(A1)), DATE(YEAR(A1), MONTH(A1) + 2, 0))Datumsformatierung:
Datum um 1 Monat erhöhen:
31.01.2023. Verwende die Formel:
=EDATUM(A1; 1) // Ergebnis: 28.02.2023Datum um 6 Monate erhöhen:
=EDATUM(A1; 6) // Ergebnis: 31.07.2023Monat_plus1, um die Arbeit zu erleichtern. 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.