Comment utiliser la fonction Rechercher en VBA (6 exemples)

  • Partage Ça
Hugh West

L'une des fonctions les plus importantes et les plus utilisées que nous utilisons dans Application Visual Basic (VBA) Dans cet article, je vais vous montrer comment vous pouvez utiliser la fonction Fonction FIND d'Excel avec des exemples et des illustrations appropriés.

Télécharger le cahier d'exercices

Trouver une fonction en VBA dans Excel.xlsm

6 exemples rapides d'utilisation de la fonction FIND en VBA

Ici nous avons un ensemble de données avec le Noms de livres, auteurs et Prix de quelques livres d'une librairie appelée Martin Bookstore.

Aujourd'hui, notre objectif est de voir différents types d'utilisations de la Trouver la fonction de VBA de cet ensemble de données.

1. utiliser la fonction Rechercher en VBA sans paramètre

Vous pouvez utiliser le Trouver la fonction de VBA sans paramètres.

Il recherche ensuite une valeur spécifique dans une plage de cellules et renvoie la première correspondance trouvée.

Cherchons le nom "P. B. Shelly" dans la colonne Auteur ( C4:C13 ).

La ligne avec le Trouver la fonction le sera :

Set cell = Range("C4:C17").Find("P. B. Shelly")

L'intégralité Code VBA le sera :

Code VBA :

 Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub 

Sortie :

Il produit un Macro appelé Trouvez Si vous exécutez la macro, elle retournera $C$6 la première adresse de cellule avec le nom P. B. Shelly .

Lire la suite : Recherche dans une plage avec VBA dans Excel : y compris les correspondances exactes et partielles

2. appliquer la fonction Rechercher en VBA avec le paramètre After (pour lancer la recherche à partir d'une cellule spécifique)

Vous pouvez utiliser le Après avec le paramètre Trouver la fonction sur VBA Ensuite, il commencera à chercher une valeur en dessous d'une cellule dans une plage.

Par exemple, commençons à rechercher le nom "P. B. Shelly" de la cellule inférieure C6 .

La ligne de code sera :

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

Et l'ensemble Code VBA le sera :

Code VBA :

 Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub 

Sortie :

Il retournera $C$13 parce qu'il commence à chercher depuis le bas de la cellule C6 c'est à partir de la cellule C7 . alors, ça devient P. B. Shelly en cellule C13 d'abord.

Lire la suite : Comment trouver une chaîne dans une cellule en utilisant VBA dans Excel

Exécuter la fonction Rechercher en VBA en entourant le paramètre suivant (pour rechercher une valeur de manière circulaire)

Le site Après avec le paramètre Trouver la fonction recherche une valeur de manière circulaire

C'est-à-dire qu'il commence à chercher en dessous d'une cellule dans une plage, termine sa recherche dans la plage, puis recommence en haut de la plage.

Par exemple, commençons à chercher le nom "John Keats" de la cellule inférieure C8 en utilisant le Après paramètre.

La ligne de code sera :

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

Et l'ensemble Code VBA le sera :

Code VBA :

 Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub 

Sortie :

Il retournera $C$7 parce qu'il commence à chercher depuis le bas de la cellule C8 c'est à partir de la cellule C9 .

Il ne trouve rien jusqu'à la cellule C13 donc on repart de la cellule C4 et en trouve un dans la cellule C7 .

Lectures similaires :

  • Comment trouver une chaîne de caractères avec VBA dans Excel (8 exemples)
  • Trouver une correspondance exacte en utilisant VBA dans Excel (5 façons)
  • Comment rechercher et remplacer en utilisant VBA (11 façons)

4. utiliser la fonction Find en VBA avec le paramètre LookAt (pour une correspondance exacte ou partielle).

Vous pouvez utiliser le Trouver la fonction sur VBA avec le Regardez paramètre.

Utilisez LookAt = xlWhole pour un Exact match, et LookAt=xlPart pour un Partiel match.

Par exemple, essayons de savoir s'il existe un livre dont le nom est "Ode" dans le Nom du livre colonne ( B4:B13 ).

Si nous utilisons xlWhole dans la ligne de code :

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

La sortie montrera une erreur parce qu'elle ne trouvera pas de exact match.

Mais si vous utilisez :

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

Puis il reviendra $B$9 parce qu'il y a un livre avec le nom "Ode" en elle en cellule B7 Ode au rossignol.

Ainsi, le code complet de la partiel le match est :

Code VBA :

 Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub 

5) Utiliser la fonction Find en VBA avec le paramètre SearchDirection (pour spécifier la direction de la recherche)

Vous pouvez également utiliser le Trouver la fonction sur VBA avec le SearchDirection paramètre.

Utilisez SearchDirection = xlNext pour la recherche de De haut en bas .

Et SearchDirection = xlPrevious pour la recherche de De bas en haut .

Par exemple, essayons de trouver l'auteur Elif Shafak dans la colonne Auteur ( C4:C13 ).

Si nous utilisons xlNext dans la ligne de code :

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

Ensuite, il retournera $C$5 .

Mais si vous utilisez :

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

Puis il reviendra $C$11 .

Ainsi, le code complet pour la recherche de de bas en haut est :

Code VBA :

 Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub 

Fonction Find en VBA avec le paramètre MatchCase (pour une correspondance sensible ou non à la casse)

Enfin, vous pouvez utiliser le Trouver la fonction avec le MatchCase paramètre.

Utilisez MatchCase = True pour un sensible à la casse match , et MatchCase=False pour un insensible à la casse match.

Par exemple, essayons de trouver le livre "mère" dans le Nom du livre colonne ( B4:B13 ).

Si nous utilisons True dans la ligne de code :

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

La sortie montrera une erreur car elle ne trouvera pas de correspondance.

Mais si vous utilisez :

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

Puis il reviendra $B$9 parce qu'il y a un livre nommé "Mère" en cellule B8 .

Ainsi, le code complet de la insensible à la casse le match est :

Code VBA :

 Sub Find() Set cell = Range("B4:B13").Find("Mother", MatchCase:=False) MsgBox cell.Address End Sub 

Conclusion

Grâce à ces méthodes, vous pouvez utiliser la fonction Find dans une application Visual Basic. Si vous avez des questions, n'hésitez pas à nous les poser.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.