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

VBA - Datum prüfen und formatieren

VBA - Datum prüfen und formatieren
02.10.2021 23:48:07
Peter_S
Zur Konvertierung unterschiedlicher Datumsformate prüfe ich eine Eingabezelle mit IsDate und gebe dann den Inhalt mit dem Format "DD.MM.YYYY" aus.
Wenn nun die Eingabezelle ein Datum ohne Tagesangabe enthält, dann ist dies ja ebenfalls eine gültige Datumsangabe. Wie kann ich prüfen, ob die Ausgangszelle eine Tagesangabe hat oder nicht? Wie erreiche ich das "Oktober 2021" oder "2021/10" als "10.2021" ausgegeben wird und nicht als 1.10.2021?

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Datum prüfen und formatieren
02.10.2021 23:59:56
Oberschlumpf
na, zähl doch die Slashes in der Angabe.
bei...
"Oktober 2021" = zählen von / = 0, dann
mit Split() nach Leerzeichen trennen; ergibt Split()(0) = "Oktober"
jetzt überprüfen, ob Split()(0) ein Monatsname ist
wenn Nein, dann Code-Abbruch
wenn Ja, dann erstmal Monatsname in Zahl umwandeln, dann Format = "MM.YYYY"; ergibt aus Split()(0) + Split()(1) = "10.2021"
bei...
"2021/10" = ähnlich vorgehen, nur eben darauf achten, dass nur 1x / vorkommen darf, und dass jetzt Monat hinten und Jahr vorn steht.
Hach ja, mal nicht den Code selbst erstellen müssen macht auch mal Spaß :-) bei VBA = Gut bekommst du das ja hin.
Hilfts?
Anzeige
AW: VBA - Datum prüfen und formatieren
03.10.2021 00:18:35
Peter_S

Hilfts?
Hallo Oberschlumpf.
Nicht wirklich. Dennoch vielen Dank für die schnelle Reaktion.
Die Angaben "Oktober 2021" oder "2021/10" waren nur beispielhaft. Ich möchte alle Angaben, welche IsDate als gültig kennzeichnet, prüfen und in einem einheitlichen Format ausgeben. Mit einheitlich meine ich entweder "DD.MM.YYYY" oder "MM.YYYY" oder "YYYY", in Abhängigkeit der Eingabewerte.
Gibt es also eine Möglichkeit zu prüfen, ob die Eingabezelle Tag/Monat/Jahr, Monat/Jahr oder nur Jahr beinhaltet?
AW: VBA - Datum prüfen und formatieren
03.10.2021 01:18:04
Oberschlumpf
Hi,
da gibts bestimmt ne Möglichkeit!
Aber..ähh...wie stellst du dir das vor - ohne, dass du vllt bitte mal ne Bsp-Datei mit ausreichend Bsp-Daten per Upload zeigst?
Denn was unterschiedliche Datumsanzeigen betrifft, gibt es ja auch so Einige.
Ich mag jetzt zuerst aber nich überlegen müssen, WAS es da so alles gibt - bevor - ich mit dem eigtl Testen für dich beginnen kann.
Ciao
Thorsten
Anzeige
AW: VBA - Datum prüfen und formatieren
04.10.2021 00:26:58
Peter_S
Hallo Thorsten,
ich zähle jetzt die möglichen Trennzeichen und entscheide das Format in Abhängigkeit der Anzahl.
If IsDate(vDate) = True Then
iCnt1 = Len(vDate) - Len(Replace(vDate, " ", ""))
iCnt2 = Len(vDate) - Len(Replace(vDate, ".", ""))
iCnt3 = Len(vDate) - Len(Replace(vDate, "/", ""))
iCnt4 = Len(vDate) - Len(Replace(vDate, "-", ""))
If iCnt1 = 2 Or iCnt2 = 2 Or iCnt3 = 2 Or iCnt4 = 2 Then
sDATE = Format(vDate, "DD.MM.YYYY")
ElseIf iCnt1 = 1 Or iCnt2 = 1 Or iCnt3 = 1 Or iCnt4 = 1 Then
sDATE = Format(vDate, "MM.YYYY")
End If
Else
sDATE = vDate
End If
Danke für Deine Tipps.
Peter
Anzeige
AW: VBA - Datum prüfen und formatieren
04.10.2021 02:10:34
Oberschlumpf
Hi Peter,
zwar nur indirekt, aber ich bat dich um eine Bsp-Datei per Upload.
Warum du diese nicht liefern kannst oder willst, weiß ich nicht.
Ich bin raus - wer anders bitte - weiter viel Erfolg.
Ciao
Thorsten
AW: VBA - Datum prüfen und formatieren
06.10.2021 07:27:56
MCO
Moin Peter!
Wenn du schon so weit bist, dass Excel die Eingabe als Datum erkennt, dann kannst du doch einfach das erkannte Format auslesen:

activecell.numberformat
für Oktober 2021 wird umgewandelt in Okt 21, format ist dann "mmm-yy"
Gruß, MCO
AW: VBA - Datum prüfen und formatieren
06.10.2021 14:45:13
Peter_S
Hi MCO,
danke für den Tipp, habe ich probiert.
Die Abfrage auf das numberformat funktioniert nicht in allen Fällen. Wenn die Ausgangszelle einen Text enthält, zum Beispiel "'Oktober 2021" (mit vorangestelltem Hochkomma), dann ist numberformat = "General", die IsDate-Prüfung aber trotzdem positiv.
Viele Grüße
Peter
Anzeige
AW: VBA - Datum prüfen und formatieren
06.10.2021 18:07:37
Oberschlumpf
Hi Peter,
und vor der IsDAte-Prüfung kannst du nicht prüfen, ob das erste Zeichen = ' ist?! (Hochkomma, wie du es nennst)
Wenn 1. Zeichen = ' (Anführ.zeichen nich vergessen!), dann könntest du auf IsDate prüfen...usw
Hilfts?
Ciao
Thorsten
AW: VBA - Datum prüfen und formatieren
06.10.2021 18:41:10
GerdL
Moin,
es geht undurchsichtiger.

ReDim cnt(0 To 3) As Integer
cnt(0) = 0
If IsDate(vdate) Then
cnt(0) = Len(vdate) - Len(Replace(vdate, " ", ""))
cnt(1) = Len(vdate) - Len(Replace(vdate, ".", ""))
cnt(2) = Len(vdate) - Len(Replace(vdate, "/", ""))
cnt(3) = Len(vdate) - Len(Replace(vdate, "-", ""))
End If
sDate = Array(vdate, Format(vdate, "MM.YYYY"), Format(vdate, "DD.MM.YYYY"))(Application.Max(cnt))
Erase cnt
Gruß Gerd
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige