ich hätte da mal eine Frage an euch Experten. Ich suche seit Stunden nun schon die Lösung und komme nicht weiter. Recherche im Internet hat mir bisher auch nicht so Recht geholfen.
Ich habe folgendes Problem:
Aus einem Programm habe ich eine Datentabelle mit Zeitwerten im Format T:hh:mm:ss.0000 exportiert. Da Excel scheinbar nur das Format T:hh:mm:ss.00 verarbeiten kann und mich die Tausendstel für meine Auswertung nicht interessieren, entferne ich zurzeit per Makro die letzten fünf Zeichen jedes Eintrages und formatiere den resultierenden Zelleninhalt im Format T:hh:mm:ss. So weit so gut.
Problematisch wird es, wenn die zu verarbeitenden Werte ab und zu nicht das Format T:hh:mm:ss.0000 aufweisen, sondern bspw mm:ss.0000. Sobald ich hier die letzten fünf Ziffern entferne, zerschießt Excel die komplette Formatierung, sodass mir komplett abwegige Zeitwerte angezeigt werden (z.B wird 05:00.0000 zu 0:05:00:00). Versuche ich dieses Problem zu umgehen, indem ich vor dem Löschen der letzten fünf Ziffern den Wert "00:00:" voransetze (um wieder auf die Formatierung T:hh:mm:ss.0000 zu kommen), passiert das gleiche. Probleme bereiten mir nur die Formatierungen mm:ss.0000, m:ss.0000, ss.0000 und s.0000 - der Rest funktioniert tadellos.
Wisst ihr, wo hier mein Fehler liegt und wie ich ihn beheben könnte? Gibt es ferner eine elegantere Möglichkeit, als zellenweise die Einträge der Tabelle manuell und sehr zeitintensiv anzupassen?
Wäre es zum Beispiel möglich, Excel mittels VBA dazu zu zwingen, die Formatierung T:hh:mm:ss.0000 anzunehmen?
Oder gibt es einen Befehl, mit dem die letzten x Ziffern aller markierter Zellen entfernt werden können?
Für den Fall, dass mein Quellcode für die Formatierungsprobleme verantwortlich ist, füge ich ihn euch gerne hier noch an.
Vielen Dank für eure Hilfe!
JMD
For Each Zelle In Sheets("Durchlaufzeiten").UsedRange
Str = Zelle
If Len(Str) = 6 Then
Str1 = Zelle.Value
Str1 = "00:00:00:0" & Str1
Zelle.Value = Str1
End If
If Len(Str) = 7 Then
Str1 = Zelle.Value
Str1 = "00:00:00:" & Str1
Zelle.Value = Str1
End If
If Len(Str) = 9 Then
Str1 = Zelle.Value
Str1 = "00:0" & Str1
Zelle.Value = Str1
End If
If Len(Str) = 10 Then
Str1 = Zelle.Value
Str1 = "00:" & Str1
Zelle.Value = Str1
End If
If Len(Str) > 4 Then
If Mid$(Str, Len(Str) - 4, 1) = "." Then
Zelle = Left(Str, Len(Str) - 5)
End If
End If
Next
Sheets("Durchlaufzeiten").Columns("C:E").NumberFormat = "d:hh:mm:ss"