Générer un graph Excel à partir de données d'un tableau Excel

cs_ilyatout Messages postés 14 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 17 novembre 2003 - 14 nov. 2003 à 17:09
cs_ilyatout Messages postés 14 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 17 novembre 2003 - 15 nov. 2003 à 10:50
Bonjour,

Je dispose d'un fichier Excel dans lequel j'ai des informations.
Dans un autre fichier Excel, j'ai une macro qui doit me tracer un graphique à partir des données de l'autre fichier Excel.

--> J'ai une plage de données du premier fichier Excel que je veux tracer : Comment faire cela ??

MErci par avance !

2 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
14 nov. 2003 à 17:27
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_ilyatout Messages postés 14 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 17 novembre 2003
15 nov. 2003 à 10:50
Tout d'abord un grand merci pour ton aide.

Cependant, ton code génère une nouvelle feuille Excel mais le problème est que :

ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B11")

prend la feuille 1 du classeur Excel dans laquel le module est présent. En aucun cas on prend les valeurs de l'autre feuille.

Merci
0
Rejoignez-nous