Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datum in VBA erkennen
17.03.2016 17:34:15
Phantom
Hallo liebe Helfer,
ich habe einen String im Format "Month Day, Year", diesen lese ich aus einer Textdatei ein.
Wenn ich diesen Wert, beispielsweise "Mar 14, 2016" in eine Zelle schreibe, erkennt Excel automatisch, dass es ein Datum ist. Wenn ich die Zelle dann im Format dd.mm.yyyy" formatiere, wird das Datum wie gewünscht (14.03.2016) angezeigt.
Den gleichen Effekt möchte ich nun direkt in VBA bewirken, da ich dort einen Abgleich mit einem Datumsstring im Format dd.mm.yyyy machen möchte.
Dim sDate1 as String
Din sDate2 as String
sDate1 = "Mar 14, 2016"
sDate2 = "13.03.2016"
if sDate1 sDate2 Then
do something
end if
Beide Daten werden über eine Textdatei eingelesen und sind deswegen Strings. Eventuell gibt eine Konvertierung zu Date vor dem Vergleich Sinn.
Vielen Dank und herzliche Grüße
Phantom

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum in VBA erkennen
17.03.2016 17:41:12
Daniel
Hi
mit der Funktion CDate() kannst du einen Text, der wie ein Datum aussieht in ein Datum wandeln:
If CDate(sDate1)  CDate(sDate2) Then
mit IsDate() kannst du prüfen, ob der Textstring überhaupt in ein Datum wandelbar ist (die Prüfung kann ggf erforderlich sein, da CDate() einen Fehlerabbruch erzeugt, wenn der Text nicht in ein Datum wandelbar ist)
Gruß Daniel

AW: Datum in VBA erkennen
17.03.2016 18:41:25
Phantom
Hallo Daniel,
vielen herzlichen Dank für deine Antwort. Leider kann CDate den String "May 14, 2016" nicht in ein Datum wandeln (Typen unverträglich).
Folgendes funktioniert, aber wie gesagt, ich benötige ähnliches in VBA. Gibt es eine einfache Methode oder muss ich den String zerteilen?

Dim sDate1 as String
sDate1 = "Mar 14, 2016"
Worksheets(1).Cells(1, 1).Value = sDate1
Worksheets(1).Columns(1).NumberFormat = "dd.mm.yyyy"

Anzeige
AW: Datum in VBA erkennen
17.03.2016 18:56:12
Daniel
Hi
die Umwandlungsfunktionen CDate oder auch DateValue benötigten die landestypischen Schreibweisen, dh in Deutschland für den 5. Monat "Mai" oder für den 8. Monat "Oktober".
wenn die Texte im englischen Format vorliegen ("May", "October") wüsste ich jetzt für VBA keine Umwandlungsfunktion, die dieses verwendet, ausser der von dir schon gezeigten Methode, den Wert in die Zelle zu schreiben, und die automatische Umwandlungsfunktion von Excel zu nutzen, denn diese wendet das englische Schema an, wenn die Werte von VBA kommen.
die alternativen Lösungen wären, die Monatsbezeichungen per Replace durch deutsche Monatsbezeichnungen zu ersetzen, oder eben den String zu zerlegen und dann das ganze ausprogrammieren.
Gruß Daniel

Anzeige
AW: Datum in VBA erkennen
20.03.2016 11:31:35
Sanjoy
Vielen Dank!

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige