Recherche de données

J'ai des données a traiter et j'aimerai réussir a extraire des valeurs.

Ce que je voudrai faire c'est:

Chercher une valeur definie dans une cellule

definir une matrice a partir de la cellule dans laquelle la valeur précédente a été trouvée.

Faire un recherchev dans cette matrice (ou a défaut un index)

Le troisième point semble le plus simple, mais je ne sais vraiment pas comment définir une matrice a partir d'une valeur recherchée.

Pourriez-vous m'aider svp?

merci d'avance

En gros j'essaye de faire un truc comme ça:

=decaler(RECHERCHEV(B10;Tab1!B:H;1);2;3;1;1)

J'ai trouvé une partie de ma réponse grace à la fonction suivante:

Function TrouveRef(Valeur As Variant) As String

Application.Volatile

TrouveRef = Cells.Find(What:=Valeur).Address

If (TrouveRef = "$A$1") Then

TrouveRef = "Aucune"

End If

End Function

Il faudrait juste l'étendre afin de pouvoir définir la recherche dans une matrice/colonne appartenant à un autre onglet que l'onglet actuel. Quelqu'un pourrait m'aider pour ça?

Merci par avance

Bonjour

Tu ne te sens pas seul un peu ?

Tu comprendras qu'avec un fichier indiquant ce que tu recherches augmente les possibilités de réponse

Tout est expliqué ici

https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html

Bon alors voilà un fichier d'exemple:

Le premier onglet "import" sont les données importée à traiter, il ne faudrait rien modifier dans cet onglet.

Cet onglet est structuré avec différents blocs, la colonne A contient du texte relativement inutile, la colonne B contient des identifiants, et les colonnes C à H contiennent les données. Pour chaque bloc, la première données dans la colonne B (à côté de "$POINT ID", exemple: B10) représente le numéro d'identification d'un point. Les données en dessous (dans ce cas de 322001 à 322008) sont des identifiants de cas. Chaque bloc représente donc les résultats à travers tous les cas d'un point.

Le second onglet est celui dans lequel est fait le post process. Seules les cases en jaune devraient être modifiées par l'utilisateur. dans la colonne A la liste des cas, et dans la colonne B une liste de point. L'idée est de chercher pour chacun des points de la colonne B, les valeurs des colonnes C:H correspondant au cas donné dans la case a côté de SUBCASE. Dans l'exemple, un bloc correspond à B8:H20, la définition du cas à la case C8.

Le but est que la feuille fonctionne quelque soit le nombre de points et de cas dans la feuille "import". J'ai défini des fonctions "trouveRef" et "TrouveRef2" qui fonctionnent mais ne donnent pas de résultat satisfaisant (voir post précédents).

Voilà j'espère que c'est plus clair maintenant

16test2.zip (48.30 Ko)

Bonjour

J'arrive à comprendre un peu mieux mais .....

Que doit on trouver dans les colonnes C à H de la page "post_process" ?

Les mêmes valeurs que dans les colonnes C à H de la page "import"

Fais un exemple manuel de ce que tu dois obtenir

J'ai trouvé une solution intermédiaire utilisant indirect:

=RECHERCHEV($C$8;DECALER(INDIRECT("'"&$D$1&"'!"&TrouveRef2($B12;INDIRECT("'"&$D$1&"'!$B:$B")));0;0;$C$2;8);2;FAUX)

Pour répondre à ta question, oui, les colonnes C et H sont les valeurs que l'on cherche dans import pour les reporter dans post process. la solution n'est pas très élégante, mais j'y connais vraiment rien en VBA pour pondre une fonction qui fait ça.

J'ai joint un fichier avec la solution implémentée

7test2.zip (71.14 Ko)

Bonjour

Donc plus la peine de chercher si tu as une solution

Juste pour info, : Ce que j'avais trouvé (sans macro)

Merci pour ton aide, j'ai l'habitude de travailler avec beaucoup de recherchev. Ta méthode a base de equiv et index ne pourra que m'être utile.

Rechercher des sujets similaires à "recherche donnees"