• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Tabbladen verborgen houden

Status
Niet open voor verdere reacties.

abbcdcg

Gebruiker
Lid geworden
12 mrt 2012
Berichten
61
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.!



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
 
Stapsgewijs met <F8> door de code lopen dan zie je vanzelf wat er gebeurt. En hoe je het kan oplossen.
 
schrijf ipv
Code:
If ActiveWorkbook.Worksheets(i).Name = "Rapport" Then
 ActiveWorkbook.Worksheets(i).Visible = False
Else
End If

Code:
for each it in sheets
  it.visible = it.name<>"Rapport"
Next
 
Laatst bewerkt:
Stapsgewijs met <F8> door de code lopen dan zie je vanzelf wat er gebeurt. En hoe je het kan oplossen.

Stom antwoord dacht ik, vreemd genoeg was dit wel de oplossing :thumb:.
De oplossing zat er gewoon in maar zat ik met een verkeerd beeld te beredeneren :D

Thanks !
 
Zelfs stomme antwoorden bestaan blijkbaar niet.:d
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan