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

Forumthread: Datumsformat

Datumsformat
Snewi
Hallo,
ich habe eine variable der ich einen Wert übergebe!
Datum = CDate(cmbDatum.Value & " 06:00:00")
Das Format soll 2011-08-21 06:00:00 sein!
Wie formatiere ich das in VBA?
Gruß
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
format(Datum,"YYYY-MM-DD hh:mm:ss")
22.08.2011 15:23:42
NoNet
Hallo Snewi,
probiere es mal so :
MsgBox Format(Datum,"YYYY-MM-DD hh:mm:ss")
oder so :
MsgBox Format(cmbDatum.Value & " 06:00:00","YYYY-MM-DD hh:mm:ss")
Gruß, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
DatumsWERT, nicht -format
22.08.2011 16:47:49
Erich
Hi,
eine Variable hat einen Wert. Und sie ist von einem Typ, z. B. String oder Date.
Eine Variable hat aber kein Format.
Wie ist bei dir die Variable "Datum" deklariert? Ich nehme an, als Date. Ein Date ist eine Zahl, kein Text.
Deshalb ist es auch nicht unbedingt sinnnvoll, der Variablen einen Text zuzuweisen.
Bei der Zuweisung eines Textes muss VBA den Text erst in eine Zahl konvertieren,
bevor diese dann der Variablen zugewiesen werden kann.
cmbDatum.Value ist vermutlich ein Text, oder?
Dann würde ich das so schreiben:
Datum = CDate(cmbDatum.Value) + 6 / 24
Z. B. mit
Cells(2,3) = Datum
kannst du den Wert in eine Zelle schreiben lassen. Wie dann der Wert der Zelle angezeigt wird,
richtet sich nach dem Zahlenformat der Zelle.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: DatumsWERT, nicht -format
23.08.2011 07:41:23
Snewi
Also ich habe eine ComboBox die ich so fülle:
cmbDatum.Value = CDate(Worksheets(3).Cells(2, 8))
Im Modul2 habe ich eine Public Variable Datum (Public Datum As Date)
Jetzt weise ich Datum den Wert aus der Combobox zu plus eine feste Uhrzeit!
Modul2.Datum = CDate(cmbDatum.Value & " 06:00:00")
In meiner Select-Abfrage brauche ich jetzt dieses Datum mit der Zeit in diesem Format:
2011-08-18 06:00:00!
WHERE (DELAY_STATISTIC_DAY.DAY={ts '" & Datum & "'})
Anzeige
AW: DatumsWERT, nicht -format
23.08.2011 08:43:03
Erich
Hi,
"If Not (Beginn(Post) = Grußformel And Ende(Post) = Verabschiedung) Then Exit Thread"
(habe ich kürzlich gelesen...)
Zu "cmbDatum.Value = CDate(Worksheets(3).Cells(2, 8))":
Steht das Datum in Cells(2, 8) so, wie es auch in cmbDatum stehen soll?
cmbDatum enthält Text.
Probier mal
cmbDatum.Value = Worksheets(3).Cells(2, 8).Text
oder
cmbDatum.Value = format(Worksheets(3).Cells(2, 8).value, "dd.mm.yyyy") ' oder ein anderes Format
In beiden Fällen wird richtig ein Text übergeben.
Für deinen SQL-String brauchst du überhaupt kein Datum - da reicht Text völlig aus.
Probier mal:
WHERE (DELAY_STATISTIC_DAY.DAY={ts '" & format(CDate(cmbDatum.Value),"yyyy-mm-dd") & " 06:00:00'})
oder
Dim StrDat as string
strDat = format(CDate(cmbDatum.Value),"yyyy-mm-dd")
WHERE (DELAY_STATISTIC_DAY.DAY={ts '" & strDat & " 06:00:00'})
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: DatumsWERT, nicht -format
23.08.2011 09:33:14
Snewi
Hallo; :-)
so hat es nun fusioniert:
Modul2.Datum = Format(cmbDatum.Text & " 06:00:00", "YYYY-MM-DD hh:mm:ss")
Danke!
AW: Datumsformat
22.08.2011 17:15:38
NoNet
Hallo Snewi,
ergänzend zu Erichs Beitrag : Wenn Datum als DATE deklariert ist
Natürlich funktionieren dann auch diese variableren und besser lesbaren Versionen :
Datum = CDate(cmbDatum.Value & " 06:12:34")
bzw.
Datum = CDate(cmbDatum.Value) + TimeValue("06:12:34")
Gruß, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datumsformat in Excel VBA korrekt einstellen


Schritt-für-Schritt-Anleitung

Um das Datumsformat in Excel VBA anzupassen, kannst du die Funktion CDate verwenden, um ein Datum aus einem Textstring zu erstellen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Deklariere eine Public-Variable für das Datum in deinem Modul:

    Public Datum As Date
  2. Weise der Variable den Wert aus einer ComboBox zu und füge eine Zeit hinzu:

    Datum = CDate(cmbDatum.Value & " 06:00:00")
  3. Um das Datum im gewünschten Format YYYY-MM-DD HH:MM:SS zu erhalten, verwende die Format-Funktion:

    MsgBox Format(Datum, "YYYY-MM-DD HH:MM:SS")
  4. Wenn du das Datum in einer SQL-Abfrage verwenden möchtest, kannst du Folgendes tun:

    WHERE (DELAY_STATISTIC_DAY.DAY={ts '" & Format(Datum, "yyyy-mm-dd HH:MM:SS") & "'})

Häufige Fehler und Lösungen

  • Fehler: Ungültiges Format

    • Ursache: Wenn das Datum nicht korrekt formatiert ist, kann es nicht in ein Datum umgewandelt werden.
    • Lösung: Stelle sicher, dass der Wert in der ComboBox ein gültiges Datumsformat hat, z.B. dd/mm/yyyy.
  • Fehler: Datentyp-Konflikte

    • Ursache: Wenn du versuchst, einen String einem Date-Typ zuzuweisen.
    • Lösung: Verwende CDate, um sicherzustellen, dass der String in ein Datum umgewandelt wird.

Alternative Methoden

Wenn du das Datumsformat in Excel VBA ändern möchtest, gibt es verschiedene Methoden:

  • Direkte Zuweisung mit TimeValue:

    Datum = CDate(cmbDatum.Value) + TimeValue("06:12:34")
  • Formatierung in der SQL-Abfrage: Anstatt das Datum vorher zu formatieren, kannst du auch direkt im SQL-String formatieren:

    WHERE (DELAY_STATISTIC_DAY.DAY={ts '" & Format(CDate(cmbDatum.Value), "yyyy-mm-dd") & " 06:00:00'})

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Datumsformat in VBA anpassen kannst:

  • Beispiel 1: Einfaches Datumsformat

    Dim Datum As Date
    Datum = CDate("21/08/2011 06:00:00")
    MsgBox Format(Datum, "YYYY-MM-DD HH:MM:SS") ' Ausgabe: 2011-08-21 06:00:00
  • Beispiel 2: Verwendung in einer SQL-Abfrage

    Dim StrSQL As String
    StrSQL = "SELECT * FROM DELAY_STATISTIC_DAY WHERE (DAY={ts '" & Format(Datum, "yyyy-mm-dd HH:MM:SS") & "'})"

Tipps für Profis

  • Nutze die Format-Funktion, um das Datum in verschiedenen Formaten auszugeben, z.B. dd/mm/yyyy oder yyyy-mm-dd.
  • Stelle sicher, dass du den richtigen Datentyp für deine Variablen verwendest, um Fehler zu vermeiden.
  • Verwende die Now-Funktion, um das aktuelle Datum und die aktuelle Uhrzeit zu erhalten:
    MsgBox Format(Now, "YYYY-MM-DD HH:MM:SS")

FAQ: Häufige Fragen

1. Wie kann ich ein Datum im Format dd/mm/yyyy anzeigen? Um ein Datum im Format dd/mm/yyyy anzuzeigen, kannst du folgendes verwenden:

MsgBox Format(Datum, "dd/mm/yyyy")

2. Was ist der Unterschied zwischen CDate und Format? CDate konvertiert einen String in einen Datentyp, während Format das Aussehen eines Datums oder einer Zahl verändert, ohne den Datentyp zu ändern.

3. Kann ich ein Datum in ein benutzerdefiniertes Format umwandeln? Ja, du kannst Format mit verschiedenen Platzhaltern verwenden, um das Datum in dein gewünschtes Format zu bringen, z.B. Format(Datum, "yyyy-mm-dd").

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige