Discussion:
Zahlen in Datum umwandeln ?
(zu alt für eine Antwort)
Jimmy
2004-03-03 15:54:20 UTC
Permalink
Hi,

ich habe in Excel eine sehr lange Liste, die auch eine Datumsspalte enthält.
Die Werte darin sind aber in diesem Format eingegeben: "20040303"
Die Zellen sind auch nicht formatiert als Datumszellen, sondern als Zahl
oder Standard.

Das Problem ist, dass ich sie alle in das jeweilige Datum umwandeln möchte,
damit Excel und Access auch damit rechnen können.

Bspw. kann ich keine Abfrage der letzten 20 Tage erstellen, weil Excel mit
dem Format "20040303" nichts anfangen kann.
Wie stelle ich das jetzt an. Gibt es dafür eine VBA-Lösung.

Beispielsweise, dass er mir die Zelle mit dem Inhalt "20040303" in
"03.03.2004" oder "3. März 2004" umwandelt und in ein Datum formatiert, so
dass ich damit umgehen kann wie mit jedem anderen Datum auch ?

Für jeden Tipp dankbar.
Freundliche Grüße
Thomas Ramel
2004-03-03 16:02:12 UTC
Permalink
Grüezi Jimmy

Jimmy schrieb am 03.03.2004
Post by Jimmy
ich habe in Excel eine sehr lange Liste, die auch eine Datumsspalte enthält.
Die Werte darin sind aber in diesem Format eingegeben: "20040303"
Die Zellen sind auch nicht formatiert als Datumszellen, sondern als Zahl
oder Standard.
Das Problem ist, dass ich sie alle in das jeweilige Datum umwandeln möchte,
damit Excel und Access auch damit rechnen können.
Verwende dazu eine Hilfsspalte mit der folgenden Formel und ziehe diese
nach unten (Doppelklick auf Ausfüllkästchen):

=DATUM(LINKS(A1;4);TEIL(A1;5;2);RECHTS(A1;2))

Markiere und kopiere dann diese Spalte --> Rechtsklick --> Inhalte einfügen
--> [x] Werte --> [OK]

Nun kannst Du die Original-Spalte löschen.
--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

[Win 2000Pro SP-4 / xl2000 SP-3]
unknown
2004-03-03 16:52:51 UTC
Permalink
Hallo Jimmy,
wie folgt:
A1: 20040303
Formel: =DATUM((LINKS(A1;4));TEIL(A1;5;2);RECHTS(A1;2))
Ergebnis: 03.03.2004

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Michael Klein
2004-03-03 17:05:12 UTC
Permalink
Danke. Hat wunderbar geklappt.
Gibt es dafür auch einen VBA-Code, den ich bei Bedarf schnell als Makro
ausführen kann ?
Post by unknown
Hallo Jimmy,
A1: 20040303
Formel: =DATUM((LINKS(A1;4));TEIL(A1;5;2);RECHTS(A1;2))
Ergebnis: 03.03.2004
MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
BorisX
2004-03-03 17:31:10 UTC
Permalink
Hi Michael,
Post by Michael Klein
Danke. Hat wunderbar geklappt.
Gibt es dafür auch einen VBA-Code, den ich bei Bedarf
schnell als Makro
Post by Michael Klein
ausführen kann ?
Den gibt es - und vorab gibt´s noch die ultrakurze
Formelvariante:
=TEXT(A1;"00-00-00")*1 und Zelle mit "TT.MM.JJJJ"
formatieren.

Mit VBA (vorher umzuwandelnde Zellen markieren):

Option Explicit

Sub datum()
Dim C As Range
For Each C In Selection
C = WorksheetFunction.Text(C, "00-00-00")
Next C
End Sub

Obwohl die TEXT-Funktion im Code angewandt wird, wird
automatisch ein "echtes" Datum draus.
--
Grüße Boris
unknown
2004-03-03 18:20:50 UTC
Permalink
Hallo Michael,
weise einer Schaltfläche das folgende Makro zu:

Sub DatumUmwandeln()
Dim rngZelle As Range
For Each rngZelle In Selection
rngZelle.Value = DateSerial(Left(rngZelle.Value, 4), _
Mid(rngZelle.Value, 5, 2), Right(rngZelle.Value, 2))
Next
End Sub

Anmerkung:
Markiere alle betreffenden Zelle, die umgewandelt werden sollen.
Starte das Makro.
Das Makro enthalt keinerlei Plausibilitäts- oder andere
Fehlerüberprüfung.

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Michael Klein
2004-03-04 09:34:24 UTC
Permalink
Danke euch allen.
Hat mir sehr weitergeholfen.

Gruß
Post by unknown
Hallo Michael,
Sub DatumUmwandeln()
Dim rngZelle As Range
For Each rngZelle In Selection
rngZelle.Value = DateSerial(Left(rngZelle.Value, 4), _
Mid(rngZelle.Value, 5, 2), Right(rngZelle.Value, 2))
Next
End Sub
Markiere alle betreffenden Zelle, die umgewandelt werden sollen.
Starte das Makro.
Das Makro enthalt keinerlei Plausibilitäts- oder andere
Fehlerüberprüfung.
MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Lesen Sie weiter auf narkive:
Loading...