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 SubDans 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 ,-(
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 SubBonjour,
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 :
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 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