[excel] Macro-knop om werkbladen te printen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
Ik zoek de code die ik kan gebruiken om middels een macro (hoe ik daarvoor een knop maak heb ik inmiddels uitgevonden) automatisch de tabbladen (3-30) kan uitprinten.

Ik heb al een macro kunnen maken om deze tabbladen automatisch een naam te geven. Maar ik kan niet vinden welke code ik moet gebruiken om deze tabbladen uit te printen.

Iemand?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Rensjuh
  • Registratie: Juli 2007
  • Laatst online: 21:43
Wat heb je zelf gevonden?
Ik tik het volgende in op Google "excel macro print" en er komen al heel wat resultaten uit rollen om met VBA een of meerdere sheet(s) te printen...

PV Output


Acties:
  • 0 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
Bedankt voor deze ‘simpele’ tip.

Inmiddels verder gekomen, heb een knop met deze code:

code:
1
2
3
4
5
6
7
Sub print()
Application.ScreenUpdating = False
    Blad2.[A1:H54].PrintOut , , 1
 
    Application.ScreenUpdating = True
    Blad1.[A1].select
End Sub


Nu wordt automatisch blad 2 uitgeprint. Hoe pas ik deze code aan, zodat blad 3-30 wordt geprint en daarnaast de print ook in een ‘staande’ stand wordt geprint? Het blad komt er namelijk nu in landscape stand uit. Is daar ook een code voor te gebruiken?

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 23:35

Reinier

\o/

Met een for each door Workbook.Sheets loopen en elke sheet met .PageSetup.Orientation = xlPortrait in protrait zetten en dan printen met PrintOut.

https://docs.microsoft.co...api/excel.workbook.sheets
https://docs.microsoft.co...api/excel.sheets.printout
https://docs.microsoft.co...e/vba/api/excel.pagesetup
https://docs.microsoft.co...cel.pagesetup.orientation

Dat was 2 minuten Google.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Blad: de code maakt dat toch al overduidelijk? Je print daar expliciet blad2 uit en dat kan je aanpassen in de coede. Ook is de documentatie vrij helder, https://docs.microsoft.co...api/excel.sheets.printout in dit geval.

zoeken bij google naar 'excel vba print vertical' helpt vervolgens voor de rest, die wijst je naar de PageSetup.Orientation property.

Mocht dergelijke documentatie onduidelijk zijn voor je, ga dan eerst de basics van Excel-VBA tot je nemen voor je 'echt gaat bouwen'.
Goofyduck384 schreef op woensdag 16 oktober 2019 @ 12:38:
Bedankt voor deze ‘simpele’ tip.
Mogelijk was @Rensjuh's reply wat kortaf maar heeft hier dus wel de goede kant op gewezen. Er wordt bij aanmaken van je topic niet voor niets gevraagd naar aangeven van de eigen pogingen. Jammer dat je dat hebt weggeknipt. Dergelijke zoekacties wil (moet) je echt vooraf zelf doen..
offtopic:
Die laatste .select is IMHO heul faudt in VBA-code om iets te printen, dan is de geselecteerde cel aanpassen onverwacht en dus ongewenst. Maar misschien heb je er goede redenen voor.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
Helder. Dank. Ik ga er mee aan het werk 👍

Acties:
  • 0 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
*knip*. Het werkte toch wel, dus onjuiste reactie.

[ Voor 92% gewijzigd door Goofyduck384 op 04-11-2019 14:18 ]


Acties:
  • 0 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
nu wel weer een vraag.

Ik gebruik nu deze code:
code:
1
2
3
4
5
6
7
8
9
Sub ExportAsPDF()

     ThisWorkbook.Sheets(Array(18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)).Select

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "\\………….\Home_Personeel$\……...\Desktop\leerlingen.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub


Hiermee kan ik de tabbladen 18-47 opslaan in 1 pdf document, dat wordt opgeslagen op het bureaublad van de pc waar ik dan op werk. De puntjes heb ik nu even zelf neergezet om wat privacyinfo weg te halen ;)

Maar ik wil niet dat het document wordt opgeslagen op het bureaublad, ik wil graag dat er een standaard venstertje wordt geopend waar ik zelf de opslagplek kan aangeven. Alleen kom ik daar niet uit.

Iemand een idee?

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Dat kan met de functie https://docs.microsoft.co...ication.getsaveasfilename

Dan vraag je daarmee de locatie en filename mee op. De MsgBox van de voorbeeldcode natuurlijk aanpassen naar je ExportAsFixedFormat etc. :P En test ook cf. voorbeeld eerst of er inderdaad een filename was genoemd en niet op annuleren was gedrukt.

(Bron: zoeken bij google naar 'excel vba saveas dialog' aangezien zo'n ding een dialog box / screen heet).

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
F_J_K schreef op woensdag 6 november 2019 @ 13:58:
Dat kan met de functie https://docs.microsoft.co...ication.getsaveasfilename

Dan vraag je daarmee de locatie en filename mee op. De MsgBox van de voorbeeldcode natuurlijk aanpassen naar je ExportAsFixedFormat etc. :P En test ook cf. voorbeeld eerst of er inderdaad een filename was genoemd en niet op annuleren was gedrukt.

(Bron: zoeken bij google naar 'excel vba saveas dialog' aangezien zo'n ding een dialog box / screen heet).
Oké, dank je voor de richting. Maar zou je me ook kunnen aangeven hoe deze code er dan uit komt te zien als je mijn eigen code gebruikt? Die heb ik namelijk na veel leeswerk en lang zoekterm uiteindelijk kunnen maken en gebruiken. Heb alleen dit laatste stukje nog nodig en dan ben ik klaar :)
Ben er nu bijna een maand mee bezig, wil hem nu graag afronden.

[ Voor 3% gewijzigd door Goofyduck384 op 06-11-2019 18:59 ]


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

De code in het voorbeeld met ipv de msgbox regel jouw code. En de filename tussen quotes vervangen door de variabele fileSaveName

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • +1 Henk 'm!

  • Goofyduck384
  • Registratie: Oktober 2000
  • Laatst online: 09-10 20:25
Tis me gelukt met deze code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub ExportAsPDF()

     ThisWorkbook.Sheets(Array(3, 4)).Select
     
     Dim fileSaveName As Variant
     
     fileSaveName = Application.GetSaveAsFilename( _
        FileFilter:="PDF Files (*.pdf), *.pdf")
    
    If fileSaveName <> False Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
            fileSaveName, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=True
    End If

End Sub
Pagina: 1