Macro NOM.PDF avec NOM = valeur cellule
Bonjour,
Je suis tout nouveau sur le forum et archi novice en VBA.
Je souhaite créer une macro qui enregistre une feuille d'un classeur en PDF selon la zone d'impression prédéfinie.
Voici ce que j'ai enregistré:
Sub ExportPDFnomvariable()
' Macro export en PDF avec nom variable selon contenu cellule.
ChDir "C:\Users\e.benar\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\e.benamar\Desktop\test.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
Voici la modif que j'ai tenté:
Sub ExportPDFnomvariable()
' Macro export en PDF avec nom variable selon contenu cellule.
ChDir "C:\Users\e.benar\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\e.benamar\Desktop\RECAP ENC" & Sheets("Feuille de route").Cells(8,1).Value & " " & Sheets("PLANNING APRES MIDI").Cells(8,3).Value , Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
J'ai aussi essayé ça:
Sub ExportPDFnomvariable()
' Macro export en PDF avec nom variable selon contenu cellule.
ChDir "C:\Users\e.benar\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=RECAP ENC" & Sheets("Feuille de route").Cells(8,1).Value & " " & Sheets("PLANNING APRES MIDI").Cells(8,3).Value _
"C:\Users\e.benamar\Desktop\ ", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
Hier en bidouillant j'ai réussi à sortir une seule et unique fois le nom "LUNDI" pour un document généré automatiquement en PDF (Valeurs des cellules que je souhaite intégrer au nom du document = jours de la semaine (H1) et tranche horaire (H3). Les deux sont en texte).
Non content de moi même, je n'ai pas enregistré mon travail pensant pouvoir le refaire facilement aujourd'hui. Mais finalement, depuis ce matin, c'est message d'erreur sur message d'erreur...
Les exemples de macro trouvé sur le net sont beaucoup trop long, il est souvent question d'installation de module de création de PDF... moi je travail sous office 2013, je souhaite faire quelque chose de simple...
Au plaisir de vous lire. Je continue de chercher en attendant...
Elias
Elias-o a écrit :Voici la modif que j'ai tenté:
Sub ExportPDFnomvariable() ' Macro export en PDF avec nom variable selon contenu cellule. ChDir "C:\Users\e.benar\Desktop" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\e.benamar\Desktop\RECAP ENC" & Sheets("Feuille de route").Cells(8,1).Value & " " & Sheets("PLANNING APRES MIDI").Cells(8,3).Value , Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False End Sub
je ne vois pas d'erreur ... quel est le message d'erreur ?
attention, il faut que les cellules ne contiennent pas de caractères interdits dans le nommage de fichiers sous windows !
un test
Bonsoir,
Merci pour le retour! Suite à votre message j'ai tout repris et je me suis rendu compte que j'avais confondu Lignes et colonnes (Pour l'adresse des cellules) ce qui conduisait vers une cellule comprenant des caractères non autorisés!
Merci pour la remarque et navré de si mal commencer parmi vous avec un problème qui n'en est pas un...
Pour me faire pardonner je remets le code avec plus d'info pour le prochain noob qui passera:
Sub ExportPDFnomvariable()
' Macro export en PDF avec nom variable selon contenu cellule.
'Chemin d'accès pour l'enregistrement
ChDir "C:\Users\e.ber\Desktop"
'Chemin d'accès + nom du document souhaité
'Attention ==> Sheets("Feuille de route").Cells(N°deLIGNE, N°deCOLONNE).Value
'Pour les espaces, copier ==> &" "&
'Pour autoriser ou non l'ouverture du document en pdf a chaque enregistrement changer OpenAfterPublish:= _False/True
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\e.ber\Desktop\RECAP ENC" & " " & Sheets("Feuille de route").Cells(1, 8).Value & " " & Sheets("Feuille de route").Cells(3, 8).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
Merci pour la remarque steelson, elle m'a conduit sur le bon chemin!
Ravis d'être parmi vous!