Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahl in VBA in Datum konvertieren

Zahl in VBA in Datum konvertieren
05.09.2018 17:38:54
Excel2017
Hallo Forum,
ich habe in einer Tabelle ein Datum stehen, mit welchem ich rechnen möchte. Wenn ich den Inhalt dieses Feldes in VBA anspreche, bekomme ich den Wert 43348 für den 5.9.2018. Nun rechne ich mit diesem Wert und erhalte somit einen neuen Wert, z. B. 42205. Das ist der 20.07.2015.
Meine Frage: wie kann ich unter VBA den neuen Wert 42205 in das richtige Datum umwandeln? Ich benötige das Datum, weil ich das in ein TXT-File schreiben möchte.
Gruß
Werner
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Format(Wert, "DD.MM.YYYY") owT.
05.09.2018 17:40:36
ChrisL
.
AW: Format(Wert, "DD.MM.YYYY") owT.
05.09.2018 18:09:15
Excel2017
Hallo ChrisL,
Danke. Genau diese Funktion habe ich gesucht.
Gruß
Werner
AW: Format(Wert, "DD.MM.YYYY") owT.
05.09.2018 23:53:22
Rudi
Hallo,
Das ergibt aber einen String und kein Datum!!!Das sieht nur so aus.
Gruß
Rudi
Anzeige
AW: Format(Wert, "DD.MM.YYYY") owT.
06.09.2018 08:46:09
ChrisL
Hi Rudi
Danke für den Hinweis, aber Werner will ja in eine TXT-Datei schreiben und dann scheint mir ein Text-String passend.
cu
Chris
Hab ich überlesen. owT
06.09.2018 20:36:18
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zahl in VBA in Datum konvertieren


Schritt-für-Schritt-Anleitung

Um eine Zahl in VBA in ein Datum umzuwandeln, kannst du die folgende Vorgehensweise nutzen:

  1. Öffne den VBA-Editor in Excel. Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinDateiname)", wähle "Einfügen" und dann "Modul".

  3. Gib folgenden Code ein:

    Sub ZahlInDatumUmwandeln()
       Dim zahl As Long
       Dim datum As Date
    
       ' Beispielzahl (Datum als Zahl)
       zahl = 42205
    
       ' Umwandlung der Zahl in ein Datum
       datum = CDate(zahl)
    
       ' Ausgabe des Datums
       MsgBox Format(datum, "DD.MM.YYYY")
    End Sub
  4. Führe das Skript aus: Drücke F5, um die Umwandlung durchzuführen. Eine Meldung zeigt das Datum im Format "DD.MM.YYYY".


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Lösung: Stelle sicher, dass die Variable für die Zahl als Long deklariert ist und der Wert korrekt ist.
  • Fehler: "Objekt erforderlich"

    • Lösung: Überprüfe, ob du in der richtigen Arbeitsmappe arbeitest und ob das Modul richtig eingefügt wurde.
  • Problem: Das Datum wird als String angezeigt.

    • Lösung: Verwende CDate, um die Zahl in ein Datum umzuwandeln, und nicht nur Format.

Alternative Methoden

Eine weitere Möglichkeit, eine Zahl in ein Datum umzuwandeln, ist die Verwendung von DateSerial:

Sub AlternativeZahlInDatumUmwandeln()
    Dim zahl As Long
    Dim jahr As Long
    Dim monat As Long
    Dim tag As Long
    Dim datum As Date

    ' Beispielzahl
    zahl = 42205

    ' Berechnung des Datums
    jahr = Year(Date) + (zahl \ 365)
    monat = (zahl Mod 365) \ 30 + 1
    tag = (zahl Mod 30) + 1

    datum = DateSerial(jahr, monat, tag)

    MsgBox Format(datum, "DD.MM.YYYY")
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die Umwandlung von Zahlen in Daten in VBA:

  1. Umwandlung von Datumswerten aus einer Datenbank:

    For i = 1 To 10
       Dim datum As Date
       datum = CDate(Cells(i, 1).Value) ' Annahme: Die Zahl steht in Spalte A
       Cells(i, 2).Value = Format(datum, "DD.MM.YYYY") ' Ausgabe in Spalte B
    Next i
  2. Speichern von datierten Werten in einer TXT-Datei:

    Dim datei As String
    datei = "C:\Pfad\zu\deiner_datei.txt"
    Open datei For Output As #1
    Print #1, Format(CDate(42205), "DD.MM.YYYY")
    Close #1

Tipps für Profis

  • Achte darauf, dass die VBA-Lokalisierung die Datumsformate unterstützt, die du verwendest.
  • Verwende Debug.Print, um Zwischenergebnisse zu überprüfen.
  • Bei der Arbeit mit großen Datenmengen kann es sinnvoll sein, Arrays zu verwenden, um die Leistung zu optimieren.
  • Denke daran, die Datumswerte in der richtigen Zeitzone zu speichern, insbesondere wenn du mit internationalen Daten arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich ein Datum wieder in eine Zahl umwandeln? Um ein Datum in eine Zahl zu konvertieren, kannst du die Funktion CDbl verwenden. Zum Beispiel:

Dim zahl As Double
zahl = CDbl(DateValue("05.09.2018"))

2. Was ist der Unterschied zwischen CDate und Format? CDate wandelt eine Zahl in ein Datum um, während Format das Datum in einen String mit einem bestimmten Format konvertiert. Verwende CDate, wenn du mit Datumswerten rechnen möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige