Comment modifier un graphique existant dans Excel

cs_Cryborg
Messages postés
30
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
8 février 2007
- 17 févr. 2004 à 11:41
cs_Cryborg
Messages postés
30
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
8 février 2007
- 18 févr. 2004 à 07:31
Bonjour,

Je cherche à modifier un graphique existant déjà dans Excel, à partir de VB. En gros, je ne veux que modifier la plage de données, et garder toute la mise en forme.
Quelqu'un aurait-il une solution ?

Merci !

6 réponses

econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
17 févr. 2004 à 13:22
oui oui

il y a plein de réponses concernant Excel et VB dans le forum. Tu devrais y regarder en premier.
Je suis certain que tu y trouveras ce que tu veux faire parce que j'ai déjà répondu plein de fois à des questions similaires.

Bonne chance,

Manu
0
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
17 févr. 2004 à 13:24
Ayé, j'ai retrouvé une de mes réponses :

*************************************
Dans Projet/Références, il faut charger Microsoft Excel x.y
puis ce code-ci devrait t'aider :
*************************************
Dim objExcel As Excel.Application
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add
objExcel.Visible = True
objExcel.ActiveWorkbook.Sheets("Feuil1").Range("C1").Value = "toto"

'--> met la valeur toto dans la case C1 de la feuille "Feuil1"

Manu
0
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
17 févr. 2004 à 13:31
Allez hop, soyons fou ! Voici un exemple de camembert

Note : Dans Projet/Références sélectionne Microsoft Excel x.y

*****************************

Dim objExcel As Excel.Application

Dim i As Integer

Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add

'remplit une feuille avec des données dans les colonnes A et B, lignes 2 à 11

With objExcel.ActiveSheet
.Range("A2").Value = "toto"
.Range("B2").Value = 3
.Range("A3").Value = "titi"
.Range("B3").Value = 6
.Range("A4").Value = "tutu"
.Range("B4").Value = 7
.Range("A5").Value = "tete"
.Range("B5").Value = 2
.Range("A6").Value = "toto"
.Range("B6").Value = 12
.Range("A7").Value = "papa"
.Range("B7").Value = 8
.Range("A8").Value = "pepe"
.Range("B8").Value = 4
.Range("A9").Value = "pipi"
.Range("B9").Value = 6
.Range("A10").Value = "pupu"
.Range("B10").Value = 2
.Range("A11").Value = "popo"
.Range("B11").Value = 7
End With

Charts.Add

ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B11")
ActiveChart.ChartWizard _
PlotBy:=xlColumns, CategoryLabels:=1, SeriesLabels:=1

ActiveChart.ChartType = xlPie 'choix du type de graphe : ici le camembert

ActiveChart.SeriesCollection(1).Points(1).Interior.ColorIndex = 45
ActiveChart.SeriesCollection(1).Points(2).Interior.ColorIndex = 40
ActiveChart.SeriesCollection(1).Points(3).Interior.ColorIndex = 9
ActiveChart.SeriesCollection(1).Points(4).Interior.ColorIndex = 3
ActiveChart.SeriesCollection(1).Points(5).Interior.ColorIndex = 29
ActiveChart.SeriesCollection(1).Points(6).Interior.ColorIndex = 26
ActiveChart.SeriesCollection(1).Points(7).Interior.ColorIndex = 15
ActiveChart.SeriesCollection(1).Points(8).Interior.ColorIndex = 14
ActiveChart.SeriesCollection(1).Points(9).Interior.ColorIndex = 10
'For i = 1 To 10
ActiveChart.SeriesCollection(1).Points(10).Interior.ColorIndex = 43
'Next i

ActiveChart.Activate

objExcel.Visible = True

******************************

Manu
0
cs_Cryborg
Messages postés
30
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
8 février 2007

17 févr. 2004 à 14:19
Salut !

Ah oui oui moi aussi je sais faire ça :o) Mais ce que je voulais savoir.... Voyons plutôt avec un exemple :
J'ai un fichier Excel, qui a 4 graphiques. Je voudrais que mon programme puisse dire : dans le graphique 1, je veux les données de A1 à B4, dans le graphique 2, de C1 à C4, etc... Les graphiques, ainsi que la feuille Excel existent. Et il ne faut pas créer un autre graphique, puisque je veux garder la mise en forme de chaque graphique (euh bonjour les répétitions ! J'aurais pu mettre With Graphique .... end with au début du paragraphe :o))) Je veux vraiment réutiliser le graphique déjà existant, en ne changeant que la plage de données.

Je ne sais pas si je suis assez clair dans mes propos :o)

Franck

PS : ct donc à toi le code que j'utilise maintenant ? Merci encore, ça m'a bcp aidé !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
17 févr. 2004 à 14:52
de rien pour le code ! ;o)

Si tu ne veux pas modifier les charts, alors il te suffit de détecter quelle chart correspond à quelle plage de données, et faire un update de celle que tu veux :

Charts(1 ou 2 ou 3 ...).Refresh

pour modifier la plage de données, tu as tout ce qu'il te faut au dessus.

Manu
0
cs_Cryborg
Messages postés
30
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
8 février 2007

18 févr. 2004 à 07:31
Yes ! Effectivement, comme quoi avec un minimum de matière grise on peut tout faire :o) Merci beaucoup, j'ai réussi à faire ce que je voulais :o)

@+ !

Franck
0