VBA : Comment trouver une valeur dans une colonne (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante dans VBA pour rechercher une valeur dans une colonne dans Excel :

Sub FindValue()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns("A:A")

'specify string to look for
findString = "Rockets"

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

Cette macro particulière recherchera la chaîne « Rockets » dans toute la colonne A de la feuille actuellement active et, si elle est trouvée, changera la couleur de police de la cellule en rouge et mettra la police en gras.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Comment rechercher une valeur dans une colonne à l’aide de VBA

Supposons que nous disposions de l’ensemble de données suivant contenant des informations sur divers joueurs de basket-ball :

Supposons que nous souhaitions trouver le nom de l’équipe « Rockets » dans la colonne A et, une fois trouvé, convertir la couleur de police de la cellule en rouge et mettre la police en gras.

Nous pouvons créer la macro suivante pour ce faire :

Sub FindValues()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns("A:A")

'specify string to look for
findString = "Rockets"

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que la police dans la cellule contenant la chaîne « Rockets » est désormais rouge et grasse.

Toutes les autres cellules ont simplement conservé leur police noire.

Notez que l’argument MatchCase:=False dans le code indique à VBA d’effectuer une recherche insensible à la casse.

Ainsi, si le nom de l’équipe dans la colonne A était « fusées », la macro trouverait toujours cette chaîne et rendrait la police en rouge et en gras.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment écrire des fonctions AVERAGEIF et AVERAGEIFS
VBA : Comment écrire des fonctions SUMIF et SUMIFS
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *