VBA Etiquettes et couleurs pour graphique à Bulles

bast0504

XLDnaute Occasionnel
Bonjour

Je souhaite au travers de mon exemple suivant réutiliser le code vba que j'ai trouvé afin :

- d'ajouter sur chaque bulle de mon graphique les mois uniquement ;
- colorier les bulles avec les couleurs affichés dans mon tableau de données provenant d'une MFC

le code astucieux provient du site

Les graphiques

Sub Etiquettes()
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabel
ActiveChart.SeriesCollection(1).DataLabels.Font.Size = 7
ActiveChart.SeriesCollection(1).DataLabels.Border.LineStyle = xlNone
With ActiveChart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).DataLabel.Characters.Text = ActiveSheet.Cells(i + 1, 1) & ":" & ActiveSheet.Cells(i + 1, 4) & " kE"
.Points(i).DataLabel.Interior.ColorIndex = Range("ca")(i).Interior.ColorIndex
.Points(i).Interior.ColorIndex = Range("ca")(i).Interior.ColorIndex
Next i
End With
End Sub

je m'embrouille un peu avec les i de cells(i)

Merci
 

Pièces jointes

  • Graph Bulles.xlsx
    14.3 KB · Affichages: 116
  • Graph Bulles.xlsx
    14.3 KB · Affichages: 136
  • Graph Bulles.xlsx
    14.3 KB · Affichages: 148

bast0504

XLDnaute Occasionnel
Re : VBA Etiquettes et couleurs pour graphique à Bulles

j'ai essayé ce code mais les bulles disparaissent, de plus comment affecté ce code aux deux graph ?

PHP:
Sub Etiquettes()
  ActiveSheet.ChartObjects(1).Activate
  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabel
  ActiveChart.SeriesCollection(1).DataLabels.Font.Size = 10
  ActiveChart.SeriesCollection(1).DataLabels.Border.LineStyle = xlNone
  With ActiveChart.SeriesCollection(1)
   For i = 1 To .Points.Count
    .Points(i).DataLabel.Characters.Text = ActiveSheet.Cells(i + 5, 3) 
    .Points(i).DataLabel.Interior.ColorIndex = Range("VAR")(i).Interior.ColorIndex
    .Points(i).Interior.ColorIndex = Range("VAR")(i).Interior.ColorIndex

   Next i
  End With
End Sub


var = ma MFC
 

bast0504

XLDnaute Occasionnel
Re : VBA Etiquettes et couleurs pour graphique à Bulles

Bonjour

Je compte intégrer deux graph dans un même onglet, et je voudrais utiliser un code pour chacun des graph, le problème est que les deux codes s’exécutent uniquement sur le premier graph. Comment préciser le graph sur lequel je veux exécuter le code ? Malgré l'activation du graph les deux codes s'exécutent uniquement sur le premier.

Thanks
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : VBA Etiquettes et couleurs pour graphique à Bulles

Bonsoir,

cf PJ

Code:
Sub Etiquettes()
  ActiveSheet.ChartObjects(1).Activate
  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabel
  ActiveChart.SeriesCollection(1).DataLabels.Font.Size = 8
  ActiveChart.SeriesCollection(1).DataLabels.Border.LineStyle = xlNone
  With ActiveChart.SeriesCollection(1)
   For i = 1 To .Points.Count
    .Points(i).DataLabel.Characters.Text = Range("noms")(i) & ":  " & Range("ca")(i) & " kE"
    .Points(i).DataLabel.Interior.Color = Range("ca")(i).Interior.Color
    .Points(i).Interior.Color = Range("ca")(i).Interior.Color
   Next i
  End With
End Sub

Sub Etiquettes2()
  ActiveSheet.ChartObjects(2).Activate
  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabel
  ActiveChart.SeriesCollection(1).DataLabels.Font.Size = 6
  ActiveChart.SeriesCollection(1).DataLabels.Border.LineStyle = xlNone
  With ActiveChart.SeriesCollection(1)
   For i = 1 To .Points.Count
    .Points(i).DataLabel.Characters.Text = Range("noms2")(i) & ":  " & Range("ca_2")(i) & " kE"
    .Points(i).DataLabel.Interior.Color = Range("ca_2")(i).Interior.Color
    .Points(i).Interior.Color = Range("ca_2")(i).Interior.Color
   Next i
  End With
End Sub

JB
 

Pièces jointes

  • GrapheBulleEtiquettesSimple2.xls
    53 KB · Affichages: 179
Dernière édition:

bast0504

XLDnaute Occasionnel
Re : VBA Etiquettes et couleurs pour graphique à Bulles

Bonjour

Excellent, Merci Mille fois BoisGontier pour votre réponse et pour avoir pris le temps de me répondre.

J'aurais une autre question ;) Quel code Vba me permettrait de rajouter un pourcentage dans les étiquettes (DataLabel.Characters.Text) car au lieu d'avoir un 2% par exemple j'ai un 0.029512564876565121

Merci
 

Discussions similaires

Statistiques des forums

Discussions
298 813
Messages
1 971 984
Membres
203 578
dernier inscrit
theo90170