Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Enregistrement en PDF avec modification du nom en fonction du contenu de cellules

  • Initiateur de la discussion Initiateur de la discussion Elwer
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Elwer

XLDnaute Nouveau
Bonjour à tous,

Je suis relativement débutant dans l'utilisation des macro sur Excel, et je bloque sur l'enregistrement en PDF avec modification du nom en fonction d'informations présente dans ma feuille de calcul...
J'ai déjà fait des macro avec un export simple en PDF :

VB:
Sub SimpleImpressionPDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="Mouvement de matériels.pdf", _
Quality:=xlQualityStandard, _
  IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub


Mais je souhaite l'adapter pour faire un enregistrement dans le même répertoire que mon classeur actif. Après pas mal de recherche, voici ou je suis arrivé :
Nom souhaité : Mouvement_Détails(B2)_Date(B6)_Trigramme(B4)

Code:
Sub ImpressionPDF()
Dim nom As String ' nom du pdf
Dim chemin As String 'chemin du dossier d'enregistrement
nom = "Mouvement" & "_" & Range("B2").Value & "_" & Range("B6").Value & "_" & Range("B4").Value 'nom du fichier en prenant la date du mouvement, la qualité (départ/retour) et le nom de la personne
chemin = ActiveWorkbook.Path & "\" 'Enregistrement dans le même dossier que le classeur
'enregistrement en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=nom, Quality:=xlQualityStandard, _
  IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Mais ça bug sur les lignes en rouge... Est-ce que vous voyez mon erreur, et la bonne solution ?

Je vous remercie!
 
Solution
Après des essais, j'ai encore fait des modifications pour l'enregistrement automatique de mes pdf créés.

Voici ce que ça donne, si ça peut aider d'autres novices.

VB:
Sub ImpressionPDF()
Dim nom As String ' nom du pdf
Dim chemin As String 'chemin du dossier d'enregistrement
Dim MaDat As String 'formalisme de la date

MaDat = Format(Range("B6").Value, "yyyy.mm.dd") 'défini le format de la date
nom = MaDat & "_" & "Mv n°" & Range("B1").Value & "_" & Range("B2").Value & "_" & Range("B4").Value & "_" & Range("B5").Value 'nom du fichier en prenant la date du mouvement, le numéro de mouvement, la qualité (départ/retour), le nom de la personne et le n° d'affaire
chemin = ActiveWorkbook.Path & "\Rapports en PDF\" 'Enregistrement dans le même...
Bon, comme quoi, que la solution n'était pas loin, a peine mon message envoyé, j'ai trouvé une solution sur un autre forum avec ce code :

VB:
Sub ImpressionPDF()

Dim nom As String ' nom du pdf
Dim chemin As String 'chemin du dossier d'enregistrement
Dim MaDat As String 'formalisme de la date

MaDat = Format(Range("B6").Value, "yyyy mm dd")
nom = "Mouvement" & "_" & MaDat & "_" & Range("B2").Value & "_" & Range("B4").Value 'nom du fichier en prenant la date du mouvement, la qualité (départ/retour) et le nom de la personne
chemin = ActiveWorkbook.Path & "\" 'Enregistrement dans le même dossier que le classeur

'enregistrement en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=nom, Quality:=xlQualityStandard, _
  IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

J'ai modifié l'ordre, et le format de la date, et ça fonctionne... Tant mieux 😀

Merci quand même à tous !
 
Après des essais, j'ai encore fait des modifications pour l'enregistrement automatique de mes pdf créés.

Voici ce que ça donne, si ça peut aider d'autres novices.

VB:
Sub ImpressionPDF()
Dim nom As String ' nom du pdf
Dim chemin As String 'chemin du dossier d'enregistrement
Dim MaDat As String 'formalisme de la date

MaDat = Format(Range("B6").Value, "yyyy.mm.dd") 'défini le format de la date
nom = MaDat & "_" & "Mv n°" & Range("B1").Value & "_" & Range("B2").Value & "_" & Range("B4").Value & "_" & Range("B5").Value 'nom du fichier en prenant la date du mouvement, le numéro de mouvement, la qualité (départ/retour), le nom de la personne et le n° d'affaire
chemin = ActiveWorkbook.Path & "\Rapports en PDF\" 'Enregistrement dans le même dossier que le classeur

'enregistrement en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\Rapports en PDF\" & nom & ".pdf", _
openafterpublish:=True

'Message de confirmation
MsgBox ("Enregistrement du rapport de mouvement PDF effectué" & vbCrLf & vbCrLf & chemin)

End Sub

Sur le code précédent, j'avais un souci dans le Filename, j'avais juste spécifié le nom sans préciser le chemin d'accès...

Elwer
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
245
Réponses
3
Affichages
671
Réponses
10
Affichages
547
Réponses
3
Affichages
885
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…