XL 2016 VBA enregistrement en PDF - sans écraser

  • Initiateur de la discussion Initiateur de la discussion Camille Clauzade
  • Date de début Date de début

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 !

C

Camille Clauzade

Guest
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
 
Voici un screenshot
1565169142383.png
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
309
  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
398
Réponses
3
Affichages
852
Réponses
3
Affichages
1 K
Réponses
10
Affichages
760
Réponses
6
Affichages
522
W
Retour