[VBA] Graphique
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour
J'ai réussi à faire un graphique, mon code:
Le seul problème est qu'il me crée une feuille de graphique à chaque fois qu'il exécute ce code or moi j'aimerai qu'il utilise toujours la même en écrasant le précédent graphique
Que dois-je changer dans mon prog
Merci d'avance
J'ai réussi à faire un graphique, mon code:
Sub creategraph() Dim objChart As Chart, objRange As Range, MaSerie As Series Set objRange = Worksheets("Valeur").Range(Worksheets("Valeur").Cells(1,2), Worksheets("Valeur").Cells(5,2)) Set objChart = ThisWorkook.Charts.Add objChart.ChartType = xlLine objChart.SeriesCollection.Add objRange, xlColumns, True, True Set MaSerie = objChart.SeriesCollection.NewSeries MaSerie.Values = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True) MaSerie.XValues = "=" & objRange.Columns(1).Adress(True, True, xlR1C1, True) objChart.SetSourceData objRange, xlColumns End Sub
Le seul problème est qu'il me crée une feuille de graphique à chaque fois qu'il exécute ce code or moi j'aimerai qu'il utilise toujours la même en écrasant le précédent graphique
Que dois-je changer dans mon prog
Merci d'avance
A voir également:
- [VBA] Graphique
- Changer carte graphique - Guide
- Graphique sparkline - Guide
- Graphique camembert excel - Guide
- Comment faire un graphique sur excel - Guide
- Planification de processeur graphique à accélération matérielle - Guide
2 réponses
Ton objet chart est défini par
Set objChart = ThisWorkbook.Charts.Add
alors qu'il pourrait etre un test d'existence (if thisworkbook.charts.count >0 then...) et
set objchart=thisworkbook.charts(1)
Irem
Set objChart = ThisWorkbook.Charts.Add
alors qu'il pourrait etre un test d'existence (if thisworkbook.charts.count >0 then...) et
set objchart=thisworkbook.charts(1)
Irem
Ok, cela fonctionne mais maintenant j'ai un autre problème voici la partie du code qui crée mes graphiques:
Le graphique est correctement affiché, l'axe des ordonnées aussi mais pas l'axe des abscisses. Sachant que:
- La zone des valeurs pour l'abscisse ne contient pas des valeurs chiffré mais des chaînes de caractères
- Cette zone n'est pas forcément contigue avec celle des données
Au lieu des chaînes de caractères, le graphique affiche pour l'axe des abscisses 1,2,....
Où es-je fais une erreur dans le code ?
Merci d'avance
For i = 0 To 5 Step 1 If i = 0 Then colonnebase = 3 If i = 1 Then colonnebase = 7 If i = 2 Then colonnebase = 11 If i = 3 Then colonnebase = 15 If i = 4 Then colonnebase = 19 If i = 5 Then colonnebase = 23 Dim objRange As Range, SMesure As Series, SCible As Series, SLimiteinf As Series, SLimitesup As Series Set objRange = Worksheets("Table").Range(Worksheets("Table").Cells(3, colonnebase), Worksheets("Table").Cells(l, colonnebase + 3)) Charts.Add ActiveChart.ChartType = xlLine ActiveChart.SeriesCollection.Add objRange, xlColumns, True, True Set SMesure = ActiveChart.SeriesCollection.NewSeries Set SCible = ActiveChart.SeriesCollection.NewSeries Set SLimiteinf = ActiveChart.SeriesCollection.NewSeries Set SLimitesup = ActiveChart.SeriesCollection.NewSeries SMesure.Values = "=" & objRange.Columns(colonnebase).Address(True, True, xlR1C1, True) SMesure.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True) SMesure.Name = "Mesures" SCible.Values = "=" & objRange.Columns(colonnebase + 1).Address(True, True, xlR1C1, True) SCible.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True) SCible.Name = "Cible" SLimiteinf.Values = "=" & objRange.Columns(colonnebase + 2).Address(True, True, xlR1C1, True) SLimiteinf.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True) SLimiteinf.Name = "Limite inférieure" SLimitesup.Values = "=" & objRange.Columns(colonnebase + 3).Address(True, True, xlR1C1, True) SLimitesup.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True) SLimitesup.Name = "Limite supérieure" ActiveChart.SetSourceData objRange, xlColumns ActiveChart.Name = paramètres(i) Next i
Le graphique est correctement affiché, l'axe des ordonnées aussi mais pas l'axe des abscisses. Sachant que:
- La zone des valeurs pour l'abscisse ne contient pas des valeurs chiffré mais des chaînes de caractères
- Cette zone n'est pas forcément contigue avec celle des données
Au lieu des chaînes de caractères, le graphique affiche pour l'axe des abscisses 1,2,....
Où es-je fais une erreur dans le code ?
Merci d'avance