Enregistrement automatique en PDF au nom d'une cellule.

Résolu/Fermé
Olive30129 - 18 janv. 2018 à 13:24
 Olivier30129 - 30 janv. 2018 à 09:40
Bonjour,

Je suis totalement novice en VBA, et les seules macros utilisées jusqu'à présent étaient réalisées avec l'assistant auto de macro qui ne peut plus répondre à mes besoins.

Je cherche sur les différents forums depuis maintenant plusieurs jours la solution à mon problème... solutions que j'ai trouvée à de nombreuses reprises mais que je ne parviens pas à mettre en place... il y aurait il un génie serviable susceptible de m'aider ?

Voila, j'ai un contrat d'adhésion client sur l'onglet :(CONTRAT), (défini par une zone d'impression) que je souhaite enregistrer en PDF, dans un fichier donné, (C:\Users\welness\Documents\OLIVIER\ARCHIVES CONTRAT ADHESION\CONTRATS DU MOIS), et au nom d'une cellule (AB7, elle même étant le résultats de plusieurs cellules concaténer), figurant sur cette même feuille nommée, (CONTRAT).

En bref, je cherche à enregistrer d'un simple "clic" au format PDF, tous les nouveaux contrats d'adhésion, dans un fichier dédié, sans que cela ne modifie la matrice de base de mon contrat d'adhésion qui est "remplie" de formules multiples et diverses, en nommant automatiquement le nouveau fichier PDF au nom de la cellule AB7 de cette même feuille nommée (CONTRAT).

Je sais l'opération possible pour avoir lu de nombreuses réponses sur les forums, mais je ne parviens pas à mettre ceci en place moi même en copiant les "codes" trouvés, pour la simple raison que je ne sais même pas OU copier les codes, et quoi changer dans ces codes pour adapter le chemin à mon ordinateur.

Je vous remercie par avance de votre aide

2 réponses

cs_Le Pivert
Messages postés
7749
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 mai 2022
709
Modifié le 18 janv. 2018 à 14:44
Bonjour,

affecter cette macro à un bouton qui se trouve sur la feuille à enregistrer:

Sub savePDF()
ActiveSheet.PageSetup.PrintArea = "A1:J" & Range("J" & Rows.Count).End(xlUp).Row 'plage de cellule à enregistrer a adapter
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     "C:\Users\welness\Documents\OLIVIER\ARCHIVES CONTRAT ADHESION\CONTRATS DU MOIS\" & Range("AB7").Value & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub


Pour affecter cette macro à un bouton qui se trouve sur la feuille à enregistrer:

https://www.excel-plus.fr/vba/demvba/affecter-une-macro-a-un-bouton/

@+ Le Pivert
1
Mais quelle rapidité !!!! J'ai posté ma question il y a moins de 1 heure... top efficace "Le pivert".
cependant et bien évidement comme c'est ma première... je n'y parviens pas...

J'ai un message d'erreur sur le code que j'ai "tenté" de mettre en place...

erreur de compilation
instruction incorrect a l’extérieur d'une procédure

ActiveSheet.PageSetup.PrintArea = "B1:X124" & Range("X124" & Rows.Count).End(xlUp).Row
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\welness\Documents\OLIVIER\ARCHIVES CONTRAT ADHESION\CONTRATS DU MOIS\" & Range("AB7").Value & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
0
cs_Le Pivert
Messages postés
7749
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 mai 2022
709
18 janv. 2018 à 15:08
Mettre ceci seulement:

ActiveSheet.PageSetup.PrintArea = "B1:X124"
0
Merci pour votre reactivité... pouvez vous juste me dire ou et a la place de quoi je dois mettre ce bout de code svp..
par avance merci
0
cs_Le Pivert
Messages postés
7749
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 mai 2022
709
18 janv. 2018 à 15:12
a la place de cela:

ActiveSheet.PageSetup.PrintArea = "B1:X124" & Range("X124" & Rows.Count).End(xlUp).Row 
0
il y a quelques chose que je dois mal realiser...
Voici le code en place, et j'ai toujours le meme message d'erreur comme precedement.
Bien cordialement


ActiveSheet.PageSetup.PrintArea = "B1:X124"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\welness\Documents\OLIVIER\ARCHIVES CONTRAT ADHESION\CONTRATS DU MOIS\" & Range("AB7").Value & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
0