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.