Comment trouver une correspondance exacte en utilisant VBA dans Excel (5 façons)

  • Partage Ça
Hugh West

Si vous recherchez les moyens les plus simples de trouver une correspondance exacte en utilisant les éléments suivants VBA Commençons par l'article et découvrons les moyens de trouver une correspondance exacte.

Télécharger le cahier d'exercices

VBA Rechercher une correspondance exacte.xlsm

5 façons de trouver une correspondance exacte en utilisant VBA

J'ai utilisé le tableau suivant qui contient les enregistrements des résultats de certains étudiants. Je vais expliquer les différentes façons de trouver la correspondance exacte en utilisant ce tableau avec l'aide de VBA.

Pour ce faire, j'ai utilisé la version 365 de Microsoft Excel, vous pouvez utiliser toute autre version selon votre convenance.

Méthode 1 : Trouver une correspondance exacte dans une plage de cellules

Si vous voulez trouver une correspondance exacte d'une chaîne de caractères comme le nom d'un étudiant et ensuite trouver la position de la cellule de cet étudiant, vous pouvez le faire en suivant cette méthode.

Ici, je vais trouver une correspondance exacte pour l'étudiant nommé "Joseph Micahel" .

Step-01 :

➤Go to Développeur Tab>> ; Visual Basic Option

Ensuite, le Éditeur Visual Basic s'ouvrira.

➤Go to Insérer Tab>> ; Module Option

Après cela, un Module sera créé.

Step-02 :

➤Write the following code

 Sub searchtxt() Dim rng As Range Dim str As String Set rng = Sheets("exact match").Range("B5:B10").Find("Joseph Michael", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address MsgBox (rng & ; " in " & ; str) End If End Sub 

Ici, "correspondance exacte" est le nom de la feuille et "B5:B10" est l'éventail des noms des élèves, et "Joseph Michael" est le nom de l'étudiant qui doit être trouvé.

rng est déclaré comme un objet de gamme et str comme une variable de type chaîne de caractères pour stocker l'adresse de l'élément recherché.

Le site SI attribuera l'adresse de l'élément à l'élément str variable.

➤Press F5

Résultat :

Après cela, vous obtiendrez ce qui suit Boîte à messages contenant la position de la cellule de l'élève nommé "Joseph Michael" .

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

Méthode 2 : Trouver la correspondance exacte et la remplacer à l'aide de VBA

Je vais vous montrer comment trouver le nom de l'étudiant indiqué et le remplacer par un autre nom parce que, par erreur, ce nom a été écrit ici. Vous pouvez trouver la chaîne de caractères souhaitée et la remplacer en suivant cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub FindandReplace() Dim rng As Range Dim str As String With Worksheets("find&replace").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End Sub 

Ici, "trouver&remplacer" est le nom de la feuille et "B5:B10" est l'éventail des noms des élèves, et "Donald Paul" est le nom de l'étudiant qui doit être trouvé et ensuite "Henry Jackson" sera le nom de l'étudiant au lieu du précédent.

AVEC évitera la répétition du morceau de code dans chaque déclaration.

Le site SI attribuera l'adresse de l'élément à l'élément str et la variable DO La boucle remplacera toutes les occurrences du mot recherché.

➤Press F5

Résultat :

Ensuite, vous obtiendrez le nom du nouvel élève comme suit "Henry Jackson" .

Méthode 3 : Trouver une correspondance exacte et sensible à la casse

Si vous voulez trouver une correspondance sensible à la casse, suivez cette méthode. Ici, j'ai deux noms similaires l'un à l'autre mais il y a une différence dans la casse et selon la casse, je vais remplacer le nom du dernier élève.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub exactmatch() Dim rng As Range Dim str As String With Worksheets("case-sensitive").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End WithSous 

Ici, "sensible à la casse" est le nom de la feuille et "B5:B10" est l'éventail des noms des élèves, et "Donald Paul" est le nom de l'étudiant qui doit être trouvé, et ensuite "Henry Jackson" sera le nom de l'étudiant au lieu du précédent.

AVEC évitera la répétition du morceau de code dans chaque déclaration.

Le site SI attribuera l'adresse de l'élément à l'élément str et la variable DO La boucle remplacera toutes les occurrences du mot recherché.

➤Press F5

Résultat :

Maintenant, selon l'affaire, le nom de l'élève sera changé en "Henry Jackson" .

Lectures similaires :

  • Comment trouver une chaîne dans une cellule en utilisant VBA dans Excel (2 méthodes)
  • VBA Rechercher dans une colonne dans Excel (7 approches)
  • Comment trouver une chaîne de caractères avec VBA dans Excel (8 exemples)

Méthode-4 : Utilisation de la fonction InStr

Supposons que vous voulez faire correspondre Passez ou Ne pas correspondre aux noms des élèves en fonction de la Colonne de résultats Passez ou Échec a été écrite. Pour trouver cette chaîne de caractères dans le fichier Colonne de résultats et écrire "Passé" dans le Colonne d'état pour les étudiants qui ont passé l'examen, vous pouvez utiliser la fonction InStr .

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub Checkstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.Value, "Pass")> ; 0 Then cell.Offset(0, 1).Value = "Passed" Else cell.Offset(0, 1).Value = " " End If Next cell End Sub 

Ici, la plage de cellules est C5:C10 qui est le Colonne de résultats

InStr(cell. value, "Pass")> ; 0 est la condition où le nombre est supérieur à zéro (lorsque la cellule contient "Passe" ), la ligne suivante continuera et donnera la sortie dans la cellule adjacente comme suit Adopté .

Si la condition devient fausse, cela signifie qu'une cellule ne contient pas d'informations. "Passe" puis la ligne sous ELSE s'exécutera et donnera la valeur de sortie dans la cellule adjacente en tant que vierge .

Cette boucle se poursuit pour chaque cellule.

➤Press F5

Résultat :

Ensuite, vous obtiendrez le "Passé" pour les étudiants qui ont réussi.

Méthode-5 : Trouver la correspondance exacte et extraire les données

Si vous voulez extraire les données correspondantes pour un élève nommé "Michael James" alors vous pouvez suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & ; i), "Michael James")> ; 0 Then icount = icount + 1 Range("E" & ; icount & ; ":G" & ; icount) = Range("B" & ; i & ; ":D" & ; i).Value End If Next i End Sub 

Ici, j'ai utilisé B100 comme le Plage de la feuille active (vous pouvez utiliser n'importe quelle gamme en fonction de votre utilisation).

InStr(1, Range("B" & ; i), "Michael James")> ; 0 est la condition permettant de vérifier si la cellule de la colonne B contient Michael James .

Range("E" & ; icount & ; ":G" & ; icount) est la plage dans laquelle vous souhaitez obtenir vos données de sortie et Range("B" & ; i & ; ":D" & ; i).value donnera les valeurs de la colonne B à D .

➤Press F5

Résultat :

Ensuite, vous obtiendrez les données extraites suivantes pour les étudiants ayant le nom Michael James .

Section pratique

Pour vous entraîner vous-même, nous avons fourni un Pratique comme ci-dessous dans une feuille nommée Pratique S'il vous plaît, faites-le vous-même.

Conclusion

Dans cet article, j'ai essayé de couvrir les façons les plus simples de trouver une correspondance exacte en utilisant le logiciel de gestion de l'information. VBA dans Excel de manière efficace. Nous espérons que vous trouverez cet outil utile. Si vous avez des suggestions ou des questions, n'hésitez pas à nous en faire part.

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.