VBA Rechercher la valeur dans la colonne

Cet article montrera comment utiliser VBA pour rechercher une valeur dans une colonne.

Nous pouvons utiliser Range.Find pour parcourir une colonne de valeurs dans VBA afin de trouver toutes les cellules de la plage qui correspondent aux critères spécifiés.

Parcourir une colonne avec Range.Find et Range.FindNext

Dans l'exemple ci-dessous, nous parcourons les données de la colonne et recherchons le mot "En retard". Lorsqu'il trouve le mot, il marque la cellule en changeant la couleur du texte de la cellule en rouge. Il utilisera ensuite la méthode Range.FindNext pour passer à la cellule suivante et continuer à rechercher le mot, en poursuivant la boucle jusqu'à la fin de la plage de cellules spécifiée.

1234567891011121314151617 Sous FindLoop()Dim strFirstAddress en tant que chaîneDim rngFindValue As RangeDim rngRechercher comme plageDim rngFind As RangeDéfinir rngFind = ActiveSheet.Range("F1:F17")Définir rngSearch = rngFind.Cells(rngFind.Cells.Count)Définir rngFindValue = rngFind.Find("En retard", rngSearch, xlValues)Si non rngFindValue n'est rien, alorsstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedFaireDéfinir rngFindValue = rngFind.FindNext(rngFindValue)rngFindValue.Font.Color = vbRedBoucle jusqu'à ce que rngFindValue.Address = strFirstAddressFin siFin du sous-marin

Lorsque le code s'exécute, il enregistre l'adresse de la première cellule où se trouvent les données dans la variable strPremièreAdresse et change la couleur du texte en rouge. Une boucle est alors créée pour trouver la cellule suivante qui contient les données requises. Lorsque la valeur est trouvée, la couleur du texte est changée en rouge, puis l'adresse de la cellule où la valeur est trouvée est comparée à la chaîne strPremièreAdresse. Si ce ne sont pas les mêmes, la boucle continue, trouvant chaque instance du mot « En retard ». Une fois que la boucle atteint la fin de la plage de cellules (c'est-à-dire F17), elle recommencera au début de la plage (F1) et continuera à boucler. Une fois qu'il atteint l'adresse de cellule F3 pour la deuxième fois, car il s'agit de la même que la variable stockée strPremièreAdresse, la boucle s'arrêtera.

wave wave wave wave wave