DIGGERJACK
XLDnaute Occasionnel
Bonsoir à tous
Voici un code écrit pour moi par Michel xld
Je voudrais y apporter une amélioration mais je ne sais pas comment faire
Je voudrais que les nombres qui apparaissent sur le graphique ne comportent pas de chiffre après la virgule. En effet les chiffres issus du tableau me servant à faire ce graphique proviennent d'un calcul et malgré la personnalisation des chiffres qui apparaissent sans chiffre après la virgule dans mon tableau Excal récupère les chiffres avec virgule
ex : 200/3 = 66.666666
dans mon tableau j'ai bien 66 ( en format nombre et zéro décimale) mais sur le graphique j'ai 66.666666
Comment faire ?
Private Sub CommandButton1_Click()
Dim i As Integer, x As Integer
Dim j As Integer
Dim Tableau(12), Plage(12)
'suppression des series existantes dans le ChartSpace
For i = Cht.SeriesCollection.Count To 1 Step -1
Cht.SeriesCollection.Delete i - 1
Next i
For i = 1 To 12
Tableau(i) = Cells(1, 73 + i) 'Abscisses( plage de cellules B1:N1 )
Next i
Cht.Type = C.chChartTypeColumnClustered 'type de graphique:Barres
For j = 0 To ListBox1.ListCount - 1 'boucle sur les éléments de la listbox
If ListBox1.Selected(j) = True Then
If Cht.SeriesCollection.Count > 0 Then Cht.SeriesCollection.Add
For i = 1 To 12
Plage(i) = Cells(j + 3, 73 + i) 'recuperation Ordonnees pour chaque série
Next i
With Cht
.Type = C.chChartTypeColumnClustered 'type de graphique:Barres
'.HasLegend = True 'permet l'affichage des légendes
'.Legend.Position = chLegendPositionBottom 'afichage des légendes sous le graphique
.HasTitle = True
.Title.Caption = "Comparaison Réalisé et estimé Electricité" 'Label1
.Title.Font.Color = RGB(109, 75, 196)
.Title.Font.Underline = True
.Title.Font.Bold = True
.Title.Font.Size = 18
.Title.Position = chTitlePositionTop
End With
With Cht
.SetData C.chDimCategories, C.chDataLiteral, Tableau
'ajout de la légenge pour chaque serie
.SeriesCollection(x).Caption = Cells(j + 3, 73)
.SeriesCollection(x).DataLabelsCollection.Add
.SeriesCollection(x).SetData C.chDimValues, C.chDataLiteral, Plage
.SeriesCollection(x).Interior.Color = 50000 * (j + 1)
End With
x = x + 1
Erase Plage
End If
Next j
End Sub
Merci pour votre aide
Diggerjack
Voici un code écrit pour moi par Michel xld
Je voudrais y apporter une amélioration mais je ne sais pas comment faire
Je voudrais que les nombres qui apparaissent sur le graphique ne comportent pas de chiffre après la virgule. En effet les chiffres issus du tableau me servant à faire ce graphique proviennent d'un calcul et malgré la personnalisation des chiffres qui apparaissent sans chiffre après la virgule dans mon tableau Excal récupère les chiffres avec virgule
ex : 200/3 = 66.666666
dans mon tableau j'ai bien 66 ( en format nombre et zéro décimale) mais sur le graphique j'ai 66.666666
Comment faire ?
Private Sub CommandButton1_Click()
Dim i As Integer, x As Integer
Dim j As Integer
Dim Tableau(12), Plage(12)
'suppression des series existantes dans le ChartSpace
For i = Cht.SeriesCollection.Count To 1 Step -1
Cht.SeriesCollection.Delete i - 1
Next i
For i = 1 To 12
Tableau(i) = Cells(1, 73 + i) 'Abscisses( plage de cellules B1:N1 )
Next i
Cht.Type = C.chChartTypeColumnClustered 'type de graphique:Barres
For j = 0 To ListBox1.ListCount - 1 'boucle sur les éléments de la listbox
If ListBox1.Selected(j) = True Then
If Cht.SeriesCollection.Count > 0 Then Cht.SeriesCollection.Add
For i = 1 To 12
Plage(i) = Cells(j + 3, 73 + i) 'recuperation Ordonnees pour chaque série
Next i
With Cht
.Type = C.chChartTypeColumnClustered 'type de graphique:Barres
'.HasLegend = True 'permet l'affichage des légendes
'.Legend.Position = chLegendPositionBottom 'afichage des légendes sous le graphique
.HasTitle = True
.Title.Caption = "Comparaison Réalisé et estimé Electricité" 'Label1
.Title.Font.Color = RGB(109, 75, 196)
.Title.Font.Underline = True
.Title.Font.Bold = True
.Title.Font.Size = 18
.Title.Position = chTitlePositionTop
End With
With Cht
.SetData C.chDimCategories, C.chDataLiteral, Tableau
'ajout de la légenge pour chaque serie
.SeriesCollection(x).Caption = Cells(j + 3, 73)
.SeriesCollection(x).DataLabelsCollection.Add
.SeriesCollection(x).SetData C.chDimValues, C.chDataLiteral, Plage
.SeriesCollection(x).Interior.Color = 50000 * (j + 1)
End With
x = x + 1
Erase Plage
End If
Next j
End Sub
Merci pour votre aide
Diggerjack