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