Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Impression par VBA

4 réponses
Avatar
Rex
Bonsoir à toutes et tous

Je dois imprimer (vers PDF) plusieurs zones séparées d'une même feuilles

Y a-t-il moyen de créer par VBA une "Print Area" qui comprends par exemple


En-tête et pied de page
Cellules B10:G15
Cellules B25:H35
Cellules F42:G46

Sans imprimer ce qu'il y a entre ces cellules
Et en plus d'imprimer uniquement les cellules visibles
Des lignes 25 à 35 seules celles ou il y a un montnat en C sont affichées

La seule solution que je trouve personnellement est de passer par un
document Word

Mais je suis persuadé que l'un d'entre vous a déjà du faire ce genre de truc

D'avance merci et à très bientôt

Rex

4 réponses

Avatar
JB
Bonsoir,

Range("16:24,35:41").EntireRow.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$B$14:$H$46"
ActiveSheet.PrintPreview
Rows("16:41").Hidden = False

JB



On 2 sep, 21:41, "Rex" wrote:
Bonsoir à toutes et tous

Je dois imprimer (vers PDF) plusieurs zones séparées d'une même feu illes

Y a-t-il moyen de créer par VBA une "Print Area" qui comprends par exem ple

En-tête et pied de page
Cellules B10:G15
Cellules B25:H35
Cellules F42:G46

Sans imprimer ce qu'il y a entre ces cellules
Et en plus d'imprimer uniquement les cellules visibles
Des lignes 25 à 35 seules celles ou il y a un montnat en C sont affich ées

La seule solution que je trouve personnellement est de passer par un
document Word

Mais je suis persuadé que l'un d'entre vous a déjà du faire ce genr e de truc

D'avance merci et à très bientôt

Rex


Avatar
Rex
Ooouups ;-((((((

Mea culpa

Bonsoir et merci à toi d'avoir répondu

Mais une fois de plus quand je relis ma question je me rends compte que je
m'explique décidément TRES mal

Les lignes cachées ne sont pas fixes (c'eut été trop facile)

Je m'explique

Il s'agit d'une feuille nommé "Tacking_Orders"

Et, suivant les données que je sélectionne en J3 et J4,
Les lignes entre 4 et 15 sont toujours affichées (mais change d'info)
Certaines lignes entre 15 et 45 sont affichées ou cachées (suivant les
articles commandés)

Donc ce ne sont jamais les mêmes lignes ou cellules qui sont affichées

Cela fait un bout de temps que je cherche une solution sans succès

Je me trouve face à plusieurs solution possibles
Mais je n'arrive ni à faire un choix, ni à en faire fonctionner une comme il
faut

Première solution
Faire un copier image à l'aide du shift dans le genre
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Macro3()
Range("B4:L189").Select
Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Et puis de le coller comme image dans Word

Dans ce cas-ci il me faudra un coup de main pour que ma macro
ouvre un document word nommé "Order-confirmation"
Y a-t-il moyen de lui faire coller à un emplacement précis
ou faudra-t-il travail avec des "Fields" et coller
dans un de ces fields
Fasse un coller Spécial image enhanced metafile
Sauvegarde avec le nom qui se trouve dans la cellule
"Tracking_Orders" J4
Imprime un fichier PDF du même nom
Fermer Word

Mais quand j'enriegistre une macro en Excel
elle s'arrête dés que l'on quitte Excel
Et je ne sais pas comment faire pour inter-agir avec Word

Je ne crois pas qu'il soit possible de faire tout cela de manière
transparente

Deuxième solution
Créer un document Word avec des "Fields" liées au document Excel
Et par macro (si c'est possible) de cacher ou d'ignorer les cellules vides
d'Excel

Troisième et dernière solution (peut-être pas si bête que ça)
De créer dans le même fichier Excel une feuille qui resemblerait plus à une
lettre qu'à une feuille Excel
Et d'y créer des liens

Voilà ou j'en suis dans les méandres de ma petite tête à cette heure tardive
d'un dimanche soir

Donc si toi, ou quelqu'un d'autre (j'ose plus dire n'importe qui ;-)))) avez
des idées ....................

(en espérant que je me suis mieux expliqué cette fois-ci)

A bientôt

Bonne nuit ou bonne journée

Rex ;-))) )))










"JB" a écrit dans le message de news:

Bonsoir,

Range("16:24,35:41").EntireRow.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$B$14:$H$46"
ActiveSheet.PrintPreview
Rows("16:41").Hidden = False

JB



On 2 sep, 21:41, "Rex" wrote:
Bonsoir à toutes et tous

Je dois imprimer (vers PDF) plusieurs zones séparées d'une même feuilles

Y a-t-il moyen de créer par VBA une "Print Area" qui comprends par exemple

En-tête et pied de page
Cellules B10:G15
Cellules B25:H35
Cellules F42:G46

Sans imprimer ce qu'il y a entre ces cellules
Et en plus d'imprimer uniquement les cellules visibles
Des lignes 25 à 35 seules celles ou il y a un montnat en C sont affichées

La seule solution que je trouve personnellement est de passer par un
document Word

Mais je suis persuadé que l'un d'entre vous a déjà du faire ce genre de
truc


D'avance merci et à très bientôt

Rex


Avatar
Modeste
Bonsour® Rex avec ferveur ;o))) vous nous disiez :
Y a-t-il moyen de créer par VBA une "Print Area" qui comprends par
exemple

En-tête et pied de page
Cellules B10:G15
Cellules B25:H35
Cellules F42:G46

ce ne sont jamais les mêmes lignes ou cellules qui sont affichées




peux-tu identifier ou selectionner séparement et automatiquement chacune des 3
plages correspondantes ???
si oui, pour "n'importe qui" ...une simple macro devrait pouvoir copier chaque
plage dans une feuille temporaire
qu'il serait alors facile d'imprimer.
;o)))
en quelque sorte un peu l'idée de ta 3eme solution

@+
;o)))



Avatar
rthompson
Bonjour Modeste (j'peux plus employer les ôôô, cela gène;-(((()

Je vois que grâce à tes conseils je suis devenu aussi intelligent que toi
;-))))

Mais, malhereusement pas encore aussi compétent ;-((((

Donc je ferais sûrement appel à tes connaissances une fois lancé

Je créerais un nouveau fil Sélection de plages en VBA

A bientôt

Rex ;-))) )))



"Modeste" a écrit dans le message de news:

Bonsour® Rex avec ferveur ;o))) vous nous disiez :
Y a-t-il moyen de créer par VBA une "Print Area" qui comprends par
exemple

En-tête et pied de page
Cellules B10:G15
Cellules B25:H35
Cellules F42:G46

ce ne sont jamais les mêmes lignes ou cellules qui sont affichées




peux-tu identifier ou selectionner séparement et automatiquement chacune
des 3 plages correspondantes ???
si oui, pour "n'importe qui" ...une simple macro devrait pouvoir copier
chaque plage dans une feuille temporaire
qu'il serait alors facile d'imprimer.
;o)))
en quelque sorte un peu l'idée de ta 3eme solution

@+
;o)))