Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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

Aufgenommenes Makro ändert Datumsformat??

Aufgenommenes Makro ändert Datumsformat?
30.04.2015 12:57:23
Joerg
Hallo zusammen,
bin neu hier, dieses Forum hat mir schon so einige Fragen als Leser beantwortet.
Nun muss ich aber einen Beitrag erstellen!
Ich arbeite mit Excel 2007.
Ich habe einen Datensatz der so aussieht:
released 3969601 1672821 05-05-15 31-03-15 29-04-15 16:44
released 3969602 1673181 05-05-15 27-04-15 29-04-15 16:44
released 3969603 1673189 05-05-15 27-04-15 29-04-15 16:44
released 3969604 1673190 05-05-15 27-04-15 29-04-15 16:44
released 3969605 1673192 05-05-15 28-04-15 29-04-15 16:44
released 3969606 1673193 05-05-15 27-04-15 29-04-15 16:44
released 3969607 1673194 05-05-15 27-04-15 29-04-15 16:44
Fokus liegt dabei auf Spalte D bis F, also die, wo das Datum in DD-MM-YY steht.
Ich habe eine vorformatierte Excel-File, in die ich diese Daten einfüge (paste) oder als Reintext einfüge (paste special) und dann über "Text in Spalten" entsprechend splitte.
Nun zum Problem: Wenn ich ein Makro aufnehme und es dann starte, kreiert mir das Makro in den Datumsspalten unterschiedliche Layouts.
Ist der TAG einstellig (z.B. 5.4.2015) dann 5.5.2015 (OK), ist der TAG zweistellig (z.B. 27.4.2015) dann 27-04-15 (nicht OK).
Das führt dazu, dass meine nachgelagerten Formeln nicht mehr funktionieren.
hier das Makro:
' Keyboard Shortcut: Ctrl+o
'
ActiveSheet.Paste
Selection.TextToColumns Destination:=Range("A3"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(8, 1), Array(16, 1), Array(24, 1), Array(33, 1), _
Array(42, 1), Array(51, 1), Array(57, 1), Array(88, 1), Array(90, 1), Array(96, 1), Array( _
106, 1), Array(114, 1), Array(124, 1), Array(129, 1), Array(135, 1)), _
TrailingMinusNumbers:=True
ActiveSheet.Range("$A$2:$T$110").AutoFilter Field:=1, Criteria1:="--------"
Rows("57:119").Select
Selection.Delete Shift:=xlUp
ActiveSheet.Range("$A$2:$T$104").AutoFilter Field:=1
ActiveWindow.SmallScroll Down:=-21
Range("Q3").Select
Selection.AutoFill Destination:=Range("Q3:Q104")
Range("Q3:Q104").Select
ActiveWorkbook.Worksheets("08").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("08").AutoFilter.Sort.SortFields.Add Key:=Range( _
"E2:E104"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("08").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("08").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("08").AutoFilter.Sort.SortFields.Add Key:=Range( _
"Q2:Q104"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("08").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Danke für Tips im voraus
Joerg

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufgenommenes Makro ändert Datumsformat?
30.04.2015 13:11:15
Daniel
Hi
gib in der FieldInfo für die Datumspalten an, dass das Datum im Format TMJ (Tag-Monat-Jahr) vorliegt:
Array(x, 4) bzw Array(x, xlDMYFormat)

dann wird es die Spalte in ein Excelkonformes Datum konvertieren, welches du per Zahlenformat in jede beliebige Darstellungsform bringen kannst.
mit der Vorgabe 1 (Allgemein) wird VBA versuchen, die Texte nach dem englischen Schema (Monat-Tag-Jahr) zu wandeln und wenn das nicht gelingt, bleibt der Wert als einfacher Text so wie er ist.
Wenn man hier mit dem Recorder arbeitet, muss man aufpassen.
Wenn du normal in Excel arbeitest, wendet Excel bei "Allgemein" das landestypische Format (hier das deutsche) an und der Recorder zeichnet dann auch "allgemein" auf.
Wenn du den Code dann jedoch in VBA ablaufen lässt, ist nicht Excel am Werk sondern VBA und das spricht immer englisch und wendet bei "Allgemein" dannn auch as englische Format an.
Daher ist es notwendig, den Code zu überarbeiten und die Formate nicht der Automatik zu überlassen, sondern fest vorzugeben.
Gruß Daniel

Anzeige
AW: Aufgenommenes Makro ändert Datumsformat?
30.04.2015 13:26:04
Joerg
ah, hab die erste Mail übersehen. Auch dir Daniel, danke für die Erklärung.
Und allen ein schönes 1. Mai-WE
Gruss
Joerg

AW: Aufgenommenes Makro ändert Datumsformat?
30.04.2015 13:16:30
Rudi
Hallo,
Selection.TextToColumns Destination:=Range("A3"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(8, 1), Array(16, 1), Array(24, 4), Array(33, 4), _
Array(42, 4), Array(51, 1), Array(57, 1), Array(88, 1), Array(90, 1), Array(96, 1), Array( _
106, 1), Array(114, 1), Array(124, 1), Array(129, 1), Array(135, 1)), _
TrailingMinusNumbers:=True
Gruß
Rudi

AW: Aufgenommenes Makro ändert Datumsformat?
30.04.2015 13:22:44
Joerg
Rudi, besten Dank, das funzt!
Kannst du mir auch noch sagen, was diese Änderung auf "4" im engeren Sinne bewirkt?

Anzeige
AW: Aufgenommenes Makro ändert Datumsformat?
30.04.2015 13:38:55
Rudi
Hallo,
hat Daniel doch geschrieben.
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige