![]() |
Brico Micro | ![]() |
Effectuer une recherche depuis une cellule avec bouton de commande :
Exemple : Feuille de calcul avec la cellule E1 comme étant la cellule dans laquelle sera saisi le critère de recherche.
1 - Création du bouton de commande :
Afficher la Boite à outils Contrôle et choisir Bouton de
commande. Tracer le bouton, cliquer droit dessus et choisir Propriétés.
Dans la fenêtre Propriétés, cliquer deux fois sur Caption,
remplacer CommandButton1 par Rechercher et fermer la fenêtre.
2 - Saisir le langage permettant la recherche :
Cliquer deux fois sur le bouton que l’on vient de créer, une feuille Microsoft Visual Basic apparaît.
Entre les lignes Private Sub CommandButton1_Click() et End Sub
saisir le texte afin d’avoir le langage ci-dessous :
Private Sub CommandButton1_Click()
Range("E1").Select
Cells.Find(What:=Range("E1"), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub
Fermer la feuille Microsoft Visual Basic et la Boite à outils Contrôle. Il ne reste plus qu’à tester « la recherche » en saisissant un nom dans la cellule E1 et en cliquant sur le bouton Rechercher.
Pour télécharger la notice détaillée, cliquer ici.
Recherche des valeurs d'une colonne figurant dans une autre colonne :
Les deux colonnes à comparer sont les colonnes A et B.
La colonne D est destinée à la recherche et peut-être placée à tout autre endroit (G, H,….). Elle comporte une fonction déroulée depuis la cellule
D2 : =SI(ESTNUM(RECHERCHEV(B2;$A$2:$B$24;1;FAUX));"";B2)
Cette fonction recherche dans la colonne A la valeur de la cellule B2. Si elle la trouve elle argumente
VRAI, sinon elle argumente FAUX (#N/A).
La fonction ESTNUM conditionnée par SI permet de n'afficher que les valeurs
FAUX et qui en fait sont celles recherchées.
En déroulant cette fonction jusqu'en bas de la liste, la recherche se fait cellule par cellule donc valeur par valeur si bien que toutes les cellules qui afficheront faux correspondront à une valeur non trouvée donc unique à la colonne
B.
Il ne restera alors plus qu'à activer le filtre automatique de la colonne D et à choisir
Non vides dans la liste de choix pour avoir les valeurs recherchées affichées dans la colonne
D.
Pour le bon fonctionnement des recherches la colonne A doit être triée de préférence par ordre croissant.
Il est bien sur possible d'étendre la recherche à la colonne B. Pour cela deux colonnes doivent être ajoutées.
Pour télécharger le document Excel, cliquer ici.
Afficher le résultat d'une recherche effectuée depuis une cellule:
La recherche s'effectue dans la base de données débutant à la rangée 7.
Le contenu de la colonne de recherche "num ordre" doit toujours être triée par ordre croissant.
La cellule B2 comporte le numéro à saisir et sur lequel porte la recherche.
Dans les cellules E2, F2 et G2 apparaît le résultat de la recherche.
E2 =RECHERCHEV(B2;A9:D22;2)
Recherche verticale sur la première colonne de la plage A9:D22 avec comme
critère le contenu de B2 et comme résultat le contenu de la cellule correspondant de la 2ème rangée de la plage.
F2 =RECHERCHEV(B2;A9:D22;3)
Même raisonnement que ci-dessus mais avec comme résultat le contenu de la cellule correspondant de la 3ème rangée de la plage.
Et ainsi de suite pour F3 et les cellules qui pourraient être
ajoutées afin de compléter la base de données.
Pour télécharger le document Excel, cliquer ici.
Occurences d'une recherche verticale dans une même cellule:
La fonction personnalisée RechVTous dont le code VBA figure ci-dessous doit être ajoutée aux fonctions classiques.
Pour cela le code VBA est àcopier dans un module standard de VBAProject.
Function RechVTous(v, champRech As Range, ChampRetour As Range, separateur)
|
La fonction RechVTous est ensuite accessible comme les fonctions Excel, dans la catégorie Personnalisées.
Pour télécharger le document Excel, cliquer ici.
Rechercher la plus grande valeur d'un même critère:
Pour trouver la plus grande valeur d'une colonne (B) correspondant à une donnée d'une autre colonne (A), on peut utiliser la formule matricielle:
{=MAX(SI(A$4:A$27=E5;B$4:B$27))}
Pour valider une fonction matricielle utiliser les touches Ctrl+Maj+Entrée, ce qui ajoutera les crochets {} qui ne doivent pas être ajoutés manuellement.
Pour télécharger le document Excel, cliquer ici.
Afficher les résultats d'une même recherche:
La fonction RECHERCHEV permet de trouver la valeur correspondant à une donnée.
Seulement lorsqu’à une même donnée correspondent plusieurs valeurs, seule le première est renvoyée.
Pour remédier à cela et permettre d’afficher toutes les valeurs il est possible d’utiliser la formule matricielle
{=INDEX(plagevaleurs;PETITE.VALEUR(SI(plagedonnées=donnée;LIGNE(INDIRECT("1:"&LIGNES(plagedonnées))));LIGNES($1:1)))}
à dérouler vers le bas.
Pour valider une fonction matricielle utiliser les touches Ctrl+Maj+Entrée, ce qui ajoutera les crochets {} qui ne doivent pas être ajoutés manuellement.
Pour télécharger le document Excel, cliquer ici.
Rechercher un caractère générique:
Pour effectuer la reherche d'un caractère générique (? *) il faut le faire précéder du signe ~.
Exemple: =NB.SI(A2:G2;"~*")>0
Fonction RECHERCHEV non applicable:
La fonction RECHERCHEV permet de trouver des valeurs situées à droite de la colonne contenant les données.
Lorsque l'on veut trouver des valeurs situées à gauche de la colonne des données sans pour autant ajouter de colonnes intermédiaires il est possible d'utiliser la formule =INDEX(A11:A35;EQUIV(A7;C11:C35;0)) comme dans l'exemple ci-dessous.
Pour télécharger le document Excel, cliquer ici.
Pour faire une recherche d'après un tableau comme ci-dessous en connaissant le produit et le poid,
Il faut utiliser la formule =INDEX(prix;EQUIV(A2;produits;0);EQUIV(B2;poids;0)) pour connaitre le prix (formule en C2).
Pour télécharger le document Excel, cliquer ici.