Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA enregistrement en PDF - sans écraser

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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
 
Merci Roblochon. J'ai testé ce code sur un autre ordinateur et ça fonctionne. Le problème vient donc de mon PC, mais je n'ai absolument aucune idée de comment résoudre le truc. En tout cas merci beaucoup pour le code qui est parfait !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
245
Réponses
3
Affichages
673
Réponses
3
Affichages
887
Réponses
10
Affichages
547
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…