1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| Sub Bubble_charter()
'Activation de la worksheet "Chartdata"
Worksheets("chartdata").Activate
On Error GoTo 0
'Mise à jour du TCD n°1 de la feuille chartdata
'Worksheets("chartdata").PivotTables(1).RefreshTable
'Copie des données de A5 en I4
'Sélection de A5
Range("A5").Select
'Extension de la sélection sur toutes les cellules utilisées vers le bas et la droite, et copie des données en I4
Range(ActiveCell, ActiveCell.End(xlDown).End(xlToRight)).Copy Destination:=Range("I4")
'Sélection de la source des données du chart
'Sélection des données en J4 (les données copiées précédemment)
Range("J4").Select
'Extension de la sélection à toutes les cellules utilisées vers le bas et la droite
Range(ActiveCell, ActiveCell.End(xlDown).End(xlToRight)).Select
'Enregistrement dans une variable la plage séléectionnée
Set maplage = Selection ' Plage du graphique
''Création du chart
' 'Ajout du chart
' Charts.Add
' 'Détermination du type du chart
' ActiveChart.ChartType = xlBubble
'Détermination de la source (maplage), et du sens : xlColumns = en ligne, xlrows = en colonne
Charts("Bubble_chart").Activate
ActiveChart.SetSourceData Source:=maplage, PlotBy:=xlColumns
'Détermination de l'emplacement du nouveau chart : xlLocationasNewSheet = Nouvelle feuille
' ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Bubble_Chart"
'Détermination de l'affichage (ou non) des étiquettes de données (entêtes)
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowBubbleSizes, HasLeaderLines:=True
'Formatage graphique
ActiveChart.PlotArea.Select
With Selection.Interior
.ColorIndex = 2
.Pattern = xlSolid
End With
'Désactivation de la mise à jour de l'affichage, le temps d'effectuer les changements
Application.ScreenUpdating = False
Charts("bubble_chart").Activate
'Mise en forme du texte (taille de police)
ActiveChart.Axes(xlCategory).Select
'ActiveChart.Axes(xlCategory).MinimumScale = 0
ActiveChart.Axes(xlValue).TickLabels.Font.Size = 7
ActiveChart.Axes(xlCategory).TickLabels.Font.Size = 7
'--titres
'Détermination du titre du chart
With ActiveChart
'détermination de la présence du titre
.HasTitle = True
'détermination du titre
.ChartTitle.Characters.Text = "CB1 / Avg Runsize"
'détermination des titres d'axes
'Absisces
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = Sheets("chartdata").Cells(4, 10)
'Ordonnées
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Sheets("chartdata").Cells(4, 11)
End With
'
'Mise en forme du chart
'Grid (grillage)
ActiveChart.Axes(xlValue).HasMajorGridlines = True
ActiveChart.Axes(xlCategory).HasMajorGridlines = True
'Mise en forme de la série de données
ActiveChart.SeriesCollection(1).Select
'Effet 3D
Selection.Has3DEffect = True
'Mise en forme des étiquettes de données de la série 1 (la seule)
'Sélection de la série
ActiveChart.SeriesCollection(1).DataLabels.Select
'détermination de la taille de polie des étiquettes de données
Selection.Font.Size = 7
'Compte des éléments de la série pour boucle
Nb_points = ActiveChart.SeriesCollection(1).Points.Count
For i = 1 To Nb_points
'Détermination du texte à appliquer (Ici, le nom du client + ": " + CB1 en valeur)
Charts("Bubble_chart").SeriesCollection(1).Points(i).DataLabel.Select
Selection.Text = Worksheets("chartdata").Cells(i + 4, 9) & " : " & CLng(Worksheets("chartdata").Cells(i + 4, 12)) & " "
Next i
On Error Resume Next
'Suppression des légendes
ActiveChart.Legend.Delete
End Sub |
Partager