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

PDF overschrijven vanuit Excel

Status
Niet open voor verdere reacties.

Bart1980991

Gebruiker
Lid geworden
15 aug 2018
Berichten
29
Goedendag,

Ik gebruik onderstaande code om snel een formulier om te zetten naar een PDF.
Wat kan ik aan de code veranderen om te zorgen dat het formulier niet op de schrijf wordt gezet (of naar een tijdelijke locatie) zodat de gebruiker moet kiezen hoe en waar de PDF moet worden opgeslagen.

Mocht dat lastig zijn dan graag: hoe kan ik er voor zorgen dat het formulier overschreven wordt ipv de melding '.pdf bestaat reeds'?

Code:
Sub PDF()
Dim FacName As String
FacName = ActiveSheet.Range("A1").Value
If Dir("K:\Verslagen\MT-Staf\2019\" & FacName & ".pdf") <> "" Then
MsgBox "Het bestand: " & FacName & ".pdf bestaat reeds"
Exit Sub
Else
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="K:\Verslagen\MT-Staf\2019\" & FacName & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    From:=1, To:=2, OpenAfterPublish:=True
End If
End Sub

Alvast bedankt voor het meedenken.

Bart
 
Niet controleren of het bestand al bestaat en met
Code:
Application.DisplayAlerts = False
een eventuele melding onderdrukken?
 
Bedankt voor je reactie

Ik heb nu dit:

Code:
Sub PDF()
Dim FacName As String
FacName = ActiveSheet.Range("A1").Value
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="K:\Verslagen\MT-Staf\2019\" & FacName & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    From:=1, To:=2, OpenAfterPublish:=True
Exit Sub
End Sub

Dat werkt, hij overschrijft nu het oude document.
Is het ook nog mogelijk dat de gebruiker gedwongen wordt om de PDF ergens op te slaan? Dus niet in de map waar ook de excel staat zoals nu gebeurd?
 
Dat dwing je hier toch al af?
Code:
"K:\Verslagen\MT-Staf\2019\
 
Nee, nu wordt het op die locatie opgeslagen.
Eigenlijk wil dat de PDF zich opent en dat de gebruiker deze ergens anders opslaat.
(niet elke gebruiker kan bij deze map namelijk)
 
Wat kan ik aan de code veranderen dat ook een 2de tabblad wordt geprint als 2de pagina in de PDF?
 
Verberg de bladen die niet als PDF moeten worden gemaakt en maak er dit van..
Code:
thisworkbook.ExportAsFixedFormat

Daarna maak je de bladen weer zichtbaar.
 
Nee, nu wordt het op die locatie opgeslagen.
Eigenlijk wil dat de PDF zich opent en dat de gebruiker deze ergens anders opslaat.
(niet elke gebruiker kan bij deze map namelijk)

Om een outputmap te laten kiezen kun je dit gebruiken ..

Code:
Sub KiesOutputMap()

Dim sFolder As String
    
    ' Open de dialoogbox om de outputmap te kiezen ...

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Kies een map voor de output .."
        .ButtonName = "Selecteer .."

            ' Eventueel kun je een "start-map" meegeven
            .InitialFileName = "C:\Users\GertB\Data"

        If .Show = -1 Then ' Als OK is ingedrukt dan ...
            sFolder = .SelectedItems(1) & "\"
        End If

    End With
    
End Sub
 
Het was even puzzelen maar beide opties werken, voor opslaan en beide pagina’s als Pdf
Bedankt allen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan