Formules RECHERCHEX lente

Adirien - 28 janv. 2024 à 13:52
 Adirien - 30 janv. 2024 à 16:41

Bonjour,

J 'ai posté une demande similaire dans la section Programmation VBA pour étudier une approche VBA mais je poste ici pour voir si certains n' aurait pas une solution purement autour des formules à retravailler. 

Pour résumer, j'ai un fichier Excel (ci-joint) où j'ouvre un Userform (pour des raisons de taille de police et praticité de la saisie semi-automatique) pour choisir le nom d'une personne et sa fonction. Cela entraîne la recherche d'un certains nombre d'infos dans une base de données.

Cependant ça mouline sévère....Je pense que mon SI.CONDITIONS imbriqué avec 3 RECHERCHEX est assez indigeste, surtout répété dans un bon nombre de cellule.J'ai eu du mal à trouver d'autre solutions car j'ai interdiction de toucher à la BDD tel qu'elle est mis en forme donc j'avoue que je me suis cassé un peu la tête pour arriver à trouver la formule adéquate.

Peut-être que des fonctions INDEX/EQUIV mais je ne suis pas parvenu au résultat souhaité  ?

Voici le fichier : https://www.cjoint.com/c/NABiBcfunfM

Merci de votre aide
Android / Chrome 121.0.0.0

1 réponse

via55 Messages postés 14506 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 décembre 2024 2 738
28 janv. 2024 à 15:07

Bonjour

Pour remplacer les imbrications de RECHERCHEX, en B30 mettre la formule :

=SIERREUR(INDIRECT("Qualité!"&ADRESSE(EQUIV($F$4;Qualité!$C:$C;0)+LIGNE()-30;5+SI($F$7="Pose ACC";4;SI($F$7="Vitreuse";8;0))));"")

En C30 idem en remplaçant le 5 + SI .... par  6 + SI ... (5 et 6 étant les n°s de colonnes dans la feuille Qualité)

En C30 cela devient donc 7+ Si ... et en D30 8 + SI..

Même chose dans le 2nd tableau en remplaçant le $F$4 par $Q$4 et les $F$7 par $Q$7

Le LIGNE()-30 renvoie 0 à la 1ere ligne du tableau, la seconde à 1 etc pour incrémenter les lignes à partir de la 1ère ligne où est trouvé lé nom

Cdlmnt

Via


1

Merci pour la proposition. Je n'avais pas été notifié de la réponse je ne l'ai pas vu plutôt du coup j'ai trouvé une solution j'ai fais ce que je voulais éviter, j'ai ajouté une colonne dans chaque bdd et concaténer les 2 critères et j'ai reconstruit tout les recherchex en index/equiv et ça marche plutôt très bien la recherche est instantanée.

Je vais tenter d'explorer votre solution voir si cela peut supprimer la colonne concaténer. 

0