Définir champ d'impression selon variable (VBA)

Christophe

XLDnaute Occasionnel
Bonjour le Forum,

Je suis à la recherche de la formule sous VBA qui me permettra de définir le champ à imprimer selon la valeur de la cellule.
Par exemple si la cellule = 3 alors le champ à imprimer c'est "CHAMP3" si la cellule = 12 alors champ à imprimer c'est "CHAMP12" etc ...
Merci par avance du coup de mains. Bonne journée.

Christophe
 

Catrice

XLDnaute Barbatruc
Re : Définir champ d'impression selon variable (VBA)

Bonjour,

Ci-joint une solution avec Macro et une solution sans Macro
 

Pièces jointes

  • Sans Macro.xls
    16.5 KB · Affichages: 193
  • Sans Macro.xls
    16.5 KB · Affichages: 212
  • Sans Macro.xls
    16.5 KB · Affichages: 211
  • Avec Macro.xls
    21 KB · Affichages: 265

Christophe

XLDnaute Occasionnel
Re : Définir champ d'impression selon variable (VBA)

Wielfried, Catrice,
Merci de vos réponses super rapides.

Catrice : l'exemple sans macro semble parfaitement répondre à ce dont j'ai besoin. Pb : je ne comprends pas comment ça marche et suis donc incapable de le transposer à mon fichier. Peux-tu STP m'expliquer ? Merci

Bonne journée.

Christophe
 

Catrice

XLDnaute Barbatruc
Re : Définir champ d'impression selon variable (VBA)

Pas de probleme...

On définit des noms CHAMP1, CHAMP2 etc ... qui correspondent aux zones que tu veux imprimer.

Dans une cellule on tape l'index de ces zones : 1 ou 2 ou etc ...

La zone d'impression est un nom réservé dans la feuille de calcul :
"Zone_d_impression" (CTRL + F3 pour voir)

Ce nom réfère normalement à une plage de cellule.
On pourrait le faire référer à CHAMP2 par exemple.

Pour rendre tout ça variable on va le faire référer à une nom varaible à l'aide de la fonction INDIRECT

=INDIRECT("CHAMP"&'Sans Macro'!$G$3)

On concatene CHAMP avec le contenu de la cellule G3 ('Sans Macro'!$G$3)
Dans une cellule : =INDIRECT("CHAMP"&'Sans Macro'!$G$3) renvoie CHAMP5 si G3 contient 5

Pour adapter à ton contexte, il suffit de creer les CHAMP1, CHAMP2 etc (ca normalement c'est deja fait)
Puis aller dans Insertion/Nom/Definir (ou CTR+F3) dans nom taper :
Zone_d_impression
Dans Refere à taper :
=INDIRECT("CHAMP"&'Sans Macro'!$G$3)

Où 'Sans Macro'!$G$3 sera à modifier selon le nom de ta feuille et la cellule utilisée.

Si c'est pas clair n'hésite pas à revenir...
 

Discussions similaires

Réponses
3
Affichages
499
Réponses
6
Affichages
475

Statistiques des forums

Discussions
312 111
Messages
2 085 395
Membres
102 882
dernier inscrit
Sultan94