Aide sur Recherche de Valeur sur Tableau Excel 2007

Fermé
ODARNAT - Modifié par ODARNAT le 6/09/2014 à 10:49
PHILOU10120 Messages postés 6414 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 6 mars 2025 - 6 sept. 2014 à 11:18
Bonjour,

Introduction : Je travaille actuellement sur un fichier Excel 2007 que nous utilisons au Bureau.
Dans Ce Tableur, j'importe des données (une liste de nos Prestataires) d'une base de données SQL dans une des feuilles du tableur (nommée "PRESTAS") afin d'utiliser ces données en "local", plus commode pour faire des recherches croisées.

Informations de Base : Dans ces données importées, nous avons plusieurs colonnes clasiques : Nom, Numero de Telephone, Tarifs, Ville de Départ, Etc... mais pour ce post il y a deux colonnes qui atirent particulierement mon attention, la colonne "Département" et la colonne "Multizone". Dans la colonne "Département" se trouve le numéro du département du prestataire sur 2 chiffres (Exemple : "01" pour l'Ain). Dans la Colonne "Multizone" se trouve la liste des département qu'un prestataire peut couvrir, toujours à 2 chiffres, séparés par "/" (Exemple : Pour un prestataires en Région Parisienne, il peut avoir "75/77/78/91/92/93" s'il ne couvre que ces départements)

Etat actuel des choses : La colonne "Département" est la colonne "A" de ma feuille d'importation, cela me permet de faire des listes (menu déroulants et affichage de listes) en fonction du département qui est selectionné dans un menu déroulant également. (Exemple : Dans une feuille nommée "BC", l'utilisateur choisit le département de la prestation (01) dans un menu déroulant en céllule L2 et grace à cette manipulation un autre menu déroulant ne lui propose que les prestataires du département 01 séléctionné plus tôt)
Pour ce faire j'utilise des plages de cellules nommées, et une formule du type suivant :

=DECALER(PRESTAS!$A$1;EQUIV(BC!$L$2;PRESTAS!$A:$A;0)-1;1;NB.SI(PRESTAS!$A:$A;BC!$L$2);1)

Note : J'ai également intégré dans cette feuille un tableau d'affichage de tout les prestataires du département avec un formule du type :

=INDEX(DECALER(PRESTAS!$A$1;EQUIV(BC!$L$2;PRESTAS!$A:$A;0)-1;1;NB.SI(PRESTAS!$A:$A;BC!$L$2);1);1;
(J'ai retapé cette formule plusieurs fois dans les lignes suivantes en changeant le dernier paramétre afin d'afficher une trentaine de prestataires)

La colonne "Multizone", quant à elle, est en Colonne "T".

Ce procédé que j'ai mis du temps à mettre en place (et à faire accepter à mes collègues, mais ça c'est une autre histoire) a toutefois ces limites car il oblige soit à créer autant d'entrée dans SQL que de département pour chaque prestataires (peu pratique), soit de connaitre à l'avance dans quel département se trouve ce prestataire qui pourra eventuellement couvrir (avec une recherche dans les départements limitrophes). Pas Optimal...

Problématique: Le but de l'opération et de ma demande d'assistance est de pouvoir faire un affichage des préstataires qui "couvrent" un département selectionné en L2 de la feuille BC. Formulé de manière très simpliste j'aimerai dire à Excel :
"Je selectionne le département en céllule L2, cherche dans la liste de préstataire dans la colonne "Multizone" (Colonne "T") si tu trouve cette valeur (toujours sur 2 chiffres et dans une chaine caractères) et présente moi la liste des noms."

Je pourrai alors utiliser le procédé plus haut afin d'indexer ces résultats en liste visible à l'utilisateur (même à la main, nous n'avons pas plus de 30 prestataires par départements).

Une fois cette liste affichée, j'userai de mon bon vieux RECHERCHEV afin d'aller chercher les informations utiles (dont le "Département" du Prestataire, évidement) à afficher en face de chaque nom de prestataire (sur les colonnes suivantes).

C'est là que j'en appelle à vos lumières car je sèche depuis deux semaines sans avancer d'un iota. Quelqu'un aurait-il déja fait quelque chose de similaire et aurait la bonne grace de me fournir un exemple de ces miracles?

Je peux vous transmettre une matrice d'exemple sur demande mais je dois retirer toutes les informations sensibles, pas une mince affaire. J'espère que mes explications seront assez claires.

Bien à vous

Olivier DARNAT

A voir également:

1 réponse

PHILOU10120 Messages postés 6414 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 6 mars 2025 814
6 sept. 2014 à 11:18
Bonjour

Voici une formule qui pourrait vous aider

=RECHERCHEV("*"&L2&"*";T1:T100;1;FAUX)

cela affichera la liste des départements contenu dans la cellule si le département est présent
Mettre un teste esterreur pour ne pas afficher si le département n'est pas contenu

=SI(OU(L2="";ESTERREUR(RECHERCHEV("*"&L2&"*";T5:T10;1;FAUX)));"";RECHERCHEV("*"&L2&"*";T5:T10;1;FAUX))
0