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

Bepaald bereik opslaan als .pdf met VBA (Code voor opslaan werkt al)

Status
Niet open voor verdere reacties.

Soppuh

Gebruiker
Lid geworden
11 mei 2015
Berichten
61
Goedemorgen,

Onderstaande code gebruik ik om een werkblad in excel op te slaan als pdf in een bepaalde map.
Deze code slaat alles op wat hij vindt in het werkblad, maar ik wil hier een bereik aan hangen.
Als ik op de knop "Opslaan" klik, moet het bereik A1:G54 worden opgeslagen als pdf.
Echter weet ik niet precies hoe en wat ik moet aanpassen in onderstaande code.
Ik heb al gezocht via de zoekfunctie hier op het forum, maar ik kon niet een gelijksoortige situatie vinden.

Is er ook nog een mogelijkheid om een MsgBox te tonen als het bestand correct is opgeslagen?

Iemand hier een oplossing voor?
Alvast bedankt!

Code:
Sub Opslaan()
Dim FacName As String

FacName = ActiveSheet.Range("D2").Value & " -- " & Range("D8").Value & " ' De macro haalt met dit command gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
       
If Dir("G:\Frank\" & FacName & ".pdf") <> "" Then
   MsgBox "Het bestand: " & FacName & ".pdf bestaat reeds" ' Een controle om geen dubbel PDF-bestand te maken.
        ' De map waarin je de PDF-bestanden in wilt creëeren moet op voorhand aangemaakt zijn!!
       Exit Sub  'Verlaat de routine als het PDF-bestand reeds bestaat.
     Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="G:\Frank\" & FacName & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False

End If
End Sub
 
Doe het eens zo:
Code:
Sub Opslaan()
    Dim FacName As String
    Dim Map As String

    [COLOR="#008000"]'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.[/COLOR]
    FacName = ActiveSheet.Range("D2").Value & " -- " & Range("D8").Value & ".pdf"
    
    [COLOR="#008000"]'De folder waarin het bestand moet worden opgeslagen[/COLOR]
    Map = "G:\Frank\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    [COLOR="#008000"]'Een controle om geen bestaand PDF-bestand te overschrijven.[/COLOR]
    If Dir(Map & FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("Blad1").Range("A1:G54").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 & " is NIET opgeslagen"
End Sub
 
Laatst bewerkt:
Doe het eens zo:
Code:
Sub Opslaan()
    Dim FacName As String
    Dim Map As String

    [COLOR="#008000"]'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.[/COLOR]
    FacName = ActiveSheet.Range("D2").Value & " -- " & Range("D8").Value & ".pdf"
    
    [COLOR="#008000"]'De folder waarin het bestand moet worden opgeslagen[/COLOR]
    Map = "G:\Frank\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    [COLOR="#008000"]'Een controle om geen bestaand PDF-bestand te overschrijven.[/COLOR]
    If Dir(Map & FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("Blad1").Range("A1:G54").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 & " is NIET opgeslagen"
End Sub

Thanx! Hij werkt!
 
Zoals gebruikelijk moeten we de macrorecordercode opschonen.

Dit is voldoende

Code:
Sheets("Blad1").Range("A1:G54").ExportAsFixedFormat 0,Map & FacName
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan