Trouver la méthode de l’objet Range
Dans cet article, nous utiliserons la méthode find de l’objet Range pour mettre en surbrillance la cellule qui contient la valeur similaire aux mots de recherche.
Les données brutes de cet exemple se composent du nom de l’entreprise, de l’ID d’employé et du nom de l’employé. Nous avons des données brutes provenant de différentes entreprises.
Dans cet exemple, nous voulons rechercher et mettre en évidence la cellule qui correspond au nom de société défini dans la cellule I8.
Pour mettre en évidence les cellules avec des noms de société particuliers, entrez le nom de la société dans la cellule I8 et cliquez sur le bouton «Soumettre». Le bouton «Soumettre» est associé à la macro «HighlightMatchingResult».
La macro «HighlightMatchingResult» mettra en évidence la cellule qui contient le nom de la société correspondant avec la couleur jaune.
Explication logique
Dans cet exemple, nous avons créé une fonction personnalisée «FindRange» et une macro «HighlightMatchingResult».
La fonction personnalisée «FindRange» créera une plage avec toutes les cellules contenant une valeur similaire au nom de l’entreprise recherché.
La macro «HighlightMatchingResult» appelle la fonction personnalisée et met en évidence la plage renvoyée par la fonction personnalisée en couleur jaune.
Explication du code
SearchRange.Find (Quoi: = FindItem)
Le code ci-dessus est utilisé pour trouver la cellule qui contient une valeur similaire à FindItem.
Union (FindRange, MatchingRange)
Le code ci-dessus est utilisé pour combiner deux plages en une seule plage.
SearchRange.FindNext (MatchingRange)
Le code ci-dessus est utilisé pour trouver la cellule suivante qui contient une valeur similaire à FindItem.
Veuillez suivre ci-dessous pour le code
Option Explicit Function FindRange(FindItem As Variant, SearchRange As Range) As Range 'Declaring variables Dim MatchingRange As Range Dim FirstAddress As String With SearchRange 'Finding the range whose value match with FindItem Set MatchingRange = .Find(What:=FindItem) 'Checking whether any match exist If Not MatchingRange Is Nothing Then Set FindRange = MatchingRange 'Getting the address of first matching range FirstAddress = MatchingRange.Address Do 'Union of all the ranges whose value match with FindItem Set FindRange = Union(FindRange, MatchingRange) 'Finding the next range whose value match with FindItem Set MatchingRange = .FindNext(MatchingRange) Loop While MatchingRange.Address <> FirstAddress End If End With End Function Sub HighlightMatchingResult() 'Declaring variables Dim MappingRange As Range Dim UserInput As String 'Getting value input by user from cell I8 UserInput = Range("I8").Value 'Calling FindRange custom function Set MappingRange = FindRange(UserInput, ActiveSheet.Columns("A")) 'Highlighting the mapped range with Yellow color MappingRange.Interior.Color = RGB(255, 255, 0) End Sub
Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.
Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]