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

Tabblad printen als PDF, maar iedere pagina als apart bestand

Status
Niet open voor verdere reacties.

richard1970

Terugkerende gebruiker
Lid geworden
12 mei 2005
Berichten
2.663
Hoi,

Op het werk heeft een collega de wens om via een macro zijn tabblad te printen in PDF-formaat. Via de zoekmachine hier ben ik gekomen tot:
Code:
Application.ActivePrinter = "CutePDF Writer op CPW2:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= "CutePDF Writer op CPW2:", Collate:=True
Maar nu wordt het tabblad als één document afgedrukt.
Is het mogelijk om iedere afzonderlijke pagina binnen het tabblad te printen als PDF? Een tabblad bestaat soms uit 60 pagina's. Deze staan naast en onder elkaar en overal wordt gewerkt met pagina-eindes.
We werken hier met Excel2003, maar als de oplossing in Excel 2007 eenvoudiger is zorgen we ervoor dat hij de beschikking krijgt tot Excel 2007.

Aanvulling. Ik heb even pagina 1 en 6 apart geprint en opgeslagen, en de macrorecorder maakt er dit van:
Code:
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
ActiveWindow.SelectedSheets.PrintOut From:=6, To:=6, Copies:=1, Collate:=True
Groeten,
Richard
 
Laatst bewerkt:
Ik zou denken aan het geven van een naam aan elke pagina apart.
Want ik zie niet waar excel anders de info moet halen om dit te zien als een apart sheet.

Als alles op één tabblad staat zal je toch zo iets moeten verzinnen.

Succes, Cobbe
 
Hoi Cobbe,

Bedankt voor het meedenken, maar dit had ik ook al bedacht :-) Ik ben geen VBA deskundigen en heb mijn hoop gevestigd op de collegae alhier die dat wel zijn.
Omdat we met Excel pagina-einde werken hoop ik dat dat als variabele mee te nemen is in VBA.

Richard
 
Richard, test eens met onderstaande.
Draai echter eerst eens tsthpc om te kijken welk getal je terugkrijgt, of kijk bij Bestand >> Paginainstelling >> Blad hoe dit ingesteld is. Voor de goede werking zou dit Omlaag, dan Opzij moeten zijn. Anders moet er een aanpassing gebeuren aan de macro.
Code:
Sub tsthpc()
    MsgBox ActiveSheet.HPageBreaks.Count + 1
End Sub

Sub tst()
Dim HPC As Integer
HPC = 2 'Als testcase, anders wordt alles misschien afgeprint
'HPC = ActiveSheet.HPageBreaks.Count + 1
Application.ActivePrinter = "CutePDF Writer op CPW2:"
For i = 1 To HPC
    ActiveWindow.SelectedSheets.PrintOut From:=i, to:=i, Copies:=1, ActivePrinter:="CutePDF Writer op CPW2:", Collate:=True
Next
End Sub
 
Beste Rudi,

Dit ziet er al heel mooi uit! Omdat er horizontale pagebreaks èn vertikale pagebreaks zijn, heb ik de eerste test aangepast en in mijn testbestand komt er 6 uit en dat klopt.
Jouw macro is nu:
Code:
Sub tst()
Dim HPC As Integer
HPC = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
Application.ActivePrinter = "CutePDF Writer op CPW2:"
For i = 1 To HPC
    ActiveWindow.SelectedSheets.PrintOut From:=i, to:=i, Copies:=1, ActivePrinter:="CutePDF Writer op CPW2:", Collate:=True
Next
End Sub

Nu krijg ik 6 keer een dialoogvenster dat mij vraagt om een bestandsnaam en de locatie is dezelfde als waar het excelbestand in staat.
Is de bestandsnaam vooraf te bepalen inclusief de HPC als variabele zodat het bestand automatisch opgeslagen kan worden? Want om nu 60 of meer keer een bestandsnaam in te moeten tikken, dat kan ik mijn collega niet aandoen.

Ik zal mijn colega vagen of bestaande bestanden mogen worden overschreven. Anders moet misschien ook de datum als variabele mee in de bestandsnaam.

Groeten,
Richard
 
Laatst bewerkt:
Dom, dom, dom. Ik heb tekst toegevoegd aan een oude topic in plaats van en nieuwe te starten. Vandaar dat dit leeg is.

Groeten,

Richard
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan