Créer une visualisation dynamique des données, Excel VBA

Créer une visualisation dynamique des données, Excel VBA

Voici un code VBA détaillé avec explication pour créer une visualisation dynamique des données dans Excel.
Étape 1 : Préparer le classeur Excel
1. Ouvrez un nouveau classeur Excel.
2. Entrez quelques données numériques dans la colonne A (par exemple, A1:A10).
3. Laissez la colonne B vide ; nous l’utiliserons pour la visualisation dynamique.
4. Assurez-vous que le nom de la feuille est « Sheet1 » (ou modifiez le code en conséquence).
Étape 2 : Ouvrir l’éditeur Visual Basic for Applications (VBA)
1. Appuyez sur ALT + F11 pour ouvrir l’éditeur VBA.
2. Cliquez sur Insertion > Module pour ajouter un nouveau module.
Étape 3 : Écrire le code VBA
Ajoutez maintenant le code suivant dans le module :

Sub DynamicRangeVisualization()
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim visualizationRange As Range
    Dim cell As Range
    Dim maxValue As Double
    Dim barLength As Integer
    Dim i As Integer
    ' Définir la feuille de travail
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ' Définir la plage de données (colonne A)
    Set dataRange = ws.Range("A1:A" & ws.Cells(Rows.Count, 1).End(xlUp).Row)
    ' Effacer les visualisations précédentes
    ws.Range("B:B").ClearContents
    ' Trouver la valeur maximale dans la plage de données
    maxValue = Application.WorksheetFunction.Max(dataRange)
    ' Parcourir chaque cellule de la plage de données
    For Each cell In dataRange
        ' Calculer la longueur de la barre (par rapport à la valeur maximale)
        If maxValue > 0 Then
            barLength = Int((cell.Value / maxValue) * 20) ' Échelle des barres sur une longueur de 20
        Else
            barLength = 0
        End If
        ' Créer une visualisation sous forme de barre avec des caractères "█" dans la colonne B
        If cell.Value > 0 Then
            ws.Cells(cell.Row, 2).Value = String(barLength, "█")
        Else
            ws.Cells(cell.Row, 2).Value = ""
        End If
    Next cell
    ' Formater la colonne de visualisation
    ws.Columns("B").AutoFit
    ' Alerter l'utilisateur
    MsgBox "Visualisation dynamique terminée !", vbInformation, "Terminé"
End Sub

Étape 4 : Explication du code VBA
1. Définir les variables

  • ws: Référence à la feuille de travail active (« Sheet1 »).
  • dataRange: Plage de données dans la colonne A.
  • visualizationRange: Plage de sortie dans la colonne B.
  • maxValue: Valeur maximale dans la colonne A (utilisée pour l’échelle des barres).
  • barLength: Longueur de la barre (calculée par rapport à la valeur maximale).
  • i: Utilisé comme compteur pour la boucle.

2. Définir la plage de données

  • Set dataRange = ws.Range("A1:A" & ws.Cells(Rows.Count, 1).End(xlUp).Row)
    → Sélectionne dynamiquement toutes les cellules non vides de
    la colonne A.

3. Effacer les visualisations précédentes

  • ws.Range("B:B").ClearContents
    → Efface toutes les valeurs de la colonne B avant de générer de nouvelles visualisations.

4. Trouver la valeur maximale

  • maxValue = Application.WorksheetFunction.Max(dataRange)
    → Trouve la
    plus grande valeur dans la colonne A.

5. Boucle à travers chaque cellule de la colonne A

  • For Each cell In dataRange
    → Parcourt toutes les cellules de la colonne A.

6. Calculer la longueur de la barre

  • barLength = Int((cell.Value / maxValue) * 20)
    → Échelonne la
    longueur des barres proportionnellement (longueur maximale = 20 caractères).

7. Générer la visualisation sous forme de barre

  • ws.Cells(cell.Row, 2).Value = String(barLength, "█")
    → Crée une chaîne de caractères
    dans la colonne B pour chaque cellule de la colonne A.

8. Formater la colonne

  • ws.Columns("B").AutoFit
    → Ajuste automatiquement la largeur de la colonne B.

9. Afficher un message de fin

  • MsgBox "Visualisation dynamique terminée !", vbInformation, "Terminé"
    → Affiche un message à l’utilisateur lorsque l’exécution est terminée.

Étape 5 : Exécuter la macro
1. Retournez sur Excel.
2. Appuyez sur ALT + F8, sélectionnez DynamicRangeVisualization, puis cliquez sur Exécuter.
3. La colonne B affichera des barres dynamiques correspondant aux valeurs de la colonne A.
Exemple de sortie attendue
Avant d’exécuter la macro

A (Valeurs) B (Visualisation)
10
50
80
30
100

Après avoir exécuté la macro

A (Valeurs) B (Visualisation)
10 ███
50 ███████████
80 ████████████████
30 ██████
100 ██████████████████

Améliorations possibles

  • Modifiez le facteur d’échelle (20) pour augmenter ou réduire la longueur des barres.
  • Utilisez d’autres symboles (par exemple, « | », « * ») pour la visualisation.
  • Appliquez un formatage conditionnel pour améliorer l’apparence visuelle.
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x