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

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
 

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
 

Camille Clauzade

XLDnaute Nouveau
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 !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…