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

Forumthread: per VBA ein Datum in das aktuelles Jahr ändern

per VBA ein Datum in das aktuelles Jahr ändern
30.08.2006 14:44:18
{mskro}
Hallo Excelfreunde,
wie kann ich per VBA ein ausgelenes Datum z.B. "05.01.1988" als "05.01.2006" also immer mit der aktuellen Jahreszahl in eine Variable bringen?
In Zelle "A2" steht also "05.01.1988"
Variable soll beinhalten "05.01.2006", nächstes Jahr dann "05.01.2007"
Gruss Manfred
PS: VBA Level = Hobbylevel ;-)
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per VBA ein Datum in das aktuelles Jahr ändern
30.08.2006 14:57:48
Lukas
Hallo Manfred
Meinst du dies:
dim Variable as date
Variable=Day([a2]) & "." & Month([a2]) & "." & Year(Date)
Gruss
Lukas
BItte um Rückmeldung
AW: per VBA ein Datum in das aktuelles Jahr ändern
30.08.2006 15:03:31
{mskro}
Ja Lukas,
das sieht schon ganz gut aus.
Und wie werden die Tage und Monat nun auch in der Variable 2stellig ind die Variable übernommen und dargestellt?
Gruss Manfred
Anzeige
Danke Lukas
30.08.2006 15:09:31
{mskro}
...ich hatte eben die Dimension vergessen, nun geht es.
Danke
Gruss Manfred
Wieviel Tage hat der Monat
30.08.2006 15:20:51
{mskro}
Ich muß noch mal kurz nachhaken,
ich bräuchte noch eine Variable_2, die mir die Anzahl der Kalendertage vom in der Variable_1 stehenden Datum anzeigt.
Gruss Manfred
AW: Wieviel Tage hat der Monat
30.08.2006 15:45:29
UweD
Hallo
so?

Sub tt()
Dim Variable As Date, Monatsende As Byte
Variable = Day([a2]) & "." & Month([a2]) & "." & Year(Date)
Monatsende = Day(DateSerial(Year(Variable), Month(Variable) + 1, 0))
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
Super UweD vielen Dank o.w.T.
30.08.2006 15:50:38
{mskro}
.
Wieviel Tage hat der Monat
30.08.2006 15:21:04
{mskro}
Ich muß noch mal kurz nachhaken,
ich bräuchte noch eine Variable_2, die mir die Anzahl der Kalendertage vom in der Variable_1 stehenden Datum anzeigt.
Gruss Manfred
Eure Hilfen sind einfach Super, nochmals Danke
30.08.2006 15:52:11
{mskro}
.
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum in das aktuelle Jahr ändern mit VBA


Schritt-für-Schritt-Anleitung

Um ein Datum in das aktuelle Jahr zu ändern, kannst Du den folgenden VBA-Code verwenden. Dieser Code liest ein Datum aus einer Zelle (z. B. A2) und ändert das Jahr auf das aktuelle Jahr.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code ein:
Sub DatumInAktuellesJahr()
    Dim Variable As Date
    Variable = Day([A2]) & "." & Month([A2]) & "." & Year(Date)
    MsgBox "Das Datum im aktuellen Jahr ist: " & Variable
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke ALT + F8, wähle DatumInAktuellesJahr aus und klicke auf Ausführen.

Nun wird das Datum, das in Zelle A2 steht, auf das aktuelle Jahr geändert und in einer MessageBox angezeigt.


Häufige Fehler und Lösungen

  • Fehler: „Typenkonflikt“ beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass das Datum in Zelle A2 korrekt formatiert ist (z. B. TT.MM.JJJJ).
  • Fehler: Das Datum wird nicht im richtigen Format angezeigt.

    • Lösung: Verwende excel vba datumsformat ändern, um das Datumsformat anzupassen. Du könntest z. B. die Formatierung so ändern:
Variable = Format(Day([A2]), "00") & "." & Format(Month([A2]), "00") & "." & Year(Date)

Alternative Methoden

Eine weitere Möglichkeit, das aktuelle Jahr in ein Datum zu ändern, ist die Verwendung der DateSerial-Funktion. Hier ein Beispiel:

Sub DatumMitDateSerial()
    Dim Variable As Date
    Variable = DateSerial(Year(Date), Month([A2]), Day([A2]))
    MsgBox "Das Datum im aktuellen Jahr ist: " & Format(Variable, "dd.mm.yyyy")
End Sub

Diese Methode kann hilfreich sein, wenn Du sicherstellen möchtest, dass das Datum auch bei Schaltjahren korrekt ist.


Praktische Beispiele

Hier ein Beispiel, wie Du das Jahr aus einem Datum auslesen und ändern kannst:

Sub JahrAusDatum()
    Dim AlteresDatum As Date
    Dim NeuesDatum As Date
    AlteresDatum = [A2]  ' z.B. 05.01.1988
    NeuesDatum = DateSerial(Year(Date), Month(AlteresDatum), Day(AlteresDatum))
    MsgBox "Neues Datum: " & Format(NeuesDatum, "dd.mm.yyyy")
End Sub

Wenn Du die Anzahl der Tage im Monat des ursprünglichen Datums benötigst, kannst Du dies ebenfalls leicht umsetzen:

Sub AnzahlTageImMonat()
    Dim Monatsende As Byte
    Monatsende = Day(DateSerial(Year([A2]), Month([A2]) + 1, 0))
    MsgBox "Anzahl der Tage im Monat: " & Monatsende
End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.

  • Nutze die Debug.Print-Anweisung, um Werte im Direktfenster während der Entwicklung zu überprüfen.

  • Wenn Du oft mit Datumsformaten arbeitest, erstelle eine Funktion, die das Datum in das gewünschte Format umwandelt, um redundanten Code zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das aktuelle Jahr in eine Zelle schreiben?
Du kannst folgendes verwenden, um das aktuelle Jahr in Zelle B1 zu schreiben:

Range("B1").Value = Year(Date)

2. Was ist, wenn ich nur den Monat oder Tag ändern möchte?
Du kannst die DateSerial-Funktion anpassen, um nur den Monat oder Tag zu ändern, z.B.:

NeuesDatum = DateSerial(Year(AlteresDatum), NeuerMonat, Day(AlteresDatum))

Mit diesen Anleitungen und Beispielen bist Du nun in der Lage, Daten in Excel mit VBA effektiv zu ändern und das aktuelle Jahr zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige