3.3k Aufrufe
Gefragt in Tabellenkalkulation von beee Einsteiger_in (43 Punkte)
Hallo,

ich bekomme aus einem Download Datumsangaben im folgenden Format:
31.08.2010 15:40:43

Wie kann ich dieses Datum so formatieren, dass die Uhrzeit rausfällt?

Leider bleibt die Uhrzeit bei einer Formatierung TT.MM.JJJJ stehen.

10 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Mandy,

eigentlich müsste mit der neuen Formatierung die Uhrzeit verschwinden. Könnte es sein, dass die Zeile als Text interpretiert wird? Dann nützt eine neue Formatierung nichts und du musst das Datum umwandeln (z.B. mit 1 multiplizieren).

Gruß

M.O.
0 Punkte
Beantwortet von beee Einsteiger_in (43 Punkte)
Tatsächlich, der Datensatz wird als Text interpretiert.
Die Variante z. B. mit 1 zu multiplizieren funzt, aber gibt es eine elegante Lösung, eine Spalte mit derartigen Datensätzen per Makro in ein Datum umzuschreiben?
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Namenloser,

über ein Makro würde das z.B. folgendermaßen aussehen.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Text_in_Datum()
Dim lngRow As Long
Application.ScreenUpdating = False
'Daten in Spalte A werden in Datum geändert. Bei einer anderen Spalte die Zahl 1 in dem Text _
Cells(Rows.Count, 1)" und "Cells(lngRow, 1)" gegen eine andere Spaltenindexzahl z.B. für _
Spalte B eine 2 , auswechseln
For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If IsDate(Cells(lngRow, 1)) Then
With Cells(lngRow, 1)
.NumberFormat = "m/d/yyyy"
.Value = CDate(.Value) * 1
End With
End If
Next
End Sub

MfG,
Oliver
[sup]Jeder macht was er will, keiner macht was er soll, aber alle machen mit.[/sup]
0 Punkte
Beantwortet von beee Einsteiger_in (43 Punkte)
Hallo Oliver,

vielen Dank für deine Antwort. Ich habe mir eine Testdatei mit Daten (Datum als Text wie oben genannt) in Spalte A erstellt. Leider passiert nix, wenn ich Dein Makro drüberlaufen lasse... jetzt zweifle ich langsam an mir selbst :(

Momentan helfe ich mir erstmal mit dem Einfügen von Hilfsspalten, die im Anschluss die Spalte mit den Ausgangsdaten ersetzen, ist aber nicht wirklich elegant gelöst...

Viele Grüße,
Mandy
0 Punkte
Beantwortet von
Hi,


Stell doch Deine Testdatei mal online. (z.B. bei www.file-upload.net/ Den DownloadLink, den Du dann dort erhälst, kannst Du dann hier im Forum mal um Besten geben.)

bye
malSchauen
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Mandy,

Das Makro von Oliver funktioniert bei mir einwandfrei (Excel 2003) es werden sogar die Zellen von Text auf Datum umformatiert.

Sollte nur eine Information sein.


schöne Grüße

Paul1
0 Punkte
Beantwortet von beee Einsteiger_in (43 Punkte)
Hier der Link zur Datei - Spalte B muss von Text- in Datumsformat umgewandelt werden.

http://www.file-upload.net/download-2990576/Datum.xls.html

Viele Grüße,
Mandy
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Mandy,

Info:
es funktioniert so wie bereits beschrieben, allerdings nur in Spalte A!


schöne Grüße

Paul1
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mandy,

wenn Du Dir in dem Makro mal den grünen Text durchgelesen hättest, so hättest Du sicherlich bemerkt, dass das Makro nur für Spalte A ausgelegt war und Du für eine andere Spalte eine Zahl hättest ändern müssen. Das habe ich nun für Dich erledigt und Dir nachfolgend das Makro für Spalte B nochmals aufgeführt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Text_in_Datum()
Dim lngRow As Long
Application.ScreenUpdating = False
'Daten in Spalte A werden in Datum geändert. Bei einer anderen Spalte die Zahl 1 in dem Text _
Cells(Rows.Count, 1)" und "Cells(lngRow, 1)" gegen eine andere Spaltenindexzahl z.B. für _
Spalte B eine 2 , auswechseln
For lngRow = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If IsDate(Cells(lngRow, 2)) Then
With Cells(lngRow, 2)
.NumberFormat = "m/d/yyyy"
.Value = CDate(.Value)
End With
End If
Next
End Sub

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von beee Einsteiger_in (43 Punkte)
Oliver, DANKE!

Ja, ich hatte gesehen, dass das erste Makro auf Spalte A ausgelegt war - ich hab dann jedoch gleich einen Auszug der Originaldatei statt der Testdatei hochgeladen (und hier ging es um Spalte B).

Und ganz großes Sorry - das Makro läuft! Ich bin nur ursprünglich davon ausgegangen, dass die Uhrzeit gleich mit rausfällt, so dass ich dachte, bei mir läuft das Makro nicht... Aber die Konvertierung ins Datumsformat passt, ich kann die Daten nun reibungslos weiterverarbeiten, die Uhrzeit muss gar nicht mehr raus.

Bitte nochmal Sorry für das Missverständnis - Du hast mir ENORM weitergeholfen!!

Viele Grüße,
Mandy
...