Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Position étiquette de données sur le graph en fonction du numéro du point de donnée : paire ou impaire

  • Initiateur de la discussion Initiateur de la discussion WIsh_
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

WIsh_

XLDnaute Occasionnel
Bonjour,

Je suis entrain de réaliser un graphique sur lequel j'ai beaucoup de "point de donnée". Les étiquettes de données s'affichent donc les unes sur les autres.
J'aimerais pouvoir mettre une macro qui indique:
- Si valeur du point paire, mettre l'étiquette au-dessus ;
- Si valeur du point impaire, mettre l'étiquette en-dessous;
ceci afin de simplifier ce qui suit, et de ne pas devoir modifier chaque fois la macro si j'ajoute de nouvelles données à mon graphique :

VB:
Private sub position()
ActiveSheet.ChartObjects("CE").Activate
    ActiveChart.FullSeriesCollection(1).Points(10).DataLabel.Select
    Selection.Position = xlLabelPositionBelow
    ActiveChart.FullSeriesCollection(1).Points(9).DataLabel.Select
    Selection.Position = xlLabelPositionAbove
    ActiveChart.FullSeriesCollection(1).Points(8).DataLabel.Select
    Selection.Position = xlLabelPositionBelow
    ActiveChart.FullSeriesCollection(1).Points(7).DataLabel.Select
    Selection.Position = xlLabelPositionAbove
    ActiveChart.FullSeriesCollection(1).Points(6).DataLabel.Select
    Selection.Position = xlLabelPositionBelow
    ActiveChart.FullSeriesCollection(1).Points(5).DataLabel.Select
    Selection.Position = xlLabelPositionAbove
    ActiveChart.FullSeriesCollection(1).Points(4).DataLabel.Select
    Selection.Position = xlLabelPositionBelow
    ActiveChart.FullSeriesCollection(1).Points(3).DataLabel.Select
    Selection.Position = xlLabelPositionAbove
    ActiveChart.FullSeriesCollection(1).Points(2).DataLabel.Select
    Selection.Position = xlLabelPositionBelow
    ActiveChart.FullSeriesCollection(1).Points(1).DataLabel.Select
    Selection.Position = xlLabelPositionAbove
End sub

Merci d'avance pour vos idées,
Wish
 
Dernière édition:
Solution
Re,
En PJ un essai;
J'en ai profité pour mettre les labels à 45°, à voir, cela me semblait plus lisible.
[Edit] sur la version précédente : i and 0 donne ... toujours 0 ! 🙁 j'aurais du faire i and 1.
Bonjour Wlsh, Cisco,
SeriesCollection(1).Points.Count permet de compter le nombre de points sur la courbe.
Donc comme le dit Cisco, une boucle et un test :
VB:
Sub Test()
Dim NbPts, i
' Compte le nombre de points sur la courbe
NbPts = Worksheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points.Count
ActiveSheet.ChartObjects(1).Activate
For i = 1 To NbPts
    If i And 0 = 0 Then
        ' Si point pair
        ActiveChart.FullSeriesCollection(1).Points(i).DataLabel.Select
        Selection.Position = xlLabelPositionBelow
    Else
        ' Si point impair
        ActiveChart.FullSeriesCollection(1).Points(i).DataLabel.Select
        Selection.Position = xlLabelPositionAbove
    End If
End Sub
 
Bonjour à tous, bonjour sylvanu

Est-ce que tu as essayé de faire tourner la macro en pas à pas pour voir si elle passait bien dans les deux parties, une fois dans If..., une fois dans Else... On dirait que ce n'est pas le cas.

@ plus
 
Bonjour,

Ci-joint mon fichier test.
Je me dis que je bloque peut-être l'instruction avec des instructions contraires liées à mes checkboxs ou au togglebutton.

L'idée est que les valeurs apparaissent quand le bouton valeur est coché.
Si la 1ère checkbox est cochée, alors on a que les valeurs pour la 1ère série de donnée, etc.
Si je décoche la checkbox cochée, les valeurs doivent aussi réapparaitre pour toutes les séries.

Vous saisirez l'idée en ouvrant le fichier. Pour le moment ça ne marche pas et comme je suis nul en vba le code est plutôt lourd.

Merci d'avance pour votre aide,
Wish

ps: si des idée pour simplifier le code n'hésitez pas, je ne m'en sors pas.
 

Pièces jointes

Re,
En PJ un essai;
J'en ai profité pour mettre les labels à 45°, à voir, cela me semblait plus lisible.
[Edit] sur la version précédente : i and 0 donne ... toujours 0 ! 🙁 j'aurais du faire i and 1.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…