INDEX : Plage nommée variable selon une cellule

Bonjour à tous,

Je vais essayer d'être clair... J'ai un fichier de gestion d'entreprises avec un onglet "Situation" dans lequel j'ai plusieurs fois en ensemble d'infos par n° d'entreprises (colonne A). Le but est de pouvoir préparer le fichier entièrement de manière à pouvoir le verrouiller et le laisser à des utilisateur non expérimentés (encore moins que moi !)

L'objectif est d'aller chercher une ligne d'info particulière suivant un numéro d'entreprise donnée dans une cellule (appelons le X) et un numéro de situation donné dans une autre cellule (qu'on appellera Y).

Dans le fichier joint, chaque ensemble d'info (par entreprise) est composé comme suit: une première série d'infos sur 5 lignes / un cadre sous traitant dont le nombre de ligne devra pouvoir varier (malheur !) / une série de situation numérotée de 1 à 10 (et voire plus à l'usage si besoin).

Je disais malheur car en effet l'utilisateur devra pouvoir rajouter des lignes au cadre "sous traitant", empéchant l'utilisation d'Index puisque le numéro de ligne sera faux (si j'avais mis auparavant equiv()+18 par exemple, après l'ajout d'une ligne par l'utilisateur, la bonne formule serait equiv()+19....)

En gros ce que je voudrais faire c'est :

Pour l'entreprise X je veux l'info de tel colonne à la ligne Y.

Dernière précision, moi VBA pas connaître.. Moi bien vouloir apprendre mais moi peur de planter mon fichier et aimerai bien faire autrement si possible.

Voilà, d'avance merci parce que je ne doit pas être évident à suivre...

Bonjour

Sans VBA..

Pour les séries d'info de 10 lignes, je vois que tu as nommées Situ1 la plage B14:023 et de la même faço, les plages Situ2 et Situ3. Pour représenter ces plages de façon dynamique, quand les encarts S/T n°1, S/T n°2, S/T n°3 augmentent:

Situ1

=DECALER(INDIRECT("A"&EQUIV(1;Situations!$A:$A;0));13;1;10;14)

Situ2

=DECALER(INDIRECT("A"&EQUIV(2;Situations!$A:$A;0));13;1;10;14)

Situ3

=DECALER(INDIRECT("A"&EQUIV(3;Situations!$A:$A;0));13;1;10;14)

Situ12

=DECALER(INDIRECT("A"&EQUIV(12;Situations!$A:$A;0));13;1;10;14)

Maintenant si les 10 lignes deviennent un coup 10, un coup 11, un coup x c'est aussi faisable mais assurément plus compliqué.

Par exemple, si des lignes sont rajoutées à la fois dans la plage avec les S/T et dans le tableau qui suit cette plage

Situ1

=DECALER(INDIRECT("A"&EQUIV(1;Situations!$A:$A;0));EQUIV(1;INDIRECT("B"&EQUIV(1;Situations!$A:$A;0)&":$B1000");0)-1;1;(EQUIV(2;Situations!$A:$A;0)-1)-(EQUIV(1;Situations!$A:$A;0)+EQUIV(1;INDIRECT("B"&EQUIV(1;Situations!$A:$A;0)&":$B1000");0));14)

Situ2

=DECALER(INDIRECT("A"&EQUIV(2;Situations!$A:$A;0));EQUIV(1;INDIRECT("B"&EQUIV(2;Situations!$A:$A;0)&":$B1000");0)-1;1;(EQUIV(3;Situations!$A:$A;0)-1)-(EQUIV(2;Situations!$A:$A;0)+EQUIV(1;INDIRECT("B"&EQUIV(2;Situations!$A:$A;0)&":$B1000");0));14)

Situ3

=DECALER(INDIRECT("A"&EQUIV(3;Situations!$A:$A;0));EQUIV(1;INDIRECT("B"&EQUIV(3;Situations!$A:$A;0)&":$B1000");0)-1;1;(EQUIV(4;Situations!$A:$A;0)-1)-(EQUIV(3;Situations!$A:$A;0)+EQUIV(1;INDIRECT("B"&EQUIV(3;Situations!$A:$A;0)&":$B1000");0));14)

et ainsi de suite jusqu'à 12

Sur le fichier V2, j'ai inséré des lignes sur Situ2

Je n'ai nommé que situ1, Situ2 et Situ3 pour tester

Cordialement

38testw.zip (32.07 Ko)
57testw-v2.zip (31.99 Ko)

Déjà, merci d'avoir pris le temps de répondre !

Donc là effectivement, j'ai des plages de cellules bien nommées, qui se déplacent et s'étendent comme elles le doivent au grè des manips utilisateurs. Déjà, çà fait plaisir d'avoir un fichier propre et durable....

Je vais me renseigner plus sérieusement sur la fonction décaler, parce que là j'en suis à faire un bête copier coller....

Mais du coup, à partir de çà, si je reprend l'objectif du début, comment, suivant le numéro entré par l'utilisateur dans une cellule, je peux effectuer une recherche dans Situ1 ou situ2 ?

Càd que dans un autre onglet (avec une mise en page différente et d'autres infos, c'est un A4 à imprimer ou selon les facteurs X et Y j'affiche les infos correspondantes) je vais avoir deux cellules vides et déverrouillées dans lesquelles l'utilisateur entre le numéro de l'entreprise (X) et celui de la situation (Y). A partir de çà, j'aimerai pouvoir afficher automatiquement dans le reste de l'onglet les infos relatives aux situations.

Par exemple :

X=2 / Y=1

Dans une cellule je voudrais avoir le montant HT sur avenants (colonne E) de la situation n°1 de l'entreprise n°2 (en l'occurence 3 790€).

Je pourrais faire un Index/Equiv sur Situ2 par exemple, mais est-il possible dans la formule de lier la matrice de recherche au contenu de la cellule X ?

En attendant je me penche sur les plages dynamiques ! Et merci beaucoup !

La réponse est presque contenue dans la question .. En étudiant les lignes que tu m'a proposées Amadeus, j'ai joyeusement découvert la fonction Indirect... Pas mal ... Je doit bien l'admettre ! Bon, je test tout çà immédiatement et quand mon tableau marche j'édite ce post !

Merci !

Bonjour

Une solution

Cordialement

64testw-v2.zip (33.34 Ko)

Re bonjour,

Décaler et Indirect c'est bon, j'ai bien pigé. Cela dit, les zones n'apparaissent plus dans l'onglet en haut à gauche et surtout, je ne peux pas les utiliser sur d'autres onglets ..!? Il me renvoi #N/A. Pourtant la zone est bien définie dans le classeur entier. Une explication à çà ?

Maintenant cela ce n'est pas insurmontable, confère ton exemple avec CHOISIR, mais c'est juste que cela serait plus propre et plus pratique.

En tous cas avec tout çà bout à bout je devrai m'en sortir ! Merci beaucoup !

Une autre solution

Plus de formules nommées

Cordialement

54testw-v3.zip (33.15 Ko)

Parfait ! J'étais en train de me diriger vers çà ! Mais je n'ai pas garder le DECALER :

=RECHERCHEV($L$4;INDIRECT("Situations!B"&EQUIV(1;INDIRECT("Situations!B"&EQUIV($L$3;Situations!A:A;0)&":B1000");0)+EQUIV($L$3;Situations!A:A;0)-1&":O"&EQUIV($L$3+1;Situations!A:A;0)-3);3;0)

Ou L3 et L4 sont les cellules indiquant le choix de l'utilisateur. Vu que je n'ai aucun référence fixe, ai-je vraiment besoin du décaler ? De toute façon je vais faire des tests et je verrai bien....

En tous cas merci beaucoup ! J'aurai mis beauuuuuucoup de temps à trouver çà tout seul !!

Merci encore et à très bientôt !

Rechercher des sujets similaires à "index plage nommee variable"