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 Marion
  • Date de début
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
 

Roger

XLDnaute Junior
Salut,
En nommant ton champs à imprimer :
- 1 - Tu surfaces le champs à imprimer
- 2 - au menu : Insertion - Nom - définir - Tu tapes le nom sans espace et sans caractères spéciaux.
Et voilà.
Tu n'as plus qu'à faire appel à ce champs nommé afin de l'imprimer.
Si tu ajoutes une ligne ou colonne, cela fonctionneras toujours.
@+
Roger
 
M

Marion

Guest
Bonjour Roger et merci pour ta réponse; mais je ne vois pas comment cela peut changer la zone d'impression.

Ou peut-être que je ne t'ai pas suivie

peut tu préciser s'il te plait?

merci

Marion
 

Philippe

XLDnaute Occasionnel
Bonsoir Marion, Roger & the others...

Marion je ne comprend pas bien ta question...

Tu veux autodimensionner ta zone d'impression en excluant toute la partie basse de ton tableau qui est vide ??

Ou tu veux simplement, une fois surfacée la zone à imprimer, t'affranchir de 'fichier/zone d'impression/définir' ? auquel cas cette mini-macro fera ce que tu souhaites:
Sub print()

Dim plage As Range
ActiveSheet.PageSetup.PrintArea = selection.Address
End Sub
 

Philippe

XLDnaute Occasionnel
Excuse moi Marion mais essaie d''être plus précise, tu veux exclure TOUTES les lignes vides, y compris celles qui sont entre des lignes pleines?? ou juste celles du bas ?

Poste en fichier joint ton classeur si tu veux, ça sera plus facile de se comprendre
 
M

Marion

Guest
Desolée Philippe de ce manque de précision, je vais essayer d'être plus clair (le fichier est trop important pour être envoyé)

prenons un exemple:

j'ai un tableaux de b1 a t70
la cellule b1.B2.B3.B4.B5 sont garnies si je clique sur un bouton la zone d'impression doit être B1:T5 et l'impression devra se faire uniquement sur ses lignes

Les cellules B1.B2.B3.B4.B5.B6.B7.B8.B9.B10.B11.B12 sont garnies la zone d'impression sera alors B1 T12 et lors de l'impression n'apparaitra sur ma feuille que ses lignes (avec le format bien sûr).

si toutes les cellules de la colonne B (jusqu'a B70) sont garnies alors le zone sera B1:T70 et il me faudra deuxfeuilles pour l'impression.

J'espère avoir été plus clair ce fois

Desolée et merci
Marion
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Tu peux définir le nom 'Zone_d_impression' par formule, sans bouton :
Barre de menu - Insertion - Nom - Définir
Dans la zone du haut, tu tapes 'Zone_d_impression'
Dans la zone du bas 'Fait référence à', tu tapes :
=DECALER(Feuil1!$B$1:$T$1;;;NBVAL(Feuil1!$B$1:$B$70)

DECALER(1ère ligne; 0 ligne donc omis; 0 colonne donc omis; hauteur : NBVAL(Feuil1!$B$1:$B$70);largeur idem B1:T1 donc omis)

Tu adaptes si B1 est vide, si ça ne démarre pas en B1, etc
[file name=ZoneImpressionMarion.zip size=2372]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ZoneImpressionMarion.zip[/file]
 

Pièces jointes

  • ZoneImpressionMarion.zip
    2.3 KB · Affichages: 408

Philippe

XLDnaute Occasionnel
Alors au pied levé, après un bon diner... légèrement arrosé..

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 = Range('B1:T' & fin)
End Sub

Testé et approuvé !!!

GOOD NIGHT !!!
 
M

Marion

Guest
Bonjour au forum, et merci a tous ce qui mon répondu.

J'ai essayer la methode de Monique, elle fonctionne trés bien, mais j'aimerais mieux une macro (cause si je veux définir une zone d'impression occasionnel je pense qu'elle ne fonctionneras plus

Phillippe ma donne un code mais il ne fonctionne pas je n'arrive pas a imprimer (repas trop arrosé sens doute).

en gros la formule de Monique en macro serait super

merci de votre aide

A+Marion
 

KIM

XLDnaute Accro
Bonjour le forum,
En testant la formule de Monique,
Tant qu'il n' y a pas des cellules vides dans la colonne B toute la zone remplie de la colonne B:T est selectionnée,
parcontre s'il y a une cellule vide dans la colonne B avant la fin de la zone à imprimer, la formule ne prend olus en compte toute la zone à imprimer.
Comment, Monique, Modifier ta formule pour definir la zone à imprimer selon la dernière cellule non vide de la colonne B sachant qu'il peut y avoir d'autres vides?
Merci
Bon dimanche
KIM
 

KIM

XLDnaute Accro
Bonjour le Forum, Bonjour Philippe,
J'ai testé ton code, il donne le message d'erreur suivant : ' Impossible de définir la propriété PrintArea de la classe PageSetup'
Comment y remedier?
est-il possible avant de definir un nouveau printarea, de supprimer les printarea dejà défini pour la feuille selectionnée?
Merci
KIM
 

JeanMarie

XLDnaute Barbatruc
Bonjour

Une simple précision. Il ne peut y avoir qu'un PrintArea par feuille. Mais cette PrintArea peut-être composée de plusieurs zones.

@+Jean-Marie

Message édité par: JeanMarie, à: 10/04/2005 10:49
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Ces 2 formules semblent fonctionner pour définir la zone d'impression jusqu'à la dernière cellule non vide de la colonne B :
=INDIRECT('$B$1:$T$'&MAX(SI($B$1:$B$70<>'';LIGNE($B$1:$B$70))))
=DECALER($B$1:$T$1;;;MAX(SI($B$1:$B$70<>'';LIGNE($B$1:$B$70)))
par insertion - nom - définir
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…