Développer des outils de visualisation de données spatiales personnalisées, Excel VBA

Développer des outils de visualisation de données spatiales personnalisées, Excel VBA

Voici une explication détaillée sur la façon de développer des outils de visualisation de données spatiales personnalisées dans Excel en utilisant VBA.
Étape 1 : Préparation des données
Avant de commencer toute visualisation, il est important de préparer vos données. Dans le cas de la visualisation de données spatiales, les données peuvent inclure des coordonnées (latitude, longitude), des noms de régions, des valeurs (comme des ventes, la population ou d’autres indicateurs) et d’autres variables pertinentes.
Exemple de données (pour la visualisation) :
Supposons que vous travaillez avec des données contenant les colonnes suivantes :

    • Région : Le nom de la zone ou de l’emplacement.
    • Latitude : La latitude de la région.
    • Longitude : La longitude de la région.
    • Valeur : La valeur que vous souhaitez visualiser (cela pourrait être des ventes, la population, etc.).
Région Latitude Longitude Valeur
New York 40.7128 -74.0060 15000
Los Angeles 34.0522 -118.2437 20000
Chicago 41.8781 -87.6298 12000
Miami 25.7617 -80.1918 8000

Étape 2 : Configuration d’Excel
Dans cette étape, nous allons préparer le classeur Excel pour qu’il puisse gérer les données et configurer les éléments nécessaires pour la visualisation.
2.1 Importation des données dans Excel
Assurez-vous que les données spatiales sont correctement organisées dans Excel (comme dans le tableau ci-dessus). Placez ces données dans une feuille de calcul nommée Data.
2.2 Ajouter une carte ou un graphique
Bien qu’Excel ne dispose pas de fonctionnalités de carte natives (sauf si vous utilisez Power Map), vous pouvez créer une visualisation personnalisée à l’aide de VBA et d’outils de graphiques standards comme un graphique en bulles ou un graphique en nuage de points. Nous utiliserons un graphique en nuage de points, où nous allons placer la latitude sur l’axe Y et la longitude sur l’axe X. La valeur peut être représentée par la taille ou la couleur des points.
2.3 Configurer un bouton pour exécuter la macro
Pour exécuter le processus de visualisation via VBA, nous allons créer un bouton qui exécutera la macro. Voici comment ajouter le bouton :
1. Allez dans l’onglet Développeur.
2. Cliquez sur Insertion dans la section Contrôles, puis choisissez Bouton.
3. Dessinez le bouton sur la feuille de calcul à l’endroit où vous souhaitez qu’il apparaisse.
4. Cliquez avec le bouton droit sur le bouton, sélectionnez Assigner une macro, et nous allons assigner la macro que nous allons écrire ensuite.
Étape 3 : Codage VBA
Maintenant, nous allons écrire le code VBA pour générer la visualisation des données spatiales à l’aide d’un graphique en nuage de points.
3.1 Ouvrir l’éditeur VBA
Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
3.2 Créer un nouveau module
Dans l’éditeur VBA, allez dans Insertion > Module pour créer un nouveau module pour votre code.
3.3 Écrire le code de la macro

Sub CreateSpatialVisualization()
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim lastRow As Long
    Dim i As Long
    ' Étape 1 : Définir l'objet feuille de calcul
    Set ws = ThisWorkbook.Sheets("Data")
    ' Étape 2 : Trouver la dernière ligne des données dans la feuille Data
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    ' Étape 3 : Créer un nouvel objet graphique en nuage de points
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=600, Top:=100, Height:=400)
    ' Étape 4 : Définir le type de graphique comme nuage de points
    chartObj.Chart.ChartType = xlXYScatter
    ' Étape 5 : Définir les séries de données pour le graphique
    With chartObj.Chart.SeriesCollection.NewSeries
        .XValues = ws.Range("C2:C" & lastRow) ' Valeurs de Longitude
        .Values = ws.Range("B2:B" & lastRow) ' Valeurs de Latitude
        .Name = "Données Spatiales"
        ' Étape 6 : Ajuster la taille des bulles en fonction de la "Valeur"
        .BubbleSizes = ws.Range("D2:D" & lastRow)
    End With
    ' Étape 7 : Personnaliser l'apparence du graphique
    With chartObj.Chart
        .HasTitle = True
        .ChartTitle.Text = "Visualisation des Données Spatiales"
        .Axes(xlCategory).HasTitle = True
        .Axes(xlCategory).AxisTitle.Text = "Longitude"
        .Axes(xlValue).HasTitle = True
        .Axes(xlValue).AxisTitle.Text = "Latitude"
        .Axes(xlValue).MinimumScale = -90 ' Plage de latitude de -90 à 90
        .Axes(xlValue).MaximumScale = 90
        .Axes(xlCategory).MinimumScale = -180 ' Plage de longitude de -180 à 180
        .Axes(xlCategory).MaximumScale = 180
    End With
    ' Étape 8 : Formater le graphique pour le rendre plus attrayant
    With chartObj.Chart.PlotArea
        .Interior.Color = RGB(255, 255, 255) ' Couleur de fond
    End With
End Sub

Explication du code :

  • Définir l’objet feuille de calcul (ws) : Nous assignons la feuille de calcul nommée Data à la variable ws.
  • Trouver la dernière ligne (lastRow) : Cela permet de gérer toutes les données, quelle que soit leur quantité.
  • Créer le graphique en nuage de points (chartObj) : Nous ajoutons un nouveau graphique et définissons son type comme étant un nuage de points (xlXYScatter).
  • Définir les valeurs X et Y : Nous définissons les valeurs de l’axe X comme étant les longitudes et celles de l’axe Y comme étant les latitudes.
  • Tailles des bulles : Nous ajustons la taille des points en fonction de la colonne Valeur, ce qui permettra de représenter la grandeur de chaque région.
  • Personnalisation du graphique : Nous définissons le titre du graphique, les titres des axes et les plages d’axes pour une meilleure lisibilité.
  • Formatage : Nous ajustons la couleur de fond de la zone du graphique.

Étape 4 : Exécuter la macro
Après avoir écrit le code VBA, vous pouvez exécuter la macro pour générer votre visualisation spatiale.
4.1 Assigner la macro au bouton
Si vous avez déjà créé un bouton, assignez la macro CreateSpatialVisualization à ce bouton :
1. Cliquez avec le bouton droit sur le bouton et sélectionnez Assigner une macro.
2. Sélectionnez CreateSpatialVisualization dans la liste.
4.2 Exécuter la macro
Cliquez sur le bouton pour exécuter la macro. Cela générera automatiquement un graphique en nuage de points sur votre feuille Excel, visualisant les données spatiales avec des tailles de bulles représentant les valeurs associées à chaque région.
Sortie :

  • Graphique en nuage de points : Le résultat de la macro sera un graphique en nuage de points avec des points représentant la latitude et la longitude de chaque région. La taille de chaque point reflétera la valeur associée à cette région (par exemple, la population ou les ventes). Le graphique aura également des titres pour les axes et un titre principal pour plus de clarté.

Cette approche vous permet de créer des visualisations de données spatiales personnalisées directement dans Excel en utilisant VBA. Vous pouvez personnaliser davantage l’apparence du graphique, ajouter plus de points de données ou ajuster la représentation des valeurs selon vos besoins.
Améliorations supplémentaires :
1. Coloration conditionnelle : Vous pourriez modifier le code pour colorer les bulles différemment en fonction de la valeur (par exemple, en utilisant une logique de Mise en forme conditionnelle ou VBA).
2. Carte interactive : Si vous êtes intéressé par des cartes plus avancées (comme des cartes géographiques), envisagez d’intégrer Power BI ou d’autres outils de cartographie, car Excel a des limitations dans ce domaine.
Il s’agit d’une méthode simple mais puissante pour générer des visualisations spatiales dans Excel à l’aide de VBA.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x