Hallo,
Ik probeer om in excel het volgende voor elkaar te krijgen:
Ik wil bereik A1 tot O34 passend exporteren op bladzijde 1 van een pdf bestand.
Op bladzijde 2 wil ik bereik O1 tot AG54 inclusief de grafiek hebben op bladzijde 2 van een pdf bestand.
PDF bestand mag liggend, en de bereiken mogen passend (het liefst gecentreerd) afgedrukt worden.
Ik heb een VBA code aan knop 2 toegevoegd maar die laat alleen de grafiek afdrukken en neemt het bereik A1 tot O34
niet mee:
Wat doe ik hier fout?
Ik probeer om in excel het volgende voor elkaar te krijgen:
Ik wil bereik A1 tot O34 passend exporteren op bladzijde 1 van een pdf bestand.
Op bladzijde 2 wil ik bereik O1 tot AG54 inclusief de grafiek hebben op bladzijde 2 van een pdf bestand.
PDF bestand mag liggend, en de bereiken mogen passend (het liefst gecentreerd) afgedrukt worden.
Ik heb een VBA code aan knop 2 toegevoegd maar die laat alleen de grafiek afdrukken en neemt het bereik A1 tot O34
niet mee:
Code:
Sub Knop2_Klikken()
' Roep de exporteerfunctie aan
Call ExportToPDF
End Sub
Sub ExportToPDF()
Dim ws As Worksheet
Dim pdfPath As String
Dim tempSheet As Worksheet
' Vraag de gebruiker om een opslaglocatie
pdfPath = Application.GetSaveAsFilename(FileFilter:="PDF bestanden (*.pdf), *.pdf")
If pdfPath = "False" Then Exit Sub ' Annuleer als gebruiker niets kiest
' Verwijs naar het actieve werkblad
Set ws = ThisWorkbook.ActiveSheet
' Tijdelijke sheet maken
Set tempSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
' Configureer pagina-instellingen
With tempSheet.PageSetup
.Orientation = xlLandscape
.Zoom = False ' Schakel handmatige schaal uit
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
' Bereik 1 (A1:O35) kopiëren en exporteren
tempSheet.Cells.Clear ' Zorg dat de sheet leeg is
ws.Range("A1:O35").Copy
tempSheet.Paste Destination:=tempSheet.Range("A1") ' Plak op de tijdelijke sheet
Application.CutCopyMode = False ' Schakel kopieermodus uit
tempSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False, From:=1, To:=1
' Bereik 2 (P1:AG54) kopiëren en exporteren
tempSheet.Cells.Clear ' Leeg de sheet voor het tweede bereik
ws.Range("O1:AH54").Copy
tempSheet.Paste Destination:=tempSheet.Range("A1") ' Plak op de tijdelijke sheet
Application.CutCopyMode = False ' Schakel kopieermodus uit
tempSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
' Tijdelijke sheet verwijderen
Application.DisplayAlerts = False
tempSheet.Delete
Application.DisplayAlerts = True
MsgBox "PDF succesvol opgeslagen als: " & pdfPath, vbInformation
End Sub
Wat doe ik hier fout?