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

definir une zone d'impression variable

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

M

Marion

Guest
Bonjour le forum.

voila un soucis que je n'arrive pas a régler.

je veux imprimer une feuille mais la zone d'impression varie a chaque fois (ligne en plus) .

la zone d'impression est a1:t50 et une petite v1:ad8

peut-on avec une macro définir la zone a chaque fois, pour eviter d'imprimer des feuilles blanches

Merci de vos réponses

A+Marion
 
Ooooh MARION, comment oses-tu sous entendre que le repas fut trop arrosé, j'ai corrigé ce qui cloche
Ce code définit la zone d'impression de ton tableau en excluant toutes les lignes vides du bas, par contre il ne déclenche pas l'impression (mais ce n'est pas ce que tu demandais...)

Sub zoneimpres()
For x = 70 To 1 Step -1
Range('B' & x & ':T' & x).Select
For Each cel In Selection
If Trim(cel.Value) <> '' Then
fin = x
GoTo suite
End If
Next cel
Next x
suite:
ActiveSheet.PageSetup.PrintArea = $B$1:$T$' & fin
End Sub

ce qui clochait c'est que printarea ne se définit PAS avec 'Range' (dernière ligne)

Maintenant, si tu veux que le macro imprime directement, ajoute
juste avant 'End sub':

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Et attention, hein, plus de sous entendus, MOI qui ne boit que de la Badoit LOL :whistle:
 
Bonjour Philippe, bonjour le forum,
J'ai testé ton code,
il manquait le car ' dans la definition du printarea
ActiveSheet.PageSetup.PrintArea = '$B$1:$T$' & fin

Ton code definit la zone B1T70 jusqu'a ce qu'il trouve une cellule non vide à partir de la derniere cellule de la zone.

Comment peut-on faire pour definir la zone printarea en lui donnant une colonne A et une ligne B et definir les limites selon la dernière cellule non vide de la colonne et la ligne et en rajoutant le nombre de lignes et colonnes pour les titres ?
Merci
KIM
 
Bonjour tout le monde

Kim, c'est vrai que c'est pas clair 😉

Philippe, pour info, on peut utiliser range avec printarea en ajoutant la propriété address :

Public Sub vev()
ActiveSheet.PageSetup.PrintArea = Range('b1:t' & Range('b65536').End(xlUp).Row).Address
End Sub

Sinon, adapté à la demande de Marion :

Public Sub vev2()
Dim derligne As Integer
derligne = Range('b65536').End(xlUp).Row
If derligne > 70 Then derligne = 70
ActiveSheet.PageSetup.PrintArea = Range('b1:t' & derligne).Address
End Sub

Salut
 
Oui Philippe,
mon idee est de partir d'une ligne 2 et d'une colonne A
et de donner pour la ligne A et la colonne B la derniere cellule non vide de chacune sachant bien qu'il pourrait y avoir des cellules vides intermediaire.

ligne 2: dernier cellule non vide K2
Colonne A: derniere cellule non vide est A20
ma zone sera A1K20

et je definis ma printarea A1K20
voilà
merci Philippe
KIM
 
Bonsoir Kim, Hervé, Philippe, Marion, Jean-Marie, le Forum

Pour ta dernière question Kim, je m'y prendrai ainsi :



Je n'ai pas mis de limite pour 70, car je crois que c'est Marion qui avait besoin de cette limit.

Sinon je confirme pour Philippe ce que dit fort bien Hervé et que j'utilise ici aussi pour l'Object Rangen à condition de lui adjoindre la propriété 'Address'

Bonne Soirée
@+Thierry
 
bonjour au forun et a toutes les personnes qui mon répondu.

Vous êtes super, tous ses conseils, toutes ses solutions je suis comblée.

Un gros bisous a vous tous, j'ai ma solution.

Phillippe, ce n'était qu'un plaisanterie, gros bisous pour ton aide çà marche et vive la Badoit.

merci a Herve dont le code marche aussi.

A+Marion
 
Le problème avec ton code hervé, c'est que tu testes uniqt end xlup sur la colonne B, si tu es plus bas ailleurs, ça ne sera pas inprimé, c'est pour çà que je recherche si il y a des cellules remplies dans chaque ligne, en remontant de 70 à 1 😉

Merci pour l'info sur range et printarea, je note ça dans ma petite tête.

Marion, je blaguais moi aussi...... je ne bois jamais de badoit 🙂 🙂
 
Re,

Par formule.
Zone d'impression à partir de A2 (par insertion - nom - définir) :
=INDIRECT('A2:'&ADRESSE(MAX(SI(Zone<>'';LIGNE(Zone)));MAX(SI(Zone<>'';COLONNE(Zone)))))

Plus un format conditionnel pour jouer

[file name=ZoneImpressionKim.zip size=2790]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ZoneImpressionKim.zip[/file]
 

Pièces jointes

Bonsoir monique,
la méthode que tu proposes me plait bien, et puis c'est plus léger que du code.

Pour ma gouverne s'il te plait (je fais un peu de VBA mais je suis carrément niveau 0 en formules)

Donc je sais o&ugrave; placer ma formule quand elle va s'appliquer à une cellule, mais o&ugrave; la mettre pour triter un problème plus général comme dans le cas de KIM

Merci pour tes explications 😉
 
Re,

Je ne suis pas s&ucirc;re d'avoir compris ce que tu demandes.

Dans le fichier joint, la formule est en place.
Ce qui est en colonne U n'est là que pour info.

Pour la mettre en place :
barre de menu - Insertion - Nom - Définir
Dans la zone du haut, tu tapes 'Zone_d_impression'
(ou tu cliques sur 'Zone_d_impression' s'il y en a déjà une de définie),
dans la zone du bas 'Fait référence à', tu tapes la formule :
=INDIRECT('A2:'&ADRESSE(MAX(SI(Zone<>'';LIGNE(Zone)));MAX(SI(Zone<>'';COLONNE(Zone)))))

(à condition d'avoir nommé 'Zone' toute la plage concernée)
 
Il y a 1 fonction trop géniale dans Excel : l'affichage personalisé.
Tu définis une 1° partie à imprimer par 'l'aperçu des sauts de page'.
Tu nommes cet affichage par ex. impress 1. dans ajouter un affichage personnalisé.
Puis tu définis une zone différente à imprimer ; tu vas dans affichage personnalisé et tu lui donnes un 2° nom par ex. impress 2.
Facile !
 
Bonsoir Monique, Philippe, _Thierry, bonsoir le forum,
J'ai testé la solution par formule de Monique , Impeccable
je vais testé le code de Thierry qui devrait repondre à ma demande.
Je vous remercie tous
Merci le forum
grace à vous tous on avance dans notre travail quotidien
A+
KIM
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
770
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…