AW: Datenliste nach Kriterien auf Tabellenblätter aufteilen
20.07.2024 20:17:55
JoWE
Hallo Michael,
vielleicht so::
Zuerst machst Du auf jeden Fall eine Sicherheitskopie Deiner Arbeitsmappe
Die folgenden drei Makros kopierst Du in die VBA-Umgebung deiner Arbeitsmappe in ein Modul,
dann startest Du das Makro 1 welches nacheinander Makro 2 und Makro 3 aufruft und auch die PDF-Dateien erzeugen sollte.
!!!! Achte aber darauf die Pfadangabe im Makro 2 anzupassen !!!!
UND: Wenn Du viele unterschiedliche Familien- und Vornamen hast, kann das dauern!!!
Option Explicit
'Makro 1
Sub eindeutigFiltern()
Dim ze As Long
For ze = 2 To Cells(2, 2).End(xlDown).Row
Cells(ze, 10) = Cells(ze, 2)
Cells(ze, 11) = Cells(ze, 3)
Next
Columns("J:K").Select
ActiveSheet.Range("$J$1:$K$746").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
Call Doit
End Sub
'Makro 2
Sub Doit()
Dim ze As Long
Dim sbFN As String
Dim sbVN As String
For ze = 2 To 6
sbFN = Cells(ze, 10)
sbVN = Cells(ze, 11)
Call filtern_in_neue_Tabelle(sbFN, sbVN)
Next
End Sub
'Makro 3
Sub filtern_in_neue_Tabelle(FN, VN)
Dim myWb As Workbook
Dim myTBMain As Worksheet
Set myWb = ThisWorkbook
Set myTBMain = myWb.Sheets(1)
With myTBMain
.Range("$A:$G").AutoFilter Field:=2, Criteria1:=FN
.Range("$A:$G").AutoFilter Field:=3, Criteria1:=VN
.UsedRange.Range("A:G").Copy
End With
myWb.Sheets.Add After:=Sheets(Sheets.Count)
With ActiveSheet
.Name = FN & "_" & VN
.Paste
.[A1].Select
Application.CutCopyMode = False
End With
'Achtung PfadName anpassen!!!!
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\TEMP\" & ActiveSheet.Name _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
myTBMain.Select
With myTBMain
.Range("A1").Select
.AutoFilterMode = False
End With
End Sub
Gruß
Jochen