XL 2019 Export PDF - OpenAfterPublish:= _True - bloquer l'ouverture en cas d'abandon

Calizarine

XLDnaute Nouveau
Dans la macro pour enregistrer en PDF, j'ai choisi OpenAfterPublish:= _True, le souci est que si je ferme la macro en cours de route, parce que je change d'avis et que je ne veux plus sauvegarder l'export, le PDF s'affiche quand même.
J'ai bien essayé avec
VB:
If fileSaveName = "" Then Exit Sub
, à divers endroits, mais ça ne fonctionne pas.
La macro est affectée à un bouton.
PS : je suis novice (très).

VB:
Sub Enregistrer_PDF_onglet_Devis()

Dim fileSaveName As String
Dim numero As String
Dim nom As String
Dim chemin As String

numero = [C22]
nom = [H14]
chemin = "C:\Users\Veronique\Documents\MAISON COL\Fichier clients\"

If Len(Dir(chemin, vbDirectory)) > 0 Then
fileSaveName = Application.GetSaveAsFilename(chemin & "\" & numero & " " & nom, "Fichier PDF (*.pdf), *.pdf")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
fileSaveName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _True
End If
MsgBox "Enregistrer en PDF", vbInformation, "Enregistrement en PDF"
End Sub
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je ne suis pas certain d'avoir totalement compris la question, mais je propose ceci :
VB:
Sub Enregistrer_PDF_onglet_Devis()
'
Dim fileSaveName As String
Dim numero As String
Dim nom As String
Dim chemin As String

    numero = [C22]
    nom = [H14]
    chemin = "C:\Users\Veronique\Documents\MAISON COL\Fichier clients\"

    If Len(Dir(chemin, vbDirectory)) > 0 Then
        fileSaveName = Application.GetSaveAsFilename(chemin & numero & " " & nom, "Fichier PDF (*.pdf), *.pdf")
        If fileSaveName = False Then Exit Sub
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fileSaveName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
        MsgBox "Enregistré en PDF", vbInformation, "Enregistrement en PDF"
    End If

End Sub
 

Calizarine

XLDnaute Nouveau
Bonjour,

Je ne suis pas certain d'avoir totalement compris la question, mais je propose ceci :
VB:
Sub Enregistrer_PDF_onglet_Devis()
'
Dim fileSaveName As String
Dim numero As String
Dim nom As String
Dim chemin As String

    numero = [C22]
    nom = [H14]
    chemin = "C:\Users\Veronique\Documents\MAISON COL\Fichier clients\"

    If Len(Dir(chemin, vbDirectory)) > 0 Then
        fileSaveName = Application.GetSaveAsFilename(chemin & numero & " " & nom, "Fichier PDF (*.pdf), *.pdf")
        If fileSaveName = False Then Exit Sub
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fileSaveName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
        MsgBox "Enregistré en PDF", vbInformation, "Enregistrement en PDF"
    End If

End Sub
Ca fonctionne nickel si je choisi de ne pas sauvegarder le PDF, mais affiche "Erreur d'execution '13' quand je tente de l'enregistrer.
 

Pièces jointes

  • test devis.xlsx
    83.1 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
314 718
Messages
2 112 177
Membres
111 452
dernier inscrit
christine64