per Makrorecorder habe ich mir in einer Datei ein funktionierendes Makro eingerichtet, das mir Dateien öffnet, Filter setzt, ausdruckt und die Datei wieder schliesst.
Hintergrund: Für mehrere Gebiete sollen monatlich Daten aus verschiedenen Dateien ausgewertet werden und per pdf-Drucker in eine pdf-Datei pro Gebiet zusammengefügt werden.
Es handelt sich um ca. 10 Exceldateien, die laufend aktualisert werden.
Um nicht im Makro ständig die Daten des Gebiets und Monats auszutauschen würde ich gerne in der Datei festlegen welchen Monat und welches Gebiet ich auswerten möchte.
Die Daten sollen z. B. in Zelle B1 (Gebiet) und B2 (Monat) eingetragen werden und dann das Makro entsprechend für die eingetragenen Daten erzeugt werden (= die Filter in den Excel-Dateien entsprechend gesetzt werden).
Aktuell hat mir der Recorder die Daten so eingetragen:
Beispiel 1:
ActiveSheet.Range("$B$9:$S$54").AutoFilter Field:=2, Criteria1:= _
"Gebiet 1"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWorkbook.Close savechanges:=False
Beispiel 2:
ActiveWorkbook.SlicerCaches("Datenschnitt_Monat").ClearManualFilter
With ActiveWorkbook.SlicerCaches("Datenschnitt_Monat")
.SlicerItems("9").Selected = True
.SlicerItems("1").Selected = False
.SlicerItems("2").Selected = False
.SlicerItems("3").Selected = False
.SlicerItems("4").Selected = False
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
.SlicerItems("7").Selected = False
.SlicerItems("8").Selected = False
.SlicerItems("(Leer)").Selected = False
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Diese Beispiele tauchen im Makro mehrfach auf (pro Datei) und ich müsste aktuell sehr viel manuell machen.
Wie muss ich die beiden Makros umschreiben um in Abhängigkeit der Zellen B1 und B2 die richtigen Filter zu setzen.
In A1 steht "Gebiet" in B1 eine Zahl von 1 - 15 in A2 "Monat" und in B2 eine Zahl von 1 - 12.
Danke für Eure Hilfe!
Robert