• 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.

Uit geselekteerde tabbladen delen printen

Status
Niet open voor verdere reacties.

peter7777

Gebruiker
Lid geworden
14 jan 2019
Berichten
9
Hallo allemaal,

Ik ben geheel nieuw hier en ben hier terecht gekomen omdat ik via dit forum al veel heb geleerd.

Maar ik ben voor het printen van mijn calculaties opzoek naar een functie die ik niet zo kan vinden op internet.

het gaat om het volgende:


Ik wil graag de benodigde tabbladen kunnen selecteren welke ik wil printen (menu op tabblad gegevens).
Waarbij ik dan een print scherm zie om de printer te selecteren.

Welke inhoud wil ik printen (tabblad 1 is volledig voorbeeld):

Als je op de knop printen calculatie klikt dan wil ik het overgebleven groene vlak printen. De lengte van dit vlak kan variëren (ia afhankelijk van de lengte van de calculatie).
Daarachter wil ik dan het blauw gemaakte deel printen en een vervolg pagina. Dit is altijd het zelfde vlak.

Dit wil ik dan van de geselecteerde tabbladen achter elkaar hebben.

In heb een uitgekleed bestandje toegevoegd ter verduidelijking.

Alvast super bedankt voor de reacties.
 

Bijlagen

  • Helpmij.xlsm
    104,8 KB · Weergaven: 27
Code:
Sub printen()
    For Each sh In Array("1", "2", "3")
        With Sheets(sh)
            .Columns("L:M").Hidden = True                            'die 2 kolommen verbergen
            irij = WorksheetFunction.Max(.Range("I" & Rows.Count).End(xlUp).Row, .Range("N" & Rows.Count).End(xlUp).Row, 10)    'zoek de laatste rij
            .Range("A1:Q" & irij).PrintPreview                       'vervang printpreview door printout
            .Columns("L:M").Hidden = False
        End With
    Next

End Sub
 
Dag cow18,

zojuist even getest. het werkt deels zoals ik het zou willen.

ik mis namelijk de keuze welke tabbladen ik wil printen en het groene deel wil ik op 1 pagina en het blauwe op een vervolg pagina.

is dat ook mogelijk?
 
Blijkbaar had ik je uitleg verkeerd begrepen.
Dit is een mogelijkheid.
 

Bijlagen

  • Helpmij (1).xlsm
    118 KB · Weergaven: 30
Of

Code:
Sub M_snb()
    sn = Blad2.Range("A1").CurrentRegion
    
    For j = 2 To UBound(sn)
        If sn(j, 2) = 1 Then
            If Evaluate("isref(" & sn(j, 1) & "!A1)") Then
                With Sheets(Format(sn(j, 1))).Cells(1)
                    .Resize(40, 10).PrintPreview
                    .Offset(, 13).Resize(40, 4).PrintPreview
                End With
            End If
        End If
    Next
End Sub
 
Blijkbaar had ik je uitleg verkeerd begrepen.
Dit is een mogelijkheid.

Dag cow18,

dit werkt (bijna) perfect!
alleen als ik nu op printen calculatie klik dan is er en kans dat er niet ingevulde rijen wegvallen waardoor er in het blauwe tekstvlak delen wegvallen.
is dit ook op te lossen?
ik ben er mee aan het stoeien geweest, alleen krijg ik het niet voor elkaar :-(
 
Dag SNB,

deze versie heb ik nog niet geprobeerd. de versie van cow heb ik nu werkend (op een kleinigheid na)
 
Laatst bewerkt door een moderator:
Code:
Sub printen()
    sn = Sheets("Gegevens").Range("A1").CurrentRegion
    For i = 2 To UBound(sn)
        If sn(i, 2) = 1 Then                                         ' 1=afprinten
            If Evaluate("isref(" & sn(i, 1) & "!A1)") Then
                With Sheets(CStr(sn(i, 1)))                          'kijk of die naam in de 1e kolom overeenkomt met een werkblad
                    If .AutoFilterMode Then .AutoFilterMode = False  'eventuele filter uitzetten
                    With .Range("$A$4:$A$36")
                        s = ""                                       'verzamelstring leegmaken
                        For Each c In .Cells
                            If c.Value <> 0 And c.Value <> "*" Then s = s & "|" & IIf(Len(c.Value), c.Value, "=")    'celwaarde eventueel toevoegen aan verzamelstring
                        Next
                        .AutoFilter 1, Split(s, "|"), xlFilterValues    'op resterende waarden filteren
                    End With
                    .Range("A1:J" & .Range("I" & Rows.Count).End(xlUp).Row).PrintPreview    'vervang printpreview door printout
                    .AutoFilterMode = False
                    .Range("N1:Q" & .Range("N" & Rows.Count).End(xlUp).Row).PrintPreview    'vervang printpreview door printout
                End With
            End If
        End If
    Next
End Sub
 
@Peter

Wil je svp stoppen met quoten ?
Gebruik de knop
Reageer.PNG
 
Laatst bewerkt:
Dag cow18,

Zo te zien werkt het nu perfect!!! ik ga het nog even verder testen en aanvullen/uitwerken.

Super bedankt!!!!!
 
Toch nog een aanvullende vraag.

Is het ook mogelijk om alles in 1 PDF document te printen?
 
ik heb het nog nooit gedaan, maar je zal de verschillende pdfs nadien via een macrootje kunnen bundelen (merge) tot 1 pdf.
Wat heb je ter beschikking van Acrobat ?
 
Ik heb alleen Foxit reader tot mijn beschikking.
Als het alleen met Arcobat kan moet ik lokaal dit gaan doen ipv op de server.
 
is het een idee om bv PdfCreator te installeren als printer?
Dan gaat de hele afdruk in één keer naar een PDF
 
Dag cow18, de link werkt niet helemaal

en Haije, een PDF creator heb ik als pdf printer (van Foxit) maar dan heb ik een heleboel losse pdf-jes die ik eigenlijk als 1 document wil hebben.
 
Als je alle af te drukken gebieden in 1 werkblad zet kun je het daarna toch als 1 PDF-bestand opslaan ?
 
Vooruit dan maar:

Code:
Sub M_snb()
    Blad2.UsedRange.Offset(6).Clear
    sn = Blad2.Range("A1").CurrentRegion
    
    For j = 2 To UBound(sn)
        If sn(j, 2) = 1 Then
            If Evaluate("isref(" & sn(j, 1) & "!A1)") Then
                With Sheets(Format(sn(j, 1))).Cells(1)
                    .Resize(40, 10).Copy
                    Blad2.Cells(Rows.Count, 1).End(xlUp).Offset(2).Select
                    Blad2.Paste Link:=True
                    .Offset(, 13).Resize(40, 4).Copy
                    Blad2.Cells(Rows.Count, 1).End(xlUp).Offset(2).Select
                    Blad2.Paste Link:=True
                End With
            End If
        End If
    Next
    
    Blad2.UsedRange.Offset(6).ExportAsFixedFormat 0, "G:\OF\afdrukvoorbeeld.pdf"
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan