Forums Neueste Beiträge
 
Tags Keywords

IsDate??

04/12/2008 - 11:29 von Uli Schoch | Report spam
Hallo
In einer VB-Procedure in Excel 2003 untersuche ich einen String, z.B
"26.11.08 14:39:20;12.000". Der 1. Teil bis ";" ist Datum+Zeit einer
Messung, der 2. Teil ist ein Temperaturwert.
Im 1. Durchgang des folgenden Codes ist Zellstr das Datum+Zeit, (26.11.08
14:39:20), im 2. ist Zellstr der Wert (12.000)

If IsDate(ZellStr) Then 'Datum Zeit
Cells(z, sp).Value = CDate(ZellStr)
If Cells(z, sp).Value < 1 Then Cells(z, sp).NumberFormat =
"hh:mm:ss"
Else
Cells(z, sp) = ZellStr ' Zelle eintragen
End If

In beiden Fàllen ist aber IsDate(Zellstr) true. Aus 12.000 wird dann in die
Zelle 1.12.2000 eingetragen. Warum wohl? Wie muss ich das korrekt handhaben?

Danke für Tipps

Uli
 

Lesen sie die antworten

#1 Andreas Killer
04/12/2008 - 12:21 | Warnen spam
On 4 Dez., 11:29, "Uli Schoch" wrote:

In einer VB-Procedure in Excel 2003 untersuche ich einen String, z.B
"26.11.08 14:39:20;12.000". Der 1. Teil bis ";" ist Datum+Zeit einer
Messung, der 2. Teil ist ein Temperaturwert.


...
In beiden Fàllen ist aber IsDate(Zellstr) true. Aus 12.000 wird dann in die
Zelle 1.12.2000 eingetragen. Warum wohl? Wie muss ich das korrekt handhaben?


Warum weiß ich nicht, aber die Lösung ist ganz simpel: Trenn die
Temperatur einfach ab, dann hast Du einen gültigen Datumsstring:

I = InStr(ZellStr, ";")
If I > 0 Then _
Temp = Mid(ZellStr, 1, I - 1) Else Temp = ZellStr
If IsDate(Temp) Then 'Datum Zeit
Cells(z, sp).Value = CDate(Temp)
If Cells(z, sp).Value < 1 Then _
Cells(z, sp).NumberFormat = "hh:mm:ss"
Else
Cells(z, sp) = Temp ' Zelle eintragen
End If

Andreas.

Ähnliche fragen