Afdrukken sheets

Status
Niet open voor verdere reacties.

monty1a

Gebruiker
Lid geworden
29 dec 2006
Berichten
202
Hallo,

Ik heb een bestand met pakweg 30 tabbladen.

Ik wil met een knop een x aantal sheets (bijv. PAR1, PAR2, PAR3_NV, PAR3_UV, PAR6) afdrukken, dit zijn niet alle tabbladen van het bestand.
Dmv een formule worden "soms" 1 of meerdere sheets verborgen. Deze dienen dan niet te worden afgedrukt.

Kunnen jullie me daar mee helpen?
 
ja! maar plaats het bestand...................
 
als het alleen om de niet verborgen tabbladen gaat kan je deze gebruiken:

Code:
Sub SjonR()
Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If sh.Visible Then sh.PrintOut
    Next
End Sub
 
Alleen is het probleem dat het om bepaalde sheets gaat.
Ik wil best elke sheetnaam (eenmalig) invoeren. Want andere tabbladen hebben soms niets met de print te maken.

De sheets waar het daadwerkelijk om gaat zijn
array("KW_VOORBLAD","KW_VERKLARING", "KW_INHOUD", "KW_PAR_1", "KW_PAR_2", "KW_ORGANOGR (NL)", "KW_PAR_3", "KW_PAR_3A_NV", "KW_PAR_3A_UV", "KW_PAR_4", "KW_KEURING_NV", "KW_KEURING1_NV", "KW_KEURING_UV", "KW_KEURING1_UV", "KW_PAR_5_NV", "KW_PAR_5_UV", "KW_PAR_6", "KW_PAR_7")

Thanx
 

Bijlagen

  • Voorbeeld1.xlsx
    18,7 KB · Weergaven: 59
Laatst bewerkt:
maar dan heb je de code al bijna geschreven:

Code:
Sheets(Array("KW_VOORBLAD", "KW_VERKLARING", "KW_INHOUD", "KW_PAR_1", "KW_PAR_2", "KW_ORGANOGR (NL)", "KW_PAR_3", "KW_PAR_3A_NV", "KW_PAR_3A_UV", "KW_PAR_4", "KW_KEURING_NV", _
"KW_KEURING1_NV", "KW_KEURING_UV", "KW_KEURING1_UV", "KW_PAR_5_NV", "KW_PAR_5_UV", "KW_PAR_6", "KW_PAR_7")).PrintOut
 
Nee, nu print het alle bladen die in de array worden genoemd. Dit wil je toch allemaal wél afdrukken?
 
Alleen soms zijn er enkele verborgen.... en die moeten dan niet worden afgedrukt.

Het zou dus een combinatie worden van bericht #4 en #6, maar ik weet niet of dit mogelijk is.
 
Laatst bewerkt:
Zoiets misschien?
Code:
Sub printen()
    Dim Sh As Worksheet
    Dim Arr() As String
    Dim N As Integer
    N = 0
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Visible = xlSheetVisible And Sh.Range("[COLOR="#FF0000"]A1[/COLOR]").Value = "[COLOR="#FF0000"]P[/COLOR]" Then
            N = N + 1
            ReDim Preserve Arr(1 To N)
            Arr(N) = Sh.Name
        End If
    Next
    With ActiveWorkbook
        .Worksheets(Arr).PrintOut
    End With
End Sub
In deze code worden de bladen die zichtbaar zijn en in cel A1 een P bevatten afgedrukt.
Plaats in uw bladen waar het daadwerkelijk om gaat (eenmalig) ergens in een cel naar keuze (voor alle bladen dezelfde cel en dezelfde waarde) een P of een andere waarde. Maak eventueel de letterkleur hetzelfde als de celkleur zodat je de P (of de andere waarde) niet ziet.
 
Code:
Sub VenA()
  For Each sh In Sheets(Array("KW_VOORBLAD", "KW_VERKLARING", "KW_INHOUD", "KW_PAR_1", "KW_PAR_2", "KW_ORGANOGR (NL)", "KW_PAR_3", "KW_PAR_3A_NV", "KW_PAR_3A_UV", "KW_PAR_4", "KW_KEURING_NV", _
    "KW_KEURING1_NV", "KW_KEURING_UV", "KW_KEURING1_UV", "KW_PAR_5_NV", "KW_PAR_5_UV", "KW_PAR_6", "KW_PAR_7"))
    If sh.Visible Then sh.PrintPreview 'wijzig .PrintPreview in .Printout voor het echt afdrukken
  Next sh
End Sub

Of
Code:
Sub VenA()
  For Each sh In Sheets(Array("KW_VOORBLAD", "KW_VERKLARING", "KW_INHOUD", "KW_PAR_1", "KW_PAR_2", "KW_ORGANOGR (NL)", "KW_PAR_3", "KW_PAR_3A_NV", "KW_PAR_3A_UV", "KW_PAR_4", "KW_KEURING_NV", _
    "KW_KEURING1_NV", "KW_KEURING_UV", "KW_KEURING1_UV", "KW_PAR_5_NV", "KW_PAR_5_UV", "KW_PAR_6", "KW_PAR_7"))
    If sh.Visible Then c00 = c00 & "|" & sh.Name
  Next sh
  If Len(c00) > 0 Then Sheets(Split(Mid(c00, 2), "|")).PrintPreview 'wijzig .PrintPreview in .Printout voor het echt afdrukken
End Sub
 
Laatst bewerkt:
Super,

Ik heb het werkend.
Het is gelukt met de code van gast0660

VenA bij jou kreeg ik een printpreview en dat wilde ik niet.
Maar toch bedankt

Bedankt allemaal voor het meedenken
 
Dat is om te testen natuurlijk; geen papier en inkt verspilling.

Zo simpel is het.
Code:
If sh.Visible Then [COLOR=#ff0000]sh.Printout[/COLOR]
 
Het zou verboden moeten worden om .Printout te gebruiken in voorbeelden en zeker door de wat meer ervaren helpers. Even een helptekst erachter met bv 'wijzig .PrintPreview in .Printout voor het echt afdrukken' lijkt mij dan beter.
 
Thanx... tis me duidelijk !
Had achteraf het laatste regeltje helemaal over het hoofd gezien!

Nogmaals Thanx
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan