Créer une mise en surbrillance dynamique de la plage de données, Excel VBA

Créer une mise en surbrillance dynamique de la plage de données, Excel VBA

Voici un code VBA détaillé pour créer une mise en surbrillance dynamique de la plage de données dans Excel. Ce script va mettre en évidence une plage dynamique en fonction de certaines conditions et se mettra à jour automatiquement lorsque de nouvelles données seront ajoutées ou supprimées. 

Objectif 

Le code VBA va : 

  1. Identifier une plage dynamique (par exemple, une colonne avec des données dont la longueur varie). 
  2. Mettre en surbrillance cette plage en fonction de conditions spécifiques (par exemple, des valeurs supérieures à un seuil). 
  3. Mettre à jour la mise en surbrillance dynamiquement lorsque des données sont ajoutées ou supprimées. 

Code VBA 

Voici le script VBA bien commenté pour implémenter la mise en surbrillance dynamique de la plage : 

Option Explicit 
Sub HighlightDynamicRange() 
    Dim ws As Worksheet 
    Dim lastRow As Long 
    Dim rng As Range 
    Dim cell As Range 
    Dim highlightColor As Long 
    Dim threshold As Double 
    ' Définir la feuille de calcul (modifiez selon vos besoins) 
    Set ws = ThisWorkbook.Sheets("Sheet1") 
    ' Définir la colonne à scanner (par exemple, la colonne A) 
    Dim col As String 
    col = "A" 
    ' Trouver la dernière ligne utilisée dans la colonne spécifiée 
    lastRow = ws.Cells(ws.Rows.Count, col).End(xlUp).Row 
    ' Définir la plage dynamique 
    Set rng = ws.Range(ws.Cells(2, col), ws.Cells(lastRow, col)) ' Commence à la ligne 2 pour ignorer les en-têtes 
    ' Définir la couleur de surbrillance (jaune) 
    highlightColor = RGB(255, 255, 0) 
    ' Définir le seuil de la condition (par exemple, mettre en surbrillance les valeurs supérieures à 50) 
    threshold = 50 
    ' Effacer la mise en forme précédente 
    rng.Interior.ColorIndex = xlNone 
    ' Boucler à travers chaque cellule et appliquer la mise en forme conditionnelle 
    For Each cell In rng 
        If IsNumeric(cell.Value) Then 
            If cell.Value > threshold Then 
                cell.Interior.Color = highlightColor 
            End If 
        End If 
    Next cell 
    ' Nettoyage 
    Set rng = Nothing 
    Set ws = Nothing 
    MsgBox "Mise en surbrillance appliquée avec succès !", vbInformation, "Plage Dynamique Mise en Surbrillance" 
End Sub

Explication détaillée 

  1. Définition de la feuille de calcul et des variables
  • Le script commence par définir la feuille de calcul (ws) et la colonne (col) à vérifier. 
  • lastRow permet de trouver la dernière ligne utilisée dans la colonne dynamiquement. 
  1. Identification de la plage dynamique
  • Le script utilise :  

lastRow = ws.Cells(ws.Rows.Count, col).End(xlUp).Row 

Cette ligne trouve la dernière cellule non vide dans la colonne « A » (modifiable). 

  • La plage dynamique est ensuite définie avec :  

Set rng = ws.Range(ws.Cells(2, col), ws.Cells(lastRow, col)) 

Cela garantit que la plage commence à partir de la ligne 2 (excluant les en-têtes). 

  1. Application de la mise en surbrillance conditionnelle
  • Une boucle parcourt chaque cellule de la plage dynamique. 
  • Si une cellule contient une valeur numérique supérieure à 50, la cellule est mise en surbrillance en jaune (RGB(255, 255, 0)). 
  • Avant d’appliquer la nouvelle mise en surbrillance, le script efface toute mise en forme précédente. 
  1. Nettoyage
  • Le script libère de la mémoire en définissant les objets à Nothing. 
  • Une boîte de message informe l’utilisateur lorsque l’exécution est réussie. 

Comment l’utiliser 

  1. Ouvrez Excel et appuyez sur ALT + F11 pour ouvrir l’éditeur VBA. 
  2. Insérez un nouveau module (Insertion → Module). 
  3. Copiez et collez le code dans le module. 
  4. Exécutez la macro (F5). 
  5. Modifiez col, threshold et highlightColor selon vos besoins. 
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x