Excel - VBA - Recherche imbriquée

cpari09 Messages postés 9 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 18 décembre 2009 - 6 oct. 2009 à 14:58
cpari09 Messages postés 9 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 18 décembre 2009 - 8 oct. 2009 à 15:34
Bonjour à tous,

Je réalise une macro VBA dans un fichier Excel.

Je souhaite réaliser une recherche dans un tableau composé de plusieurs colonnes. Je dispose de 2 critères pour réaliser cette recherche :
- critère 1 : correspond à ma colonne 1 qui est triée (en "clef primaire")
- critère 2 : correspond à ma colonne 2 qui est triée (en "clef secondaire")

Est-il possible d'imbriquer 2 recherches comme suit :
- réaliser 1 recherche qui s'appuie sur la colonne 1
- réaliser une 2ème recherche pour laquelle les coordonnées de la table matrice sont définies en fonction du résultat de ma recherche 1

Pour l'instant je ne parviens pas à redéfinir la matrice de la 2ème recherche, le résultat obtenu ne tient donc pas compte de la recherche 1...

Ex de données :
col 1 Col 2 Col 3
brest bleu lig1
brest noir lig2
brest rouge lig3
paris blanc lig4
paris rouge lig5
paris violet lig6

Je cherche la valeur paris pour col1 et rouge pour col 2 --> je souhaite récupérer lig5.
Aujourd'hui je récupère lig3...

Merci de votre aide...

4 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
6 oct. 2009 à 22:15
Bonsoir,

Élémentaire mon cher Watson... Dans ta macro, tu dois passer en revue chaque ligne, avec un test IF qui comprendra les deux arguments relié avec AND, ainsi :

For t=..... '

IF MaVariable1=Critère1 AND MaVariable2=Critere2 THEN
..................
END IF

Next t

Voilà pour la forme...

Amicalement,
Us.
0
cpari09 Messages postés 9 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 18 décembre 2009
7 oct. 2009 à 12:10
Merci pour cette réponse, mais je réalise que je n'ai pas été assez précis dans la formulation de ma question?

En fait, j'ai pris l'ex pour un couple de critères, mais en réalité je dispose d'un 2ème tableau qui comprend plusieurs couples de critères.

Ma recherche a donc pour but d'enrichir une colonne de mon 2ème tableau :
- à partir d'un couple de critères récupéré sur chaque ligne de mon 2ème tableau
- la recherche étant réalisée à partir d'un 1er tableau décrit dans mon 1er message

J'ai donc besoin d'alimenter une col de mon 2ème tableau avec une formule qui me permette de récupérer une donnée de mon 1er tableau sur la base de 2 critères.
Il me faut une formule dans chaque cellule de cette colonne afin que cette recherche soit dynamique (la valeur recherchée dans le 1er tableau étant amenée à évoluer?).

J'espère être plus clair cette fois ci?

Merci
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
7 oct. 2009 à 22:33
Bonsoir,

Plus clair ? Non. En fait, je pense avoir bien compris le premier post... beaucoup moins le second.

Il n'empêche que globalement la réponse est identique. Ensuite, personne ne pourra aider plus, pour la simple raison que tu ne donnes aucun code de départ... En clair, il ne faut pas demander un programme tout fait... De plus, il me semble que tu recherches plus une formule Excel, qu'une programmation en VBA... Est-ce que je me trompe ? Bref, dans tous les cas il faudrait avoir toutes les données de base pour vraiment t'aider... à ceci près, que le forum n'est pas destiné à trouver des bénévoles pour faire ta macro, mais pour t'aider à programmer (en VBA) une partie qui te pose problème... Par exception, envoi-moi ton fichier Excel avec une description simple de ce que tu veux (par exemple, en donnant les tableaux initiaux et le tableau final qui doit en résulter)... et je verrai ce que je peux faire dans un temps raisonnable...

Amicalement,
Us.
0
cpari09 Messages postés 9 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 18 décembre 2009
8 oct. 2009 à 15:34
Bonjour,

J'ai finalement trouvé une solution de contournement en créant une colonne contenant la concaténation des différentes données constituant ma clef de recherche.

Pour ce qui est de tes interrogations :
- oui je réalise une macro VBA
- non je ne cherche pas des bénévoles pour faire mon travail à ma place. Je cherchais simplement un coup de pouce par rapport à un point de blocage...

Amicalement,
0
Rejoignez-nous