28.10.2019, 09:37
Hallo, nach längerer Abwesenheit habe ichmal wieder eine Frage: Ich importiere wöchentlich CSV-Dateien, um die Arbeitsauslastung unseres Teams zu optimieren. Diese kommen direkt aus den Outlook-Kalendern der Mitarbeitern, werden per Makro bereits in Tabellenspalten vorsortiert, und als Arbeitsblatt der Gesamttabelle angefügt. Soweit so gut. jetzt hätte mein Chef es gerne, dass die Daten dieser Tabellen vor übertragen auf die Übersichtstabelle (Hauptblatt) bereits nach Datum und Kategorie (zwei der Spalten der CSV) vorsortiert werden. Ich habe das mit dem Makro Recorder auch schon für eine einzelne Tabelle hinbekommen. Und zwar sieht das dann so aus:
Wie kriege ich das geändert, dass er das mit allen *.CSV-Arbeitsblättern automatisch macht? Die Spalten sind bei allen CSV gleich. Kann ich die Dateinamen einfach mit Platzhaltern versehen, so dass alle Blätter mit Endung CSV sortiert werden?
Danke schonmal im Voraus.
Code:
Sub Vorsortieren()
'
' Vorsortieren Makro
' Sortierung der CSV-Tabellen nach Datum und Kategorie
'
'
Range("A2:F200").Select
ActiveWorkbook.Worksheets("A.SXXXXXX_KW44.CSV").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("A.SXXXXXX_KW44.CSV").Sort.SortFields.Add Key:= _
Range("B2:B200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
ActiveWorkbook.Worksheets("A.SXXXXXX_KW44.CSV").Sort.SortFields.Add Key:= _
Range("E2:E200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("A.SXXXXXXX_KW44.CSV").Sort
.SetRange Range("A1:F200")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Danke schonmal im Voraus.