XL 2016 VBA enregistrement en PDF - sans écraser

Camille Clauzade

XLDnaute Nouveau
Bonjour,
J'ai trouvé ce code pour enregistrer en PDF sur mon bureau. Je rencontrer un bogue quand je réponds "oui" à la question "Faut-il l'écraser ?".
Savez-vous pourquoi ?
Merci de votre aide précieuse,
Camille

Sub Save_PDF_bureau()
Dim chemin As String
Dim NomFichier As String

chemin = "C:\Users\Camille\Desktop"
NomFichier = "Argile - liste points de vente.pdf"
xx = Dir(chemin & "\" & NomFichier)
Dim MaPlage As Range, Cel As Range

If xx <> "" Then

'MsgBox pour voir si le fichier existe déjà avec réponse oui ou non, si oui écrase, si non rien
If MsgBox("le fichier" & fichier & " existe déjà dans " & chemin & " Faut-il l'écraser ? ", vbYesNo + vbQuestion, "Création d'un fichier PDF - Document existant") = vbYes Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & "\" & NomFichier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
Else
'Procédure réalisée si le fichier n'existe pas encore
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & "\" & NomFichier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Parce que vous répondez -oui à la question et que la macro fait non.

Tester celle-ci:
VB:
Sub Save_PDF_bureau()
    Dim xx As String
    Dim chemin As String
    Dim NomFichier As String

    chemin = "C:\Users\Camille\Desktop"
    NomFichier = "Argile - liste points de vente.pdf"
    
    '
    ' Tester l'éxistence du fichier
    xx = Dir(chemin & "\" & NomFichier)
    If xx <> "" Then
        '
        ' Si le fichier existe, demander à l'utilisateur s'il faut l'écraser
        If MsgBox("le fichier" & fichier & " existe déjà dans " & chemin & " Faut-il l'écraser ? ", vbYesNo + vbQuestion, "Création d'un fichier PDF - Document existant") = vbYes Then
            ' si l'utilisateur a répondu oui : Suppression du fichier existant
           Kill xx
        Else
            ' Sinon sortir sans enregistrer le fichier
           Exit Sub
        End If
    End If
        ' Enrgistrement du fichier
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                    Filename:=chemin & "\" & NomFichier, _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=True
End Sub

Bonne journée
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Bloque également, ne veut rien dire pour nous à part que ça bloque. Que dis le message d'erreur. Avez-vous les droits systèmes sur Desktop?
Le fichier .pdf n'est-il pas ouvert?

A vous relire
 

Camille Clauzade

XLDnaute Nouveau
Voici un screenshot
1565169142383.png
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Essayez avec Kill Chemin & "\" & NomFichier,

Si cela ne va pas c'est certainement que le chemin n'est pas le bon. C'est à vous de régler le problème, nous ne pouvons pas être.

vous pouvez essayer pour le chemin : "C:\Users\"& environ("username") & "\Desktop".

Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Ceci fonctionne sur ma machine.

VB:
Sub Save_PDF_bureau()
    Dim xx As String
    Dim chemin As String
    Dim NomFichier As String

    chemin = "C:\Users\" & Environ("username") & "\Desktop"
    NomFichier = "test.pdf"
    
    '
    ' Tester l'éxistence du fichier
    xx = Dir(chemin & "\" & NomFichier)
    If xx <> "" Then
        '
        ' Si le fichier existe, demander à l'utilisateur s'il faut l'écraser
        If MsgBox("le fichier" & NomFichier & " existe déjà dans " & chemin & " Faut-il l'écraser ? ", vbYesNo + vbQuestion, "Création d'un fichier PDF - Document existant") = vbYes Then
            ' si l'utilisateur a répondu oui : Suppression du fichier existant
           Kill chemin & "\" & NomFichier
        Else
            ' Sinon sortir sans enregistrer le fichier
           Exit Sub
        End If
    End If
        ' Enrgistrement du fichier
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                    Filename:=chemin & "\" & NomFichier, _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=True
End Sub

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 095
Messages
2 085 253
Membres
102 837
dernier inscrit
CRETE