Ajout d’étiquettes pour le premier et le dernier point de données sur le graphique avec Excel VBA

L’une des meilleures pratiques pour créer des tableaux de bord est d’éviter de surcharger l’utilisateur avec trop de données une fois – en particulier sur les graphiques, où se concentrer sur des données non pertinentes peut vous distraire des informations les plus importantes.
L’un des meilleurs moyens pour les développeurs  de se concentrer sur les informations clés consiste à limiter le nombre d’étiquettes de données aux seuls points clés. Il s’agit généralement du premier et du dernier point de données.
L’ajustement continu des étiquettes à mesure que de nouvelles données deviennent disponibles ou lors de la création d’un nouveau tracé peut être une tâche fastidieuse. La macro décrite ci-dessous automatise le processus d’ajout d’étiquettes de données aux premier et dernier points de données.
Comment ça marche?
Tous les graphiques contiennent un objet de sélection SeriesCol qui stocke divers éléments
données rie. La macro exécute une boucle pour toutes les séries, les activant une par une. Après avoir activé une série, diverses modifications peuvent être apportées à l’aide de nombreuses propriétés. Dans ce cas, nous lirons les étiquettes de données pour le premier et le dernier point de données de la série.

Sub AjoutEtiquettes()

'Étape 1: Déclaration des variables

Dim oChart As Chart

Dim MySeries As Series

'Étape 2: Afficher le graphique actif

On Error Resume Next

Set oChart = ActiveChart

'Étape 3: Terminer si aucun graphique n'est sélectionné

If oChart Is Nothing Then

MsgBox "Sélectionnez d'abord un graphique."

Exit Sub

End If

'Étape 4: commencez une boucle pour une série dans le graphique

For Each MySeries In oChart.SeriesCollection

'Étape 5: supprimer les étiquettes de données existantes

MySeries.ApplyDataLabels (xlDataLabelsShowNone)

'Étape 6: Ajouter des étiquettes de données au premier et au dernier point de données

MySeries.Points(1).ApplyDataLabels

MySeries.Points(MySeries.Points.Count).ApplyDataLabels

MySeries.DataLabels.Font.Bold = True

'Étape 7: Passez à la série suivante

Next MySeries

End Sub

 

Commentaires :

1. Dans la première étape, deux variables sont déclarées. La variable oChart sera utilisée comme conteneur pour ce graphique. La variable MySeries sera utilisée comme conteneur pour chacune des séries de données de ce graphique.

2. La macro a été conçue pour que les modifications soient appliquées au graphe sélectionné. Par conséquent, pour que la macro fonctionne, le graphique doit être sélectionné. Il a été supposé que la macro est censée fonctionner sur le graphique sur lequel on a cliqué précédemment.

Dans la deuxième étape, l’oChart est défini sur le graphique actif (ActiveChart). Si le graphique n’est pas sélectionné, une erreur sera renvoyée. Par conséquent, l’instruction On Error Resume Next a été clairement suivie. Il indique à Excel de continuer à s’exécuter lorsqu’une erreur se produit.

3. La troisième étape vérifie si oChart contient les données du tracé. Si la variable oChart a la valeur Nothing, cela signifie qu’aucun graphique n’a été sélectionné avant d’exécuter la macro. Dans ce cas, l’utilisateur reçoit un message approprié et la macro se termine.

4. À l’étape quatre, l’instruction For Each exécute une boucle pour la série de données dans les graphiques actifs (SeriesCollection).

5. S’il existe déjà des étiquettes de données dans le graphique, supprimez-les. Cela peut être fait avec la méthode xlDataLabelsShowNone.

6. Chaque série de données contient une collection Points qui stocke tous les points de données du tracé. Comme la plupart des collections du modèle objet Excel, chaque point de données a un numéro d’index.

À l’étape six, ces numéros d’index ont été utilisés pour le premier et le dernier point de données. Quant au premier point, le problème est simple: il a été spécifié avec le code MySeries.Points (1). Ensuite, il vous suffit d’utiliser la méthode ApplyDataLabels et l’étiquette de données apparaîtra à ce stade particulier.

Le dernier point de données nécessite plus d’efforts. Tout d’abord, la méthode MySeries.Points .Count a été utilisée, ce qui nous a permis d’obtenir des informations sur le nombre de points de données dans la série. Ce numéro est également le numéro d’index du dernier point de données. C’est ainsi que le dernier point de données a été indiqué dans l’instruction et une étiquette correspondant a été placée sur le graphique.

Enfin, nous définissons également une mise en forme commune, rendant les polices des étiquettes en gras.

7. À l’étape sept, la boucle passe à la série suivante. Lorsque la boucle a traversé toutes les séries de données du tracé, la macro se ferme.

Comment appliquer une macro?

Le meilleur endroit pour stocker cette macro est le classeur de macros personnelles. De cette façon, la macro sera toujours disponible. Le classeur de macros personnelles est chargé chaque fois que vous démarrez Excel. Dans la fenêtre Projet VBE, le fichier sera nommé PERSONAL.XLSB.
1. Utilisez la combinaison de touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur PERSONAL.XLSB.
3. Sélectionnez Insertion / Module.
4. Entrez ou collez le code dans le module nouvellement créé.
Si le fichier PERSONAL.XLSB n’est pas visible, cela signifie qu’il n’a pas encore été créé. Enregistrez la macro et sélectionnez le classeur de macros personnelles comme stockage.
Pour enregistrer une macro dans le classeur de macros personnelles, sélectionnez-le dans la boîte de dialogue Enregistrer une macro qui s’affiche lors de l’enregistrement d’une macro. Cette option est disponible dans la fenêtre Enregistrer une macro dans la liste déroulante Enregistrer la macro dans. Enregistrez simplement le clic de quelques cellules, puis remplacez la macro par celle décrite précédemment.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x