XL 2016 Excel code VBA pour ajuster le contenu d’une plage sur 1 page

  • Initiateur de la discussion Initiateur de la discussion bouclesdor
  • 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 !

bouclesdor

XLDnaute Occasionnel
Bonjour à vous les pros d’Excel,

Je vous écris car j’ai un code VBA dans un fichier Excel qui créé un PDF à partir d’une plage de cellules et j’aimerais modifier ce code pour que si le contenu de la plage n’entre pas sur 1 page je veux que le contenu s’ajuste sur 1 page.

Voici mon code:

With OutMail
.to = Sheets("po").Range("a12")
.CC = "PierreJean@ABCcompagnie.com"

' fait un cutePDF de la feuille PO de la plage a1 à o60
===> c’est ici que je pense que je devrais modifier mon code pour lui dire d’ajuster le contenu de la plage A1 à O60 sur une page mais je ne trouve pas comment…
Sheets("PO").Range("A1😱60").ExportAsFixedFormat xlTypePDF, "O:\Financial\PO\" & "PO " & Range("ad1") & " " & Range("a8") & ".pdf

'Pour enregistrer la copie du PO avec le même nom de fichier et joindre ce fichier au e-mail
PJ = "O:\Financial\PO\" & "PO " & Range("ad1") & " " & Range("a8") & ".pdf"

.attachments.Add (PJ)
.Subject = ActiveWorkbook.Name
.HTMLBody = StrBody & "<br>" & signature 'strbod
.ReadReceiptRequested = True

'Change Item(1)to the account number that you want to use
Set .SendUsingAccount = OutApp.Session.Accounts.Item(1)
.Display​

J'ai trouvé ce code

With Sheets("PO").PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With​
Mais ça n'ajuste pas selon ma plage A1:O60 et je ne sais pas comment imbriquer mes 2 codes pour que ça fonctionne...

Merci à l'avance,

Bouclesdor
 
Merci beaucoup cp4 pour votre réponse et désolé du délai de réponse j'ai été débordée dernièrement...

Je comprends que c'est difficile sans fichier mais comme il y a des infos confidentiels dedans donc je ne peux le mettre ici il faudrait que je fasse beaucoup de manipulation... C'est pour ça que j'ai pris une chance de mettre le code au cas où quelqu'un pourrait m'aider!

Merci beaucoup pour ces 2 pistes je vais tenté de regarder avec les sauts de page et l'enregistreur macro!

Bonne journée,

Bouclesdor
 
Bonjour cp4,

Merci encore pour votre suggestion!! Vous m'avez mis sur la bonne piste pour trouver mon code!! 🙂 J'ai finalement réussi à faire ce que je voulais. Voici mon code modifié au cas où ça aiderait quelqu'un d'autre sur ce site. En rouge c'est ce que j'ai ajouté et/ou modifié pour définir mes zones de texte!
_________________
With OutMail
.to = Sheets("po").Range("a12")
.CC = "PierreJean@ABCcompagnie.com"


'identifie la zone d'impression
Range("A1:n61,A64:N105").Select 'voici mes 2 plages à imprimer et à ajuster sur 1 page
Range("A107").Activate
ActiveSheet.PageSetup.PrintArea = "$A$1:$n$61,$A$64:$N$105"
With ThisWorkbook.Worksheets("PO").PageSetup
.Zoom = False
.FitToPagesTall = 1
' c'est ici que je dis que je veux mettre chaque contenu de mes plages sur 1 page
.FitToPagesWide = 1 'ici pour une page de large...
End With

' fait un cutePDF de la feuille PO en imprimante les zone d'impression que j'ai défini juste avant!
Sheets("PO").ExportAsFixedFormat xlTypePDF, "O:\Financial\PO\" & "PO " & Range("ad1") & " " & Range("a8") & ".pdf

'Pour enregistrer la copie du PO avec le même nom de fichier et joindre ce fichier au e-mail
PJ = "O:\Financial\PO\" & "PO " & Range("ad1") & " " & Range("a8") & ".pdf"

.attachments.Add (PJ)
.Subject = ActiveWorkbook.Name
.HTMLBody = StrBody & "<br>" & signature 'strbod
.ReadReceiptRequested = True

'Change Item(1)to the account number that you want to use
Set .SendUsingAccount = OutApp.Session.Accounts.Item(1)
.Display
________________________

Voilà!

Encore un gros merci cp4 d'avoir répondu à mon message, car c'est ce qui m'a mis sur la bonne piste pour trouver mon code!

Salutations,

Bouclesdor
 
- 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

Réponses
3
Affichages
532
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
378
  • Question Question
Microsoft 365 Code VBA - Erreur
Réponses
1
Affichages
671
Réponses
5
Affichages
1 K
Réponses
1
Affichages
872
Retour