![]() |
Betrifft: Datum convertieren nach yyyy-mm-dd
von: chandler
Geschrieben am: 26.09.2014 19:13:31
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.
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: Michael H
Geschrieben am: 26.09.2014 20:24:20
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
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: chandler
Geschrieben am: 26.09.2014 20:35:52
Hallo Michael,
vielen Dank, aber da tut sich nichts. warum nur?
Gruesse
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: Hajo_Zi
Geschrieben am: 26.09.2014 20:41:37
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
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: Ewald
Geschrieben am: 26.09.2014 22:30:09
Hallo,
wie wärs einfach so
For i = 1 To 200 Cells(i, 1).NumberFormat = "YYYY-MM-DD" Next idann bleibt auch das Datum erhalten
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: Michael H
Geschrieben am: 27.09.2014 11:08:18
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
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: Hajo_Zi
Geschrieben am: 26.09.2014 20:35:15
Warum nicht einfach Zellen formatieren?
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: chandler
Geschrieben am: 26.09.2014 21:01:20
Hallo Hajo,
nein, die Spalte hat bereits ein Datumformat. Warum nur die VBA Routine nicht lauft ist mir nicht klar.
Gruesse
![]() ![]() |
Betrifft: AW: Datum convertieren nach yyyy-mm-dd
von: Hajo_Zi
Geschrieben am: 27.09.2014 09:39:30
gut ich hatte nicht vom Format geschrieben sondern Inhalt. Auch Text kannst Du ein Datumsformat zuweisen.
Gruß Hajo
![]() ![]() |
Betrifft: Makro gelaufen?
von: Erich G.
Geschrieben am: 27.09.2014 10:14:36
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 Sublaufen. Vielleicht siehst du zunächst keine Änderung. Aber schau dir doch mal das Zahlenformat
![]() ![]() |
Betrifft: Was ist ein Datum in Excel?
von: Erich G.
Geschrieben am: 27.09.2014 00:44:08
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
![]() ![]() |
Betrifft: AW: Was ist ein Datum in Excel?
von: Ewald
Geschrieben am: 27.09.2014 01:51:56
Hallo,
Zitat:
nein, die Spalte hat bereits ein Datumformat.
Gruß Ewald
![]() ![]() |
Betrifft: na und ...
von: Erich G.
Geschrieben am: 27.09.2014 08:30:03
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!
![]() ![]() |
Betrifft: AW: Und so habe ich das geloest
von: chandler
Geschrieben am: 27.09.2014 11:18:16
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
![]() ![]() |
Betrifft: AW: Und so habe ich das geloest
von: Erich G.
Geschrieben am: 27.09.2014 11:56:03
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 SubJetzt 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 SubRückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
![]() ![]() |
Betrifft: AW: na und ...
von: Ewald
Geschrieben am: 27.09.2014 15:15:29
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
![]() ![]() |
Betrifft: AW: Columns(1).NumberFormat = ... o.T.
von: Gerd L
Geschrieben am: 27.09.2014 12:23:05
Gruß Gerd
![]() ![]() |
Betrifft: AW: Columns(1).NumberFormat = ... o.T.
von: chandler
Geschrieben am: 27.09.2014 15:07:52
Hallo Erich,
hallo Gerd,
vielen Dank fuer euche Hilfe. Beide Ansaetzte sich doch besser, als mein Loesungsansatz.
Nochmals vielen Dank.
Gruesse
![]() |