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

Uitvoer PDF met VBA

Status
Niet open voor verdere reacties.

martindeboer1988

Gebruiker
Lid geworden
5 nov 2016
Berichten
93
Hallo allemaal.

Ik zit met onderstaande uitdaging ik heb in Excel via VBA een uitvoer naar PDF van een bepaald cellenbereik gemaakt.
Nu is het PDF document wat uitgevoerd word een hele aparte afmeting terwijl de officiële PDF documenten A4 zijn.
De uitdaging is hoe krijg ik het cellenbereik goed op een A4 formaat.

De print area's zijn naar mijn idee goed ingesteld.

Code:
Private Sub CommandButton1_Click()
Dim FacName As String
MsgBox "Het PDF bestand word aangemaakt en opgeslagen in de map Filing"

    'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
    FacName = ActiveSheet.Range("E22").Value & ".pdf"
    
    'De folder waarin het bestand moet worden opgeslagen
    Map = "C:\Users\mdboer\Downloads\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    'Een controle om geen bestaand PDF-bestand te overschrijven.
    If Dir(Map & FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("PDF_reparatie_HS").Range("A5:I35").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Map & FacName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        MsgBox "Het bestand: " & FacName & " is opgeslagen"
        Exit Sub
    End If
    
Fout:
    MsgBox "Het bestand: " & FacName & " kon helaas niet opgeslagen worden vanwege een fout."
End Sub
 
Je zal hiermee wat moeten spelen totdat de juiste layout is gevonden
Code:
With ActiveSheet.PageSetup
        
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .Zoom = False '80
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        End With
 
Plaatsing

Waar in mijn code moet jouw code komen dan :) ?

Code:
Private Sub CommandButton1_Click()
Dim FacName As String
MsgBox "Het PDF bestand word aangemaakt en opgeslagen in de map Filing"

    'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
    FacName = ActiveSheet.Range("E22").Value & ".pdf"
    
    'De folder waarin het bestand moet worden opgeslagen
    Map = "C:\Users\mdboer\Downloads\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    'Een controle om geen bestaand PDF-bestand te overschrijven.
    If Dir(Map & FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("PDF_reparatie_HS").Range("A5:I35").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Map & FacName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        MsgBox "Het bestand: " & FacName & " is opgeslagen"
        Exit Sub
    End If
    
Fout:
    MsgBox "Het bestand: " & FacName & " kon helaas niet opgeslagen worden vanwege een fout."
End Sub
 
Hoi,
Net onder
Code:
Dim FacName As String
zou moeten werken.
 
Wanneer ik de code invoer veranderd het tot nu toe weinig aan het document.
Krijg wel een foutmelding waarvan een afbeelding bijgevoegd.001.jpg

Code:
Dim FacName As String
With ActiveSheet.PageSetup
        
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .Zoom = True '80
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        End With
 
Je moet zoom op vb 80 zetten (is 80%) true wordt niet ondersteund.
Edit
Zoiets dus: Zoom = 80
 
Laatst bewerkt:
Akkoord maar ik zie dat ik ook een fout heb gemaakt in mijn verzoek naar jou toe.
In de code staat
Code:
Dim FacName As String
With ActiveSheet.PageSetup
En ik wil juist het van toepassing laten zijn op een andere sheet met de naam PDF_reparatie_HS
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan