Formatierung als Datum funktioniert nicht

24/08/2008 - 23:52 von Peter | Report spam
Hallo,
ich habe eine Userform, bei der ein Datum in ein Textfeld eingegeben
werden muss.

Im Code für die Übertragung einer Textbox auf die Zelle A1 steht:
TextBox1 = Format(TextBox1, "dd/mm/yyyy")
Range("A1").Value = TextBox1.Value

Das Datum erscheint dann in der Zelle A1 korrekt mit führenden Nullen,
obwohl bei der Textboxeingabe diese vielleicht weggelassen wurden. Das
ist soweit o.k. und gewünscht.

Die Zelle A1 ist als Datum mit TT.MM.JJJJ formatiert. Bei einem
spàteren Vergleich des Inhalts von A1 mit dem heutigen Datum (If
Range("A1") = Date) sieht Excel den Inhalt der Zelle A1 aber als
String und meckert deshalb weil sich die Variablentypen String (von
A1) und Datum (von Date) nicht vertragen.

Wie bekommt man dieses Formatierungsproblem sauber hin? Oder anders
gesagt, wie schafft man es, dass Excel das Datum aus A1 auch als Datum
sieht?

Gruß
Peter
 

Lesen sie die antworten

#1 Thomas Ramel
25/08/2008 - 00:17 | Warnen spam
Grüezi Peter

Peter schrieb am 24.08.2008

Im Code für die Übertragung einer Textbox auf die Zelle A1 steht:
TextBox1 = Format(TextBox1, "dd/mm/yyyy")
Range("A1").Value = TextBox1.Value



Ja, und damit übergibst du der Zelle den Inhalt der Textbox als das was
diese liefert, nàmlich Text.

Das Datum erscheint dann in der Zelle A1 korrekt mit führenden Nullen,
obwohl bei der Textboxeingabe diese vielleicht weggelassen wurden. Das
ist soweit o.k. und gewünscht.



Nein, das sieht nur so aus...

Die Zelle A1 ist als Datum mit TT.MM.JJJJ formatiert. Bei einem
spàteren Vergleich des Inhalts von A1 mit dem heutigen Datum (If
Range("A1") = Date) sieht Excel den Inhalt der Zelle A1 aber als
String und meckert deshalb weil sich die Variablentypen String (von
A1) und Datum (von Date) nicht vertragen.



...wie du hier bemerkt hast.

Wie bekommt man dieses Formatierungsproblem sauber hin? Oder anders
gesagt, wie schafft man es, dass Excel das Datum aus A1 auch als Datum
sieht?



Ganz einfach:

- Formatiere die *Zelle* mit 'TT.MM.JJJJ'
- Wandle dann den String aus der Textbox in ein Datum um und
schreibe dieses in die Zelle


Range("A1").Value = CDate(TextBox1.Value)


Prüfen, ob das in der Textbox stehende Datum ein echtes Datum ist musst Du
wohl ebenfalls noch, aber das ist ein anderes Thema.



Mit freundlichen Grüssen
Thomas Ramel

- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]
Microsoft Excel - Die ExpertenTipps

Ähnliche fragen