Opgelost Bestaande PDF overschrijven

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

DesignerQZ

Gebruiker
Lid geworden
3 aug 2022
Berichten
24
Ik heb een Macro waarbij vanuit Excel een PDF wordt aangemaakt en opgeslagen. Nu is het zo dat wanneer de PDF al bestaat deze niet wordt overschreven. Ik heb al iets geprobeerd met :

' If Dir("ThisWorkbook.Path" & "\Offerte " & FacName & " " & Date") <> "" Then MsgBox "PDF bestaat al"

' Exit Sub
' Else

Maar hierbij krijg ik een melding van een compileerfout. Is er iemand die mij hierbij kan helpen?
 
Je kunt met Kill de bestaande versie verwijderen voordat je de nieuwe opslaat. Dus met Dir() checken of het bestaand bestaat, dan met Kill verwijderen en daarna opnieuw opslaan. Overigens heb je in je Dir bestand geen .pdf als extensie meegegeven. Dat zou ook een fout kunnen opleveren. En je geeft geen format mee aan Date, dus daar zou het ook fout kunnen gaan.
 
Ik zou de aanhalingstekens om "ThisWorkbook.Path" verwijderen.
 
En je If structuur klopt ook niet.
 
De If constructie is prima, maar de syntax dus niet.
Code:
If Dir(ThisWorkbook.Path & "\Offerte " & FacName & " " & Date & ".pdf" ) <> "" Then
     Kill ThisWorkbook.Path & "\Offerte " & FacName & " " & Date & ".pdf"
End If
 
Indien een Pdf al bestaat wordt het altijd overschreven; tenminste hier.
 
Het probleem van TS zat 'm ook niet in het opslaan, maar in het verkeerd gebruiken van de code :).
 
Nu is het zo dat wanneer de PDF al bestaat deze niet wordt overschreven.
Verkeerde interpretatie?

"Nu is het zo dat wanneer de PDF al bestaat deze niet moet worden overschreven".
 
Hij werd niet overschreven omdat de code fout was. Dan krijgen jij en ik het óók niet voor elkaar :).
 
Ik denk dat TS eerst maar eens beter uit moet leggen wat het wil.
Als je een Pdf wil overschrijven heb je geen Dir functie nodig.
 
Gewoon zo, PDF wordt zonder pardon overschreven:
Code:
Sub Factuur()
    Dim facname As String
    facname = "Factuur 12345"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\Offerte " & facname & " " & Date
End Sub
 
De code van OctaFish werkt prima bij mij
Probleem opgelost, iedereen bedankt voor het meedenken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan