EXCEL US-Datum in DE-Datum

Grunge

Erfahrenes Mitglied
Hallo Leute,
habe ein kleines Problem google hat mir nicht weitergeholfen. Ich habe in einer Exel Datei Messwerte von einem Temperatursensor gespeichert. Mein Problem ist nur: Er hats im US Format gespeichert, und dazu auch noch kreuz und quer . . . Ich bin am durchdrehen.

Alsooo...Teilweise hab ich durch Zellen formatieren schon das richtige Format hergestellt aber nun habe ich gesehen, dass zwischen durch folgendes Format besteht:

MM.TT.JJJJ hh:mm am/pm

das am/pm soll wech! und dafür halt im 24h-Rythmus die Uhrzeit angegeben werden. Und das MM und TT muss natürlich vertauscht werden, am Ende soll das also so ausschauen

TT.MM.JJJJ hh:mm

Wie mach ich das! Am besten automatisiert, da ich ca. 21.000 Zeilen habe!
 
In Excel selber habe ich nix funktionierendes gefunden. Aber mit VBA gehts ganz locker
Erstelle in deinem Exceldokument ein Modul und kopiere die folgende Funktion hinein.
Visual Basic:
Public Function convertDateUs2Date(ByRef iRange As Range) As Date
    convertDateUs2D = CDate(iRange.Value)
End Function

Dann erstellst du dir einfach eine Spalte (Formatierung: Datum+Zeit wie du es haben willst) mit der folgenden Formel
Code:
=convertDateUs2D(A1)

Hier mein Test aus dem VBA-Directwindow
Code:
?cdate("06.01.2013 02:45 pm")
06.01.2013 14:45:00
 
Wie funktioniert das mit den Modulen anlegen?! habs über ALT + F11 irgendwie gemacht nur wenn ich deinen CODE eingebe kommt 'NAME?
 
Alt+F11 ist gut.
Dann hast du auf der Linken Seite einen Tree. Dort rechte Maustauste und ein Modul hinzufügen. Hab aber keine Ahnung wie das in einem deutschen Excel heisst.
 
Habs jetzt hinbekommen! das Problem war relativ einfach zu Lösen: Musste die Arbeitsmappe einfach als XLSM speichern******!
Nun funktioniert deine Funktion! aber die Ausgabe sieht wie folgt aus:

in der ausgangszelle steht:
11.05.2012 15:00:00 (muss aber 05.11.2012 werden)
die ausgabe lautet:
00.01.1900 00:00

glaube das Problem ist, dass der ausgang kein datum sondern ein text ist! nicht alle zellen sind mit PM/AM - das ist ja das nervige. . . in den zellen wo PM/AM gegeben ist gibt deine funktion 0
 
Hallo,

in Langform dieser Code:
Code:
Option Explicit

Function US2GER(USdate)
   Dim T As Integer, M As Integer, J As Integer
   USdate = CStr(USdate)
   T = CInt(Mid(USdate, 4, 2))
   M = CInt(Left(USdate, 2))
   J = CInt(Mid(USdate, 7, 4))
   US2GER = CDate(DateSerial(J, M, T))
End Function
Das Ergebnis dann nur noch als Datum formatieren. Das geht auch in 1 Zeile, aber nicht wirklich übersichtlich.
 

Neue Beiträge

Zurück