Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum convertieren nach yyyy-mm-dd

Forumthread: Datum convertieren nach yyyy-mm-dd

Datum convertieren nach yyyy-mm-dd
26.09.2014 19:13:31
chandler

Hallo zusammen,
wie koennte man das in einer vba routine realisieren?
In der Spalte A mit einer Datum-Reihe, nach unten variabel lang, im Format: dd.mm.yyyy
soll in das Format: yyyy-mm-dd convertiert werden.
Das Datumformat sollte beibehalten bleiben.
Hat jemand eine Idee und kann helfen?
Vielen Dank im Voraus.

Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum convertieren nach yyyy-mm-dd
26.09.2014 20:24:20
Michael H
Hi,
for i=1 to 65536
cells(i,1)=format(cells(i,1),"YYYY-MM-DD")
if cells(i,1)="" then exit for
next i
und fertig
VG
Michael H

AW: Datum convertieren nach yyyy-mm-dd
26.09.2014 20:35:52
chandler
Hallo Michael,
vielen Dank, aber da tut sich nichts. warum nur?
Gruesse

AW: Datum convertieren nach yyyy-mm-dd
26.09.2014 20:41:37
Hajo_Zi
man könnte vermuten es stehen keine Daten in der Zelle, wie es in Deinem ersten Beitrag stand sondern nur Text der aussieht wie Daten.
Gruß Hajo

Anzeige
AW: Datum convertieren nach yyyy-mm-dd
26.09.2014 22:30:09
Ewald
Hallo,
wie wärs einfach so
For i = 1 To 200
Cells(i, 1).NumberFormat = "YYYY-MM-DD"
Next i
dann bleibt auch das Datum erhalten
Gruß Ewald

AW: Datum convertieren nach yyyy-mm-dd
27.09.2014 11:08:18
Michael H
Hi, dann versuch mal folgendes:
for i=1 to 65536
if isdate(cells(i,1)) then
cells(i,1)=format(cells(i,1),"YYYY-MM-DD")
else
cells(i,2)="Kein Datumsformat erkannt"
end if
if cells(i,1)="" then exit for
next i

Anzeige
AW: Datum convertieren nach yyyy-mm-dd
26.09.2014 20:35:15
Hajo_Zi
Warum nicht einfach Zellen formatieren?

AW: Datum convertieren nach yyyy-mm-dd
26.09.2014 21:01:20
chandler
Hallo Hajo,
nein, die Spalte hat bereits ein Datumformat. Warum nur die VBA Routine nicht lauft ist mir nicht klar.
Gruesse

AW: Datum convertieren nach yyyy-mm-dd
27.09.2014 09:39:30
Hajo_Zi
gut ich hatte nicht vom Format geschrieben sondern Inhalt. Auch Text kannst Du ein Datumsformat zuweisen.
Gruß Hajo

Anzeige
Makro gelaufen?
27.09.2014 10:14:36
Erich G.
Hi "chandler" (?),
"Warum nur die VBA Routine nicht lauft ist mir nicht klar." Bist du sicher? Was heißt da "läuft nicht"?
Gibt es eine Fehlermeldung?
Lass mal spaßhalber das sehr ähnliche Makro

Sub NeuFormat()
Dim ii As Long
For ii = 1 To 5
Cells(ii, 1).NumberFormat = "d/ mmm/ yy"
Next ii
End Sub
laufen. Vielleicht siehst du zunächst keine Änderung. Aber schau dir doch mal das Zahlenformat
der Zellen A1 bis A5 an. Das sollte T. MMM. JJ sein - das ist das Ergebnis des Makros.
Dass sich die Anzeige der Werte in den Zellen nicht verändert hat, wird wohl daran liegen, dass in den Zellen
kein Datum, sondern Text steht.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Was ist ein Datum in Excel?
27.09.2014 00:44:08
Erich G.
Hi,
da wäre IMHO erst einmal zu klären, was genau in Spalte A steht. Hajo vermutete ja auch schon, dass das Texte sind.
Wenn in A2 so ein Datum steht:
Gib der Zelle A2 vorübergehend mal (per Hand) das Zahlenformat "Standard". Ändert sich die Anzeige?
Wenn da jetzt anstelle des Datums eine Zahl zu sehen ist (Größenordnung 40000), ist alles in Ordnung.
Wenn sich die Anzeige aber nicht geändert hat, also immer noch u. a. zwei Punkte zu sehen sind,
steht kein Datum, sondern ein Text in der Zelle A2.
Schreib doch mal woanders auf dem Blatt in zwei leere Zellen die Formeln
=ISTTEXT(A2)
=ISTZAHL(A2)
Wenn du in eine andere Zelle (z. B. F2) mit Standardformat die Formel
=1*A2
schreibst, wird dabei der Text in A2 zu einer Zahl, einem Datum. Aus A2="07.08.2009" wird 1*A2 = 40032.
Wenn du dann der Zelle F2 (mit dem Wert 40032) ein Datumsformat - etwa TT. MMM. JJJJ - gibst, wird die Zahl 40032
richtig als das Datum
07. Aug. 2009
angezeigt.
Empfehlen möchte ich dir das Lesen z. B. dieser Seite: http://www.online-excel.de/excel/singsel.php?f=128
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Was ist ein Datum in Excel?
27.09.2014 01:51:56
Ewald
Hallo,
Zitat:

nein, die Spalte hat bereits ein Datumformat.

Gruß Ewald

na und ...
27.09.2014 08:30:03
Erich G.
Hi Ewald,
falls du damit auf meinen vorigen Beitrag antwortest:
"die Spalte hat bereits ein Datumformat": Ja, trotzdem können Texte in den Zellen stehen, oder etwa nicht?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: Schönes Wochenende allerseits!

Anzeige
AW: Und so habe ich das geloest
27.09.2014 11:18:16
chandler
Hallo Erich,
vielen Dank, in der Tat, das Makro funktioniert man sieht bloss keine Aenderung in der Spalte.
Ich habe das so geloest, bloed nur dass man die Spalte markieren muss:
Sub test()
Dim d As Range
Columns("A1:A100").Select
For Each d In Selection
Selection.NumberFormat = "yyyy-mm-dd"
Next d
End Sub

Vielen Dank auch an Hajo und Ewald
Gruesse

Anzeige
AW: Und so habe ich das geloest
27.09.2014 11:56:03
Erich G.
Hi ,
bist du sicher, dass in deiner Routine
Columns("A1:A100").Select
steht? Bei mi ergäbe das einen Fehler 1004 - "Anwendungs- oder objektdefinierter Fehler".
Wenn ich das ersetze durch
Range("A1:A100").Select
läuft es fehlerlos durch.
"bloed nur dass man die Spalte markieren muss": Wieso das denn? In meinem Code kam kein Select vor...
Und wie wäre es mit

Sub test2()
Range("A1:A100").NumberFormat = "yyyy-mm-dd"
End Sub
Jetzt steht die 100 noch fest im Code, das kann zu viel, aber auch zu wenig sein. Variabler ist z. B.
Sub test3()
Cells(1, 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row).NumberFormat = "yyyy-mm-dd"
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: na und ...
27.09.2014 15:15:29
Ewald
Hallo Erich,
hatte gedacht der Wink mit dem Zaunpfahl reicht.
das Makro formatiert den Wert(Datum)um, wenn du dann in einer MSGBox anzeigen läßt siehst du auch das es richtig ist.
Danach fügst du den Wert in eine Zelle ein,die schon als Datum formatiert ist, hier erkennt Excel das es ein Datum ist und verwendet die Zellenformatierung.
Da sich dadurch nichts in der Tabelle änderte,die Mitteilung es geht nicht.
Es muß also nicht der Wert formatiert werden,sondern das Anzeigeformat und dies geht mit Numberformat.
Gruß Ewald

Anzeige
AW: Columns(1).NumberFormat = ... o.T.
27.09.2014 12:23:05
Gerd L
Gruß Gerd

AW: Columns(1).NumberFormat = ... o.T.
27.09.2014 15:07:52
chandler
Hallo Erich,
hallo Gerd,
vielen Dank fuer euche Hilfe. Beide Ansaetzte sich doch besser, als mein Loesungsansatz.
Nochmals vielen Dank.
Gruesse

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Datum konvertieren nach yyyy-mm-dd in Excel


Schritt-für-Schritt-Anleitung

Um das Datum in Excel von dd.mm.yyyy nach yyyy-mm-dd zu konvertieren, kannst Du eine VBA-Routine verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf "Einfügen" und wähle "Modul", um ein neues Modul zu erstellen.

  3. Füge folgenden Code ein:

    Sub DatumKonvertieren()
       Dim i As Long
       For i = 1 To 65536
           If IsDate(Cells(i, 1)) Then
               Cells(i, 1) = Format(Cells(i, 1), "yyyy-mm-dd")
           Else
               Cells(i, 2) = "Kein Datumsformat erkannt"
           End If
           If Cells(i, 1) = "" Then Exit For
       Next i
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die Umwandlung durchzuführen.


Häufige Fehler und Lösungen

Ein häufiges Problem bei der Umwandlung von Datumsformaten ist, dass die Zellen möglicherweise Text enthalten, der wie ein Datum aussieht. Hier sind einige Lösungen:

  • Text statt Datum: Wenn Du in einer Zelle mm dd yyyy siehst, könnte es sein, dass der Inhalt als Text formatiert ist. Verwende die Formel =ISTTEXT(A2) in einer anderen Zelle, um dies zu überprüfen.
  • Falsches Format: Stelle sicher, dass das Datum tatsächlich in der Zelle steht. Manchmal wird das Datum nicht erkannt, weil es nicht im richtigen Format vorliegt. Du kannst das Zahlenformat temporär auf "Standard" setzen, um zu sehen, ob sich der Wert ändert.
  • Fehlermeldungen: Wenn Du Fehlermeldungen erhältst, überprüfe, ob das Makro korrekt eingegeben wurde und ob die Zellen den richtigen Inhalt haben.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch folgende Methoden nutzen:

  1. Zellen formatieren:

    • Wähle die Zellen aus, die Du umwandeln möchtest.
    • Klicke mit der rechten Maustaste und wähle "Zellen formatieren".
    • Wähle "Benutzerdefiniert" und gebe yyyy-mm-dd ein.
  2. Formel verwenden:

    • Du kannst auch eine Formel nutzen, um das Datum zu konvertieren:
      =TEXT(A1, "yyyy-mm-dd")

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du das Datum umwandeln kannst:

  • Beispiel 1: Umwandeln von 07.08.2009 in 2009-08-07.
  • Beispiel 2: Wenn Du mehrere Daten in der Spalte A hast, kannst Du die oben genannte VBA-Routine verwenden, um alle Daten zu konvertieren.
  • Beispiel 3: Um das aktuelle Datum im Format yyyymmdd anzuzeigen, kannst Du den folgenden VBA-Code verwenden:
    Cells(1, 1) = Format(Date, "yyyymmdd")

Tipps für Profis

  • Verwende Cells statt Select: Um die Effizienz Deines Codes zu verbessern, verwende Cells direkt, ohne vorher die Zellen auszuwählen.
  • Datumsformat anpassen: Wenn Du das Datumsformat in eine andere Sprache ändern möchtest, kannst Du das Format entsprechend anpassen (z.B. dd/mm/yyyy).
  • Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinem VBA-Code, um unerwartete Situationen abzufangen.

FAQ: Häufige Fragen

1. Was bedeutet mm dd yyyy? mm dd yyyy ist ein Datumsformat, das den Monat zuerst, dann den Tag und schließlich das Jahr angibt.

2. Wie kann ich ein Datum im Format yyyymmdd umwandeln? Du kannst die Funktion Format in VBA verwenden, um das Datum in yyyymmdd zu formatieren, wie im folgenden Beispiel:

Cells(i, 1) = Format(Cells(i, 1), "yyyymmdd")

3. Warum funktioniert mein VBA-Code nicht? Es könnte sein, dass die Zellen entweder leeren Inhalt oder Text anstelle von Datum enthalten. Stelle sicher, dass die Zellen tatsächlich Datumswerte enthalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige