VBA : Comment mettre en évidence les N premières valeurs dans la colonne



Vous pouvez utiliser la syntaxe suivante dans VBA pour mettre en évidence les N premières valeurs d’une colonne dans Excel :

Sub HighlightTopN()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range("A2:A11")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Cette macro particulière mettra en évidence les 3 valeurs les plus élevées de la plage A2:A11 .

Pour mettre en évidence un nombre différent de valeurs supérieures, modifiez simplement la ligne For i = 1 To 3 pour avoir une limite supérieure différente.

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

Exemple : mettre en surbrillance les N premières valeurs dans la colonne à l’aide de VBA

Supposons que nous ayons les valeurs suivantes dans la colonne A de notre feuille de calcul Excel :

Nous pouvons créer la macro suivante pour mettre en évidence les 3 premières valeurs les plus grandes de la plage A2:A11 :

Sub HighlightTopN()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range("A2:A11")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

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

VBA met en évidence les N premières valeurs dans la colonne

Notez que les cellules contenant les 3 valeurs les plus élevées dans la colonne A sont désormais mises en surbrillance.

Notez que vous pouvez également modifier la couleur à utiliser pour la mise en surbrillance ainsi que le nombre de valeurs principales à mettre en surbrillance.

Par exemple, nous pouvons utiliser la macro suivante pour mettre en surbrillance les 5 premières valeurs de la colonne A en vert :

Sub HighlightTopN()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range("A2:A11")
    
    'highlight top 5 values in range
    For Each rng In EntireRange
        
        For i = 1 To 5
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbGreen
        End If
        Next
    
    Next rng

End Sub

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

Notez que les cellules contenant les 5 valeurs les plus élevées dans la colonne A sont désormais surlignées en vert.

Ressources additionnelles

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

VBA : Comment appliquer une mise en forme conditionnelle aux cellules
VBA : Comment appliquer une mise en forme conditionnelle aux valeurs en double
VBA : Comment trouver la valeur dans une colonne

Ajouter un commentaire

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