Attribute VB_Name = "Module1"
Sub CreateSheetsAndExportPDFs()
Dim ws As Worksheet, dataWs As Worksheet
Dim filterRange As Range, cell As Range
Dim uniqueValues As New Collection
Dim folderPath As String, filterValue As Variant
' --- CONFIGURATIE ---
Set dataWs = ThisWorkbook.Sheets("Hoofdblad") ' Naam van je brondata blad
' De kolom waarop je filtert (bijv. kolom A vanaf rij 2)
Set filterRange = dataWs.Range("B2:B" & dataWs.Cells(dataWs.Rows.Count, "A").End(xlUp).Row)
folderPath = ThisWorkbook.Path & "\PDF_Exports\"
' --------------------
' Maak exportmap aan als deze nog niet bestaat
If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath
' Verzamel unieke waarden uit de filterkolom
On Error Resume Next
For Each cell In filterRange
If cell.Value <> "" Then uniqueValues.Add cell.Value, CStr(cell.Value)
Next cell
On Error GoTo 0
' Loop door elke unieke waarde
For Each filterValue In uniqueValues
' 1. Maak een nieuw blad aan
Set ws = Sheets.Add(After:=Sheets(Sheets.Count))
ws.Name = Left(CStr(filterValue), 31) ' Bladnaam max 31 tekens
' 2. Filter data en kopieer zichtbare cellen naar nieuw blad
dataWs.UsedRange.AutoFilter Field:=2, Criteria1:=filterValue
dataWs.UsedRange.SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("A1")
dataWs.AutoFilterMode = False
Sub SheetsAanpassen()
'
' SheetsAanpassen Macro
'
'
Sheets(Array("Blad1", "Blad2", "Blad3")).Select
Sheets("Blad1").Activate
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.15748031496063)
.BottomMargin = Application.InchesToPoints(0.15748031496063)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 90
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.15748031496063)
.BottomMargin = Application.InchesToPoints(0.15748031496063)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 90
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
ActiveWindow.Zoom = 100
Columns("A:A").Select
Selection.ColumnWidth = 5.71
Columns("B:B").Select
Selection.ColumnWidth = 6.57
Columns("C:C").Select
Selection.ColumnWidth = 14
Columns("D:D").Select
Selection.ColumnWidth = 0.5
Columns("E:E").Select
Selection.ColumnWidth = 10.29
Columns("F:F").Select
Selection.ColumnWidth = 11
Columns("G:G").Select
Selection.ColumnWidth = 10
Columns("H:H").Select
Selection.ColumnWidth = 10
Columns("I:I").Select
Selection.ColumnWidth = 10.14
Columns("J:J").Select
Selection.ColumnWidth = 9.14
Columns("K:K").Select
Selection.ColumnWidth = 8
Columns("L:L").Select
Selection.ColumnWidth = 9
Sheets("Blad1").Select
End Sub
' 3. Exporteer het nieuwe blad naar PDF
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=folderPath & ws.Name & ".pdf", _
Quality:=xlQualityStandard
' Optioneel: Verwijder het aangemaakte blad na export om je bestand schoon te houden
' Application.DisplayAlerts = False
' ws.Delete
' Application.DisplayAlerts = True
Next filterValue
MsgBox "Klaar! De PDF's zijn opgeslagen in: " & folderPath
End Sub