VBA Enregistrer PDF avec proposition de nom
Bonjour,
Je suis novice sur Excel,
J'ai fait une macro qui me permet d'enregistrer ma feuille en PDF en fonction du nom de ma feuille
Cependant, si j'exécute la macro 2 fois de suite sans changer le nom de la feuille, le deuxième enregistrer va supprimer et remplacer le premier.
Ce que je souhaite alors est que lors de l'exécution de la macro, une fenêtre s'ouvre et me permet de taper le nom que je souhaite.
De même, dans le cas ou je tape un nom qui existe déjà, qu'une fenêtre erreur "Veuillez choisir un autre nom" s'ouvre.
Voici la macro utilisée:
Sub Pdf()
'
' PdfMacro
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & ActiveSheet.Name & ".pdf", _
quality:=xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=200, openafterpublish:=False
'
End Sub
Merci beaucoup pour votre aide
Salut,
Le code ci-dessous devrait faire l'affaire.
Sub Pdf()
Dim Fichier_traité As String, Chemin As String, Autre_nom As String, Drapeau As Boolean
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path & "\"
Fichier_traité = Dir(Chemin & "*.pdf")
Do While Fichier_traité <> ""
If Fichier_traité = ActiveSheet.Name & ".pdf" Then
MsgBox "Le fichier ''" & ActiveSheet.Name & "'' existe déja !"
Autre_nom = InputBox("Indiquer un autre nom que ''" & ActiveSheet.Name & "''")
Drapeau = True
End If
Fichier_traité = Dir
Loop
Fichier_traité = Dir(Chemin & "*.pdf")
Do While Fichier_traité <> ""
If Fichier_traité = Autre_nom & ".pdf" Then
MsgBox "Le fichier ''" & Autre_nom & "'' existe déja !"
Autre_nom = InputBox("Indiquer un autre nom que ''" & Autre_nom & "''")
Drapeau = True
End If
Fichier_traité = Dir
Loop
If Drapeau = False Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & ActiveSheet.Name & ".pdf"
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & Autre_nom & ".pdf"
End If
End Sub
'', _
''quality:=xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
''from:=1, to:=200, openafterpublish:=False
Tu remarqueras que j'ai mis en commentaire certaines lignes de ton ancien code (tout au fond) car elles sont inutiles ici.
Un fichier en annexe pour effectuer tes tests.
Cordialement.