[RESOLU] Etiquettes de données : choisir les valeurs à partir d'une autre source

sokratt

XLDnaute Nouveau
Bonjour à tous,

Pour mon travail, j'ai créé récemment un graphique en courbes montrant des montants de chiffres d'affaire de plusieurs unités commerciales mois après mois (une courbe par magasin).
Lorsque j'affiche les étiquettes de données, je n'ai que 3 possibilités dont notamment celle d'afficher la valeur.

Or, j'aurais surtout besoin d'afficher la progression par rapport à l'année dernière pour chaque mois et pour chaque magasin.
Je ne sais pas si j'ai été très clair... !

Merci d'avance pour votre aide.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Etiquettes de données : choisir les valeurs à partir d'une autre source

Bonsoir sokratt,

Une piste avec un peu de code VBA. Les valeurs non disponibles (août 2012 à décembre 2012) sont remplacées par la valeur =na().
Les formules d'évolution d'une année à l'autre retourne #N/A si le calcul de l'évolution n'est pas possible.

VB:
Sub Etiqueter()
Dim i As Long
With Sheets("Feuil1").ChartObjects("Graphique 2")
  For i = 1 To .Chart.SeriesCollection(1).Points.Count
    .Chart.SeriesCollection(1).Points(i).ApplyDataLabels
      If IsNumeric(Sheets("Feuil1").Range("D2").Offset(i).Value) Then
        .Chart.SeriesCollection(1).Points(i).DataLabel.Text = _
            Format(Sheets("Feuil1").Range("D2").Offset(i).Value, "0%")
      Else
        .Chart.SeriesCollection(1).Points(i).DataLabel.Text = ""
      End If
  Next i
  
  For i = 1 To .Chart.SeriesCollection(2).Points.Count
    .Chart.SeriesCollection(2).Points(i).ApplyDataLabels
      If IsNumeric(Sheets("Feuil1").Range("E2").Offset(i).Value) Then
        .Chart.SeriesCollection(2).Points(i).DataLabel.Text = _
            Format(Sheets("Feuil1").Range("E2").Offset(i).Value, "0%")
      Else
        .Chart.SeriesCollection(2).Points(i).DataLabel.Text = ""
      End If
  Next i
  End With
Range("F1").Select
End Sub

Sub OterEtiq()
Dim i As Long
With Sheets("Feuil1").ChartObjects("Graphique 2")
  For i = 1 To .Chart.SeriesCollection(1).Points.Count
    .Chart.SeriesCollection(1).Points(i).ApplyDataLabels
    .Chart.SeriesCollection(1).Points(i).DataLabel.Text = ""
  Next i
  
  For i = 1 To .Chart.SeriesCollection(2).Points.Count
    .Chart.SeriesCollection(2).Points(i).ApplyDataLabels
    .Chart.SeriesCollection(2).Points(i).DataLabel.Text = ""
  Next i
End With

NB: un fichier joint par vos soins aurait été apprécié.
 

Pièces jointes

  • Etiquettes de données v1.xlsm
    22.9 KB · Affichages: 98
Dernière édition:

sokratt

XLDnaute Nouveau
Re : Etiquettes de données : choisir les valeurs à partir d'une autre source

Bonjour mapomme,

Voilà, c'est exactement ce que je cherche à faire.
Je vous ai mis un fichier ci-joint qui possède la structure que j'utilise actuellement.
Je ne connais pas VBA mais je pense que votre code va s'en trouver modifier (effectivement, j'aurais du vous le proposer dès le début).

Merci d'avance pour votre aide.
 

Pièces jointes

  • Etiquettes de données v1.1.xlsx
    17.4 KB · Affichages: 89

Discussions similaires

Statistiques des forums

Discussions
312 352
Messages
2 087 536
Membres
103 581
dernier inscrit
Boodur