Gestionnaire nom à longueur variable Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
t
thomas67
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 1 octobre 2012
Version d'Excel : 2010

Message par thomas67 » 10 février 2017, 18:49

Bonjour,

dans le gestionnaire de noms j'ai défini une zone:
=Feuil1!$B$3:$E$12
Cependant quand je vais ajouté de ligne ça ne serai plus 12 mais 25, 50....
Comment modifier pour prendre en compte une longueur variable de la colonne

merci par avance
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'090
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 10 février 2017, 18:59

Bonsoir,
c'est ce que l'on nomme "une plage dynamique"
Pour cela au lieu de : Feuil1!$a1:$a25 il faut écrire la formule :
=DECALER($A$1;;;NBVAL($A:$A);)
en supposant qu'il n'y a pas d'entête à la colonne.
Explications :
DECALER(CELLULE DE REFERENCE ; DECALAGE LIGNE PREMIERE CELLULE DE LA PLAGE . DECALAGE COLONNE PREMIERE CELLULE DE LA PLAGE ; DECALAGE LIGNE DERNIERE CELLULE DE LA PLAGE ; DECALAGE COLONNE DERNIERE CELLULE DE LA PLAGE)

Si on a pas d'entête de colonne, on prend en référence la cellule A1
le décalage de ligne pour la première cellule de la plage est donc de 0, on ne l'inscrit pas
le décalage de colonne pour la première cellule de la plage est donc de 0 car on reste sur la colonne A, on ne l'inscrit pas
le décalage de ligne pour la dernière cellule de la plage est égal au nombre de valeur de la colonne donc NBVAL($A:$A)
le décalage de colonne pour la dernière cellule de la plage est donc de 0 car là encore on reste sur la colonne A, on ne l'inscrit pas

Dans le cas où il y a une entête de colonne :
=DECALER($A1;1;;NBVAL($A:$A)-1;)
Vu qu'il y a une entête de colonne, sur le nombre de valeur de la colonne on soustrait 1 pour ne pas la prendre en compte...

@ bientôt

LouReeD

Oups !
pour finir dans votre cas il y a décalage de colonne !!! :mrgreen:
Donc de B pour aller à E on décale de 3 colonnes !
Donc :
=DECALER($B$3;;;NBVAL($B:$B);3)

en supposant qu'en colonne B il n'y a pas d'autre valeur en ligne 1 et 2 et que pour chaque ligne il y a bien une valeur en colonne B

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
t
thomas67
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 1 octobre 2012
Version d'Excel : 2010

Message par thomas67 » 8 mars 2017, 18:33

Bonsoir,

merci pour la réponse,

j'ai ajouté mon fichier en PJ, j'ai mis la ligne de code dans 'champ2' en adaptant la ligne mais ça ne marche pas...


PS: c'est un code que j'ai trouvé sur internet et que je tente d'adapter

L'idée s'est que le champ2 peut évoluer en nombre de ligne
BulleAideChamp (1).xls
(41.5 Kio) Téléchargé 19 fois
t
thomas67
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 1 octobre 2012
Version d'Excel : 2010

Message par thomas67 » 9 mars 2017, 10:01

Bonjour,

à moins qu'il faut aussi changer les colonnes dans le gestionnaire de noms...

Bref je suis dans l'impasse!!!! Merci d'avance pour ceux qui me viendront en aide!!

Bonne journée
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 9 mars 2017, 13:02

Bonjour,

Lorsque tu nommes une plage de façon dynamique, cela impose qu'il n'y ait rien en-dessous, du moins pour la colonne servant au dimensionnement, sans quoi l'évaluation sera fausse !

Le site de Boisgontier est une mine d'or... mais l'utilisation correcte de ses propositions implique un bonne connaissance des rudiments, voire parfois de rudiments avancés... ! :D

Cordialement.
t
thomas67
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 1 octobre 2012
Version d'Excel : 2010

Message par thomas67 » 9 mars 2017, 14:01

Bonjour,

merci pour le retour,

c'est vrai que c'est pointu, il me manque de l'expérience...

Cependant j'ai retravaillé le code, il est en PJ.
Je n'arrive pas à bien régler le champ2 dans le gestionnaire de noms.
Il m'affiche une bulle d'aide partout, j'ai fait un patch...

Qu'ne pensez vous?
BulleAideChamp (1).xls
(35.5 Kio) Téléchargé 22 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 9 mars 2017, 14:34

Tu définis un Champ2 à partir de B3 sur 3 colonnes et un nombre de lignes correspondant au nombre de valeurs en B...

Ta zone orange commence à B1, elle occupe 10 colonnes !
B ne contient rien, donc Champ2 n'est pas défini du tout, et déclenchera une erreur là où il apparaît dans le code !

S'il n'en déclenche pas, c'est que dans la condition de SelectionChange tu écris Champ2 qui ne désigne alors plus une plage mais est interprétée comme variable de type Variant vide, ce qui conduit à ce que la condition soit toujours vérifiée et que la Shape apparaît quelle que soit la cellule de toute la feuille sélectionnée !!!
Il faut écrire [Champ2] (entre crochets pour que cela réfère à un nom de plage)

Et ta formule pour définir la zone orange comme Champ2 doit être :
=DECALER(Feuil1!$B$1;;;NBVAL(Feuil1!$A:$A);10)
Cordialement.
t
thomas67
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 1 octobre 2012
Version d'Excel : 2010

Message par thomas67 » 9 mars 2017, 15:13

Bonjour,

c'est super ça marche!!!! merci beaucoup

Par contre j'ai tenté de rentre ce code dans un module pour faire plus propre et rajouter d'autre fonction par la suite.

Il me trouve une erreur sans buger, est ce normal?

merci
BulleAideChamp (1).xls
(35.5 Kio) Téléchargé 24 fois
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'090
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 9 mars 2017, 18:52

Bonsoir,

ma forme n'étant pas celle que j'aimerais avoir, je dis merci à MFerrand du relais... ;-)
Toujours jamais bien loin ! :lol:

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
t
thomas67
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 1 octobre 2012
Version d'Excel : 2010

Message par thomas67 » 9 mars 2017, 19:34

Loureed,

je ne comprends pas bien ton message. Je suis conscient que mon problème est peut être insignifiant mais je n'ai pas réussi à le résoudre tout seul...
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message