Bonjour,
je suis de bonne humeur ce matin, il y a des matins comme ça... Hoy Hoy Hoy UUU U !
Ci joint votre fichier sans "macro" (évidemment je ne parle pas des poissons ! ) :
Sur votre feuille Base, suppression des différentes lignes qui en fait n'étaient que des entêtes qui se répétées... Du coup une ligne d'entête (et une seule) qui va de "Type" à 19.
Une colonne de "Type" avec Floride, Gunter etc...
L'ensemble est "aggloméré" dans un tableau structuré sous Excel (grâce à l'outil "insertion tableau"), tableau qui porte le nom de "Tableau1"
Sur votre première feuille, la liste de choix, en validation de donnée, j'ai mis la référence des données de la colonne "Type" du "tableau1", l'avantage si vous ajoutez un item à cette colonne, alors il sera ajouté automatiquement dans la liste de choix.
Ensuite j'ai mis en place une série de formule, comme vous aviez essayé de faire, à savoir RECHERCHE, mais là où vous aviez mis un "H", il fallait mettre un "V" car le "type" de votre liste de choix est en "Vertical" dans votre tableau.
Structure de la fonction RECHERCHEV pour mémoire :
RECHERCHEV( valeur_cherchée ; Tableau "complet" pour la recherche ; numéro de colonne dont on doit renvoyer la valeur ; recherche de valeur exacte dans la colonne de droite ? )
Dans votre cas : RECHERCHEV( la valeur de la cellule A2 ; dans le tableau complet "Tableau1" ; pour la première formule on renvoi la valeur se trouvant en colonne 2 de ce tableau ; on fait une recherche de la valeur de la cellule A2 exact donc Faux ou 0)
Ce qui donne dans le fichier : =RECHERCHEV($A$2;Tableau1;2;Faux)
Le petit soucis c'est que les données de la troisième colonne doivent être "affichées" en 4ième colonne du au fait du décalage d'une colonne à chaque nouvelle formule...
Pour éviter d'écrire la formule à chaque fois, il suffit d'intégrer une petite formule à la place du "2" afin d'opérer ce décalage par "mathématique" :
on a en colonne d'arrivée B (colonne 2 de la feuille Excel) pour une donnée en colonne 2 du tableau, on a en colonne d'arrivée D(colonne 4 de la feuille Excel) une donnée en colonne 3 du tableau etc...
Donc 2 pour 2, 4 pour 3, 6 pour 4 etc....
Une fonction sous Excel existe qui permet de connaître le numéro de colonne où se trouve cette fonction : COLONNE()
si en colonne E vous écrivez =COLONNE(), alors la cellule revoie 5
Donc pour la première formule en B4, COLONNE() renvoie 2, nickel , non ? Et bien non car si on recopie cette formule en colonne D cela va nous renvoyer 4 au lieu de 3, donc la formule est : =COLONNE()/2 + 1
en colonne B cela donne : =2/2 + 1 = 2, et en colonne D cela donne : 4/2+1 = 3 et en colonne F : =6/2+1 = 4 !
Le tour est joué, il suffit d'écrire la formule une fois en colonne B, puis de faire un copier/coller sur les 18 autres colonnes et la formule "se mettra à jour" pour la recherche des données !
Formule finale du fichier : =RECHERCHEV($A$3;Tableau1;COLONNE()/2+1;FAUX)
@ bientôt
LouReeD