Zone d'impression paramètrable

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 !

bigmousse

XLDnaute Occasionnel
Bonjour,
Lorsque je definie une zone d'impression, j'ai une variable qui s'appelle " Zone_d_impression" avec comme valeur la plage à imprimer.
J'aimerai que cette zone soit paramétrable avec la fonction décaler voici un exemple :
Zone_d_impression =DECALER(Saisie!$D$1;;EQUIV(Saisie!$A$3;Saisie!$D$1:$HE$1;0);35;18)
Cette fonction me donne une plage

Lorsque je teste avec "l'apercu avant impression" ça fonctionne. Ensuite la plage renvoyée par la fonction écrase la fonction de la variable " Zone_d_impression".

Zone_d_impression = Saisie!$AU$1:$BL$35

Alors que faire pour que ma fonction ne disparaisse pas


Merci
mousse
 

Pièces jointes

Dernière édition:
Re : Zone d'impression paramètrable

Bonjour bigmousse,

Sur Excel 2003 en tout cas, la formule est conservée avec les commandes Aperçu avant impression et Imprimer.

Elle est écrasée seulement si l'on exécute (OK) la commande Mise en page.

A+
 
Re : Zone d'impression paramètrable

Re,

Une solution moins bestiale, par macro :

Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Me.Names.Add "Zone_d_impression", "=OFFSET(Saisie!$D$1,,MATCH(Saisie!$A$3,Saisie!$D$1:$HE$1,0),35,18)"
Application.EnableEvents = True
End Sub

A placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

A+
 
Re : Zone d'impression paramètrable

Re,

Une solution encore plus cool, la formule n'est rétablie que si elle a été effectivement modifiée :

Code:
Private Sub Worksheet_Calculate()
Dim F$
F = "=OFFSET(Saisie!$D$1,,MATCH(Saisie!$A$3,Saisie!$D$1:$HE$1,0),35,18)"
On Error Resume Next 'au cas où Zone_d_impression n'existe pas
Application.EnableEvents = False
If Me.Names("Zone_d_impression").RefersTo <> F Then Me.Names.Add "Zone_d_impression", F
Application.EnableEvents = True
End Sub

Dans la 1ère macro, la zone d'impression était redéfinie à chaque recalcul de la feuille, ce n'était pas l'idéal.

A+

A+
 
Re : Zone d'impression paramètrable

Merci pour les reponses, je voulais biensure pas de code VBA pour que le dépannage reste simple mais bon...
Je viens de tester et ça marche, une petite question dans le code que signifie l'instruction
Code:
Application.EnableEvents = False
??
Merci Salutations
Mousse
 
Re : Zone d'impression paramètrable

Bonjour bigmousse, le forum,

Tres en retard, car a l'autre bout du monde...

Application.EnableEvents = False desactive l'action des evenements (voir l'aide VBA).

Sans cette instruction, la 1ere macro boucle indefiniment car la feuille est recalculee quand on redefinit la zone d'impression.

Pas teste avec la seconde macro, normalement elle ne doit pas boucler, mais c'est mieux d'eviter l'evenement Calculate.

A+
 
- 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
6
Affichages
1 K
Compte Supprimé 979
C
Retour