Een bestand met meerdere tabbladen, +/- 20 stuks.
Het bestand wordt telkens eenmalig gebruikt, waarbij iedere keer opnieuw wordt bepaald welke tabbladen benodigd zijn. Het kiezen van de tabbladen wordt gedaan met de eerste code, deze staat in het eerste tabblad.
Vanuit deze keuze wordt dus ook bepaald of het tabblad moet worden afgedrukt. Het het bepalen of een tabblad moet worden afgedrukt wordt bepaald middels een waarde in een cel op ieder tabblad, waarna in de macro wordt bepaald of het wordt afgedrukt.
Tot zo ver gaat alles goed.
Wanneer het bestand is afgedrukt (PFD) worden echter alle tabbladen weer zichtbaar gemaakt. Ik zou graag enkel de tabbladen open houden die bij aanvang zijn geselcteerd. Hoe kan ik dit oplossen???
Ik zou graag het bestand als voorbeeld laten zien, hier staat echter te veel (zakelijke) data in.
B.v.d.!
Het bestand wordt telkens eenmalig gebruikt, waarbij iedere keer opnieuw wordt bepaald welke tabbladen benodigd zijn. Het kiezen van de tabbladen wordt gedaan met de eerste code, deze staat in het eerste tabblad.
Vanuit deze keuze wordt dus ook bepaald of het tabblad moet worden afgedrukt. Het het bepalen of een tabblad moet worden afgedrukt wordt bepaald middels een waarde in een cel op ieder tabblad, waarna in de macro wordt bepaald of het wordt afgedrukt.
Tot zo ver gaat alles goed.
Wanneer het bestand is afgedrukt (PFD) worden echter alle tabbladen weer zichtbaar gemaakt. Ik zou graag enkel de tabbladen open houden die bij aanvang zijn geselcteerd. Hoe kan ik dit oplossen???
Ik zou graag het bestand als voorbeeld laten zien, hier staat echter te veel (zakelijke) data in.
B.v.d.!
Code:
Private Sub CommandButton1_Click()
Dim cl As Range
Application.ScreenUpdating = False
For Each cl In Range("D3:D19,AF3:AF19")
If cl > 0 Then Sheets(CStr(cl.Value)).Visible = UCase(cl.Offset(, 1)) = "O"
Next cl
End Sub
Code:
Sub Afdrukken()
Dim WS_Count As Integer
Dim i As Integer
Dim sFile As String
Dim j As Integer
Dim PrintArray() As Variant
Dim FilenamePDF As String
Dim dirname As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'filename
If Sheets("Database").Range("B3") = "1" Then
FilenamePDF = Sheets("Basis").Range("E17").Value
Else
End If
If Sheets("Database").Range("B3") = "2" Then
FilenamePDF = Sheets("Basis").Range("E18").Value
Else
End If
If Sheets("Database").Range("B3") = "3" Then
FilenamePDF = Sheets("Basis").Range("E18").Value
Else
End If
If Sheets("Database").Range("B3") = "4" Then
FilenamePDF = Sheets("Basis").Range("E19").Value
Else
End If
If FilenamePDF = "" Then
FilenamePDF = "Rapportnummer niet ingevuld"
Else
End If
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For i = 1 To WS_Count
Sheets(i).PageSetup.LeftHeader = "&""Open Sans,Cursief""&8Bestandsnummer: " & FilenamePDF
If ActiveWorkbook.Worksheets(i).Name = "Rapport" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Verkopers" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Data" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Aantallen" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Maanden" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Kladblok" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If ActiveWorkbook.Worksheets(i).Range("Z1") = "2" Then
ActiveWorkbook.Worksheets(i).Visible = False
Else
End If
If Sheets(i).Visible = True Then
ReDim Preserve PrintArray(j)
PrintArray(j) = i
j = j + 1
End If
Next i
'print opdracht
'Folder picker
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Select folder for saving PDF"
.Show
If .SelectedItems.Count > 0 Then
dirname = .SelectedItems(1)
Else
Exit Sub
End If
End With
'FilenamePDF = "Sander"
sFile = dirname & "\" & _
FilenamePDF & ".pdf"
Sheets(PrintArray).Select
'ActiveSheet.PageSetup.PrintArea = Range("Afdrukbereik")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sFile, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
'unhiden
For i = 1 To WS_Count
If ActiveWorkbook.Worksheets(i).Name = "Rapport" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Inhoud" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Verkopers" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Data" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Maanden" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
If ActiveWorkbook.Worksheets(i).Name = "Kladblok" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
If ActiveWorkbook.Worksheets(i).Range("Z1") = "2" Then
ActiveWorkbook.Worksheets(i).Visible = True
Else
End If
Next i
Sheets("Voorblad").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = False
End Sub