Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumsformat

Datumsformat
Julia
Hallo,
in meiner Rohdatei steht in Spalte J ein Datum.
Excel erkennt dies nur als 2-stelige Jahreszahl.
Es kommt ein gelbes Warndreieck.
Ich habe die Option in 19xx oder 20xx umzuwandeln
Da es über 5000 einträge sind möchte ich ungern jedes Feld einzeln umwandeln.
kann man das als Makro machen das er mir alles in 20xx umwandelt?
Gruß
Julia

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
was genau steht in den Zellen? Beispiele oT.
18.02.2011 10:10:46
Tino
hier mit Beispieldatei
18.02.2011 10:25:08
Julia
Hier die Beispieldatei:
https://www.herber.de/bbs/user/73610.xls
In den Zerrle steht z.B.
20/Dez/10
Excel weiss jetzt nicht ob 20.12.2010 oder 20.12.1910
Es ist aber immer 20xx
Wenn in der Zelle z.B. steht:
01/Jan/11 dann soll es zu 01.01.2011 werden
Excel bietet mir wiegesagt die Möglichkeit über einen Warnung den Wert in 19xx oder 20xx umzuwandeln.
aber sind 5000 Einträge, wäre sehr mühsam dass einzeln durchzumachen :)
Siehe Beispiel.
makro alle Werte in Spalte B umwandeln
AW: hier mit Beispieldatei
18.02.2011 10:37:40
Tino
Hallo,
versuch es mal mit diesem Code, erst nur mal testen.
Den Bereich wo Deine Daten stehen, müsstest Du im Code noch anpassen.
Sub Test()
Dim ArrData, n As Long
'Bereich anpassen
ArrData = Range("B2", Cells(Rows.Count, 2).End(xlUp))
For n = 1 To UBound(ArrData)
If IsDate(ArrData(n, 1)) Then
ArrData(n, 1) = DateValue(ArrData(n, 1))
End If
Next n
'Ausgabe 1. Zelle anpassen
Range("B2").Resize(UBound(ArrData)) = ArrData
End Sub
Gruß Tino
Anzeige
KLAPPT PRIMA. DANKE
18.02.2011 10:44:02
Julia
KLAPPT PRIMA. DANKE
AW: hier mit Beispieldatei
18.02.2011 10:38:53
AndreasG
Hallo Julia,
in eine leere Zelle eine 1 schreiben.
Diese Zelle kopieren
die Spalte mit deinen Daten markieren
Menu: bEarbeiten-Inhalte einfügen- Häkchen rein bei multiplizieren und ok.
Dannste ht 40658 usw. in den Zellen. Anschließen die Spalte im Format Datum formatieren.
Fertig
Grüße
Andreas
AW: Datumsformat
18.02.2011 10:32:39
fcs
Hallo Julia,
das folgende Makro führt eine entsprechende Umwandlung aus. Vor dem Start des Makros den Zellbereich mit den umzuwandelnden Datumsangaben auswählen.
Gruß
Franz
Sub Datum_nur_20xx()
Dim Bereich As Range, Zelle As Range
'2-stellige Jahreswerte im selektierten Zellbereich auf 20xx umstellen
Set Bereich = Selection
For Each Zelle In Bereich
With Zelle
If IsDate(Zelle.Text) Then
.Value = DateSerial(Year:=Val(Right(.Text, 2)) + 2000, _
Month:=Month(CDate(.Text)), _
Day:=Day(CDate(.Text)))
End If
End With
Next
End Sub

Anzeige
klappt super - blos welche Spalte?
18.02.2011 10:35:58
Julia
Klappt super....
aber ich verstehe anhand des makros nicht auf welche Spalte er zugreift.
Habe die betreffende Spalte markiert und dann hat es geklappt
Kann man im Makro auch hinterlegen das er alle Werte in Spalte P bearbeitet.
Also von P2 bis letzter Eintrag in P
AW: klappt super - blos welche Spalte?
18.02.2011 10:42:29
Julia
Das habe ich verstanden das Makro klappt auch super
Trotzdem meine Frage:
Wäre es möglich ohne Markierung. Die Werte stehen immer in Spalte P.
So dass er ohne markieren zu müssen in P umwandelt?
AW: klappt super - blos welche Spalte?
18.02.2011 11:18:29
fcs
Hallo Julia,
nachfolgend Makro mit vorgegebenem Bereich in Spalte P.
Bei den anderen Vorschlägen werden Jahre ab 30 als 1930 ausgegeben, da Excel hier das Jahrhundert automatisch wechselt. Also ggf. aufpassen, welche Lösung du verwendest.
Gruß
Franz
Sub Datum_Spalte_P_nur_20xx()
Dim Bereich As Range, Zelle As Range
'2-stellige Jahreswerte in Bereich P2:Pxxx auf 20xx umstellen
With ActiveSheet
Set Bereich = .Range(.Cells(2, 16), .Cells(.Rows.Count, 16).End(xlUp))
End With
For Each Zelle In Bereich
With Zelle
If IsDate(Zelle.Text) Then
.Value = DateSerial(Year:=Val(Right(.Text, 2)) + 2000, _
Month:=Month(CDate(.Text)), _
Day:=Day(CDate(.Text)))
End If
End With
Next
End Sub

Anzeige
Super Danke!
18.02.2011 12:26:48
Julia
Super

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige