Commande annuler Export PDF VBA

Bonjour à tous,

Pour les besoins du travail, j'ai générer l'export d'un formulaire Excel directement en PDF dont voici le code VBA.

Sub Export_PDF()
NomDossier = Application.InputBox("Nom du Dossier", "Création du dossier", "Entrer le nom du dossier")
Chemin = "G:\mag\bms\000-LOGISTIQUE - MOYENS COMMUNS\SG\TELETRAVAIL\ATTESTATIONS TÉLÉTRAVAIL\Attestation à classer\" & NomDossier & "\"

On Error Resume Next

Dossierexistant = GetAttr(dossier) And vbDirectory

If Dossierexistant = False Then
MkDir (Chemin)
End If

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Chemin & Range("B29").Value & ".pdf", _
quality:=xkqualitystandard, _
includedocproperties:=True, _
ignoreprintareas:=False, from:=1, to:=4, _
openafterpublish:=False

MsgBox ("Le pdf a été crée")

End Sub

Dans ce code, j'aimerais pouvoir intégrer l'annulation de la génération si j'appuie sur le bouton annuler au moment de la "création du dossier". Actuellement ce n'est pas le cas ,-(

image

Est-ce que quelqu'un pourrait me venir en aide svp ?
Un grand merci par avance,

Bonjour & bienvenue sur le forum,

Vous pouvez tester si la string est nulle (2e ligne du code) :

Sub Export_PDF()
    NomDossier = Application.InputBox("Nom du Dossier", "Création du dossier", "Entrer le nom du dossier")

    ' cliquer sur annuler renvoie du texte vide
    If NomDossier = "" Then Exit Sub

    Chemin = "G:\mag\bms\000-LOGISTIQUE - MOYENS COMMUNS\SG\TELETRAVAIL\ATTESTATIONS TÉLÉTRAVAIL\Attestation à classer\" & NomDossier & "\"

    On Error Resume Next

    Dossierexistant = GetAttr(dossier) And vbDirectory

    If Dossierexistant = False Then
    MkDir (Chemin)
    End If

    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=Chemin & Range("B29").Value & ".pdf", _
        quality:=xkqualitystandard, _
        includedocproperties:=True, _
        ignoreprintareas:=False, from:=1, to:=4, _
        openafterpublish:=False

    MsgBox ("Le pdf a été crée")

End Sub

Bonjour,

Tout d'abord, il serait bon que tu prennes connaissance de la charte du forum, notamment pour l'insertion d'un code dans le message

Utiliser le bouton :

image

Ensuite, pour ton souci, si l'utilisateur appuie sur le bouton "Annuler", la valeur renvoyée est "Faux" (ou False)

Donc, un simple test :

---
NomDossier = Application.InputBox("Nom du Dossier", "Création du dossier", "Entrer le nom du dossier")
if NomDossier = False then Exit Sub
----

Bonne journée

Oups pardon !

J'ai voulu aller trop vite je crois !

Merci beaucoup la commande fonctionne parfaitement et en en voyant la commande je me demande comment j'ai fait pour ne pas y penser ! La tête dans le guidon ,-)

Merci milles fois !

Ps: je modifie le message original pour qu'il soit correcte !

----
    NomDossier = Application.InputBox("Nom du Dossier", "Création du dossier", "Entrer le nom du dossier")

    ' cliquer sur annuler renvoie du texte vide
    If NomDossier = "" Then Exit Sub

---

Hello Saboh,

Pas vraiment persuadé

Je pense que la valeur nulle est renvoyée si on clique sur "OK", sans remplir la zone de saisie.

Bonne apm

En effet, solution non testée trouvée sur stackoverflow... Chose à retenir : les inputbox renvoient un variant, même si on attend du texte (je viens de faire quelques tests, on a bien False)

----
    NomDossier = Application.InputBox("Nom du Dossier", "Création du dossier", "Entrer le nom du dossier")

    ' cliquer sur annuler renvoie du texte vide
    If NomDossier = "" Then Exit Sub

---

Hello Saboh,

Pas vraiment persuadé

Je pense que la valeur nulle est renvoyée si on clique sur "OK", sans remplir la zone de saisie.

Bonne apm

Rechercher des sujets similaires à "commande annuler export pdf vba"