Enregistrement pdf avec incrémentation du nom

Fermé
FlorianR - 15 nov. 2020 à 20:10
 ABD - 15 févr. 2021 à 12:05
Bonjour,

Je suis novice en VBA. J'aimerai effectuer l'enregistrement d'une feuille en pdf (avec ouverture à l'enregistrement) qui s'incrémente à chaque enregistrement XXXXV1, XXXXV2, ...
Actuellement, j'ai réussi à pouvoir effectuer l'enregistrement dans un dossier dédié, avec le nom voulu, via un bouton dans la feuille en question.
Lors d'un enregistrement suivant, j'ai mis en place une msgbox vbYesNo qui s'ouvre et me dit que ce fichier existe déjà, et si je veux enregistrer une nouvelle version. J'aimerai que lors d'une réponse Oui, il enregistre en incrémentant le fichier. Et lors d'une réponse Non, il n'enregistre pas.
Pour l'instant je sèche.
Le code est pour l'instant :

Sub PlanningSalle_SAVE()

LaDate1 = Format(Range("I8"), "dd" & "." & "mm" & "." & "yyyy")
LaDate2 = Format(Range("P8"), "dd" & "." & "mm" & "." & "yyyy")
I = "1"
NomFichier = ("Planning Salle du " & LaDate1 & " au " & LaDate2 & "_V")

Dim Fichier As String

Fichier = Dir("C:\GestionResto\Planning Salle\" & NomFichier & I & ".pdf")

If Fichier <> "" Then

MsgBox "Le fichier '" & Fichier & "' existe, voulez-vous créer une nouvelle version?", vbYesNo, "Attention"

If vbYes Then

I = I + 1

End If
End If

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\GestionResto\Planning Salle\" & NomFichier & I & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=True

End Sub

Mervi d'avance si vous pouvez me filer un coup de main...

Configuration: Windows / Chrome 86.0.4240.193
A voir également:

2 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
15 nov. 2020 à 21:13
Bonjour Florian

Essaye de remplacer la fin de ta macro par ceci
chemin="C:\GestionResto\Planning Salle\"
Fichier = Dir(chemin & NomFichier & "*" & ".pdf")
n = 0

Do While Fichier <> ""
n = n + 1
Fichier = Dir
Loop

If n > 0 Then
If MsgBox("Le fichier '" & NomFichier & n & "' existe, voulez-vous créer une nouvelle version?", vbYesNo, "Attention") = vbNo Then Exit Sub
End If

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & NomFichier & n+1 & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=True 

Cdmnt
Via
2
Merci Infinement pour ce code
0
Merci beaucoup Via55! Exactement ce dont j'avais besoin!
Encore merci :)
0