Mettre l'adresse d'une cellule en tant que variable

Fermé
mad4max2 Messages postés 10 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 1 juin 2015 - Modifié par mad4max2 le 22/03/2015 à 14:14
mad4max2 Messages postés 10 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 1 juin 2015 - 22 mars 2015 à 15:13
Bonjour,

Je voudrais savoir savoir s'il possible de simplifier cette formule:

=RIGHT(CELL("address",INDEX(Membres!B1:B1537,MATCH(E6,Membres!A1:A1537,0))),(LEN(CELL("address",INDEX(Membres!B1:B1537,MATCH(E6,Membres!A1:A1537,0))))-FIND("]",CELL("address",INDEX(Membres!B1:B1537,MATCH(E6,Membres!A1:A1537,0))))))

En effet, j'ai plusieurs onglets...

Dans le classeur: MEMBRES j'ai une liste de membres (+/- 1500) avec des infos diverses sur 161 colonnes.

En colonne A, j'ai le numéro du membre qui me sert pour trouver la ligne sur laquelle il se trouve, via une recherche verticale.

Maintenant, si dans une autre feuille (contrat), j'ai le membre recherché dans C2 et je fais quelque part un:

=VLOOKUP(E6,MemberTable,Membres!$M$1,FALSE)

Où:
E6 = La cellule où j'entre le numéro de membre à chercher
MemberTable = La plage de ma table de membres (Membres!$A$4:$FE$1537)
Membres!$M$1 = le numéro de la colonne (comme ça, si j'ajoute une colonne au milieu, toutes mes formules sont automatiquement màj)
False = Pas besoin que ça soit dans l'ordre

Maintenant, avec la recherche verticale ci dessus, je trouve le contenu. Mais j'ai besoin pour d'autres raisons de trouver l'adresse de la cellule.

Or avec la formule:

=CELL("address",INDEX(Membres!B1:B1537,MATCH(E6,Membres!A1:A1537,0)))

J'obtiens:

'[Fight Move Academy - Membres - 2012-2013-2014-2015.xlsm]Membres'!$B$103

Est-ce qu'il y a une formule plus simple pour pouvoir obtenir l'adresse de la cellule, dans une autre cellule:

Soit, par exemple, dans ma cellule:
F6: Membres (le classeur, sans le ' au début et fin et sans le !)
G6: $B$3 (la cellule)

Puis, comment affecter le contenu de F6 et G6 à deux variables utilisable dans une macro...

Merci pour votre précieuse aide!

PS: Navré pour les formules en anglais, mais j'utilise Excel en anglais. Les formules sont plus logiques et simples, à mon goût personnel... Vous pouvez me répondre avec des formules en français, j'ai un lexique des formules françaises et anglaises.. :)


1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 706
Modifié par gbinforme le 22/03/2015 à 14:38
Bonjour,

Pas facile sans le classeur et en plus en anglais de tout comprendre mais si tu veux simplifier, tu peux nommer une partie de ta formule. En te positionnant sur ta formule, tu vas dans formules / gestionnaire de noms / nouveau et dans nom tu saisis par exemple "membre" et dans fait référence à
INDEX(Membres!B1:B1537,MATCH(E6,Membres!A1:A1537,0)

Cela te permet ensuite d'écrire ta formule :
=RIGHT(CELL("address",)),(LEN(CELL("address",membre)))-FIND("]",CELL("address",membre))))) 

et
=CELL("address",INDEX(Membres!B1:B1537,MATCH(E6,Membres!A1:A1537,0))) 
devient
=CELL("address",membre)) 
tout simplement.

Tu peux aussi nommer dynamiquement tes plages pour qu'elles soient évolutives : par exemple clé_membre
=OFFSET(A1;1;;COUNTA(A:A);1)

Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
0
mad4max2 Messages postés 10 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 1 juin 2015
22 mars 2015 à 15:13
Merci... Stupide de ma part de n'avoir pas pensé a reprendre le nom DÉJÀ existant... En effet, la plage à un nom MemberTable...

Je vais faire un essai avec tes conseils... Merci...
0