Pour les derniers codes, même erreur :cry:
L'index de cette collection est en dehors des limites
Version imprimable
Pour les derniers codes, même erreur :cry:
L'index de cette collection est en dehors des limites
Ecoute je vien de faire un essay et malheureusement sa marche du feu de dieu
regarde tu vera ton graphe ce reduire de moitier. :(Code:
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 Dim l_objexcel As Excel.Application Dim l_objworkbook As Excel.Workbook l_objexcel = New Excel.Application l_objworkbook = l_objexcel.Workbooks.Add l_objexcel.Visible = True Dim i As Integer = 0 l_objexcel.Range("A1").Value = 1 l_objexcel.Range("B1").Value = 2 l_objexcel.Range("A2").Value = 1 l_objexcel.Range("B2").Value = 2 l_objexcel.Range("A3").Value = 1 l_objexcel.Range("B3").Value = 2 l_objexcel.Range("A1:B3").Select() l_objexcel.ActiveSheet.Shapes.AddChart.Select() l_objexcel.ActiveChart.ChartType = Excel.XlChartType.xl3DPieExploded l_objexcel.ActiveChart.ChartStyle = 26 l_objexcel.ActiveChart.ClearToMatchStyle() l_objexcel.ActiveChart.ApplyLayout(2) l_objexcel.ActiveChart.SeriesCollection(1).Select() l_objexcel.ActiveSheet.ChartObjects(1).Activate() l_objexcel.ActiveChart.ChartTitle.Text = "MON TITRE" l_objexcel.ActiveChart.ApplyDataLabels(XlDataLabelsType.xlDataLabelsShowPercent) l_objexcel.Sheets(1).Shapes(1).ScaleWidth(0.5, 0, 0)
J AI TROUVER TON PROBLEME !!!
Tu fait un ActiveSheet.chart.add !!!!!
C'est pour sa !! ce n'est pas un shapes !!!
La mon graphe devien un shape !!!Code:l_objexcel.ActiveSheet.Shapes.AddChart.Select()
Je viens d'essayer et j'ai tjrs une erreur au niveau de :
l_objexcel.ActiveSheet.Chart.Add()
L'erreur est : Le membre public 'Chart' du type 'worksheet' est introuvable
IL ne faut pas mettre sa !
il faut mettre : l_objexcel.ActiveSheet.Shapes.AddChart.Select()
Tu selectionne la zone et tu créer non pas ton graphe mais un shape :
Code:
1
2 l_objexcel.Range("A1:B3").Select() l_objexcel.ActiveSheet.Shapes.AddChart.Select()
Même erreur :cry:
Le membre 'AddChart' de type 'Shapes' est introuvable
Honnetement moi sa fonctionne très bien avec le code que je t'ai mis, mais la methode doit etre vraiment different avec Office 2003, essay des macros ou sinon install le 2007 ! ;)
Je suis sincerement dsl de ne pas pouvoir plus t'aider
sinon crée ton graphe comme avant et copie le dans un shapes.
Ou sinon fai comme je t dit resize le dans un picture box.
Merci bcp " Silvers " , vous m'avez apporté une aide précieuse.
Je pense que je vais installer office 2007 pour éviter tous ces pbs.
Encore une fois :merci:
Une fois 2007 installer nous pourrons reprendre cette discution, en attendant je regrette de ne pas avoir pu t aider comme je l aurai souhaiter.
Chao, a bientot
:aie:
Je vien d'essayer en 2003 avec vs 2005 et sa marche comme sa :
:)Code:
1
2
3
4
5
6
7 l_objexcel.Range("A1:B3").Select() l_objexcel.charts.add l_objexcel.ActiveChart.ChartType = Excel.XlChartType.xl3DPieExploded l_objexcel.ActiveChart.SeriesCollection(1).Select() l_objexcel.ActiveChart.Location(Where:=xlLocationAsObject, Name:="Feuil1") l_objexcel.ActiveSheet.Shapes(1).ScaleWidth(0.5,0,0) l_objexcel.ActiveSheet.Shapes(1).ScaleHeight(0.5,0,0)
Bonjour ' Silvers '
Je viens de lire votre solution, je l'ai essayé mais malheureusement J'ai tjs la même erreur.
J'ai trouvé une solution qui n'est pas trés "optimale" (mais je vais l'adopté car j suis limitée par le temps), en fait j'ai redimentionné mon camambert.
J'envoie comem le code "CHART"
Je tiens vraiment à vous remercier du fond du coeur 'Silvers' pour avoir répondu à mes questions, vous m'avez aidé à résoudre un PB que je trouvais insolvable, encore une fois MERCI :king:
C'est tout à fait normal ;) Je pense que tout le monde en aurai fait autant.
A+
Bonjour Edouard,
Pour fair sa c'est simple tu copie ton graphe:
et tu colle dans le PictureBox:Code:objexcel.ActiveChart.ChartArea.Copy
Code:
1
2
3 Dim objbmp As Object objbmp = Clipboard.GetImage PictureBox1.Image = objbmp
Bonjour,
J'avais le même problème c'est à dire que je cherchais comment créer des graphes avec VB.net. La solution que tu propose me pose problème silvers, car à la compilation j'ai des erreurs du type "Type Excel.Application is not defined".
J'ai pourtant bien cocher Excel library dans projet -> References. J'ai Visual studio 2005 et Excel 2007.
Peut être dois je faire un imports quelquechose?
Merci de votre aide
A tu mis dans ton code le import Excel ?
Enfait tu doit ajouter dans tes références Microsoft Excel 12 (pour 2007)
et Microsoft.interop dans l'espace de nom importés ;)
Non je n'ai pas mis de import excel. Ou faut il que je le mette exactement ?
De plus qu'est ce que Microsoft.interop? SQ'agit il d'une reference à ajouter?
Sinon, ou pourrais trouver une documentation complète et précise de toutes les possibilités qu'offre Excel en VB?
Merci
il faut que tu ajout dans tes reférences Microsoft.office12
Puis tu fait un Import Microsoft.interop dans ta class
ok, je viens de rajouter le imports et cela fonctionne.
Cependant il y a quelquechose que je voudrasi te demander : si je veux faire la meme chose mais avec un histogramme, ou bien une courbe classique abscisses ordonnées etc, quel type de chart faut-il que j'indique ? Tu utilise le nom " l_objexcel.ActiveChart.ChartType = Excel.XlChartType.xl3DPieExploded", mais ou trouver le nom des autres types de graphiques?
De plus, pourrais tu me détailler chaque ligne de code de ce bloc s'il te plait, car je ne vois pas bien quelles valeurs et quelles cases Excel utilise pour tracer son graphique... Merci d'avance silvers !!
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 For i = 1 To 5 l_objexcel.Range("A" & i).Value = i l_objexcel.Range("B" & i).Value = i Next l_objexcel.Range("A1:B" & i - 1).Select() l_objexcel.ActiveSheet.Shapes.AddChart.Select() l_objexcel.ActiveChart.SetSourceData(Source:=l_objexcel.Range("A1:B" & i - 1)) l_objexcel.ActiveChart.ChartType = Excel.XlChartType.xl3DPieExploded l_objexcel.ActiveChart.ChartStyle = 26 l_objexcel.ActiveChart.ClearToMatchStyle() l_objexcel.ActiveChart.ApplyLayout(2) l_objexcel.ActiveChart.SeriesCollection(1).Select() l_objexcel.ActiveSheet.ChartObjects("Graphique 1").Activate() l_objexcel.ActiveChart.ChartTitle.Text = "MON TITRE"
OK c'est partie
Premierement :
Pour avoir les types de graphe tu tapeApres avoir mis ce dernier "." il te proposera tout les types de graphe.Code:Excel.XlChartType.
Sinon va dans l'explorateur d'objet et tape dans rechercher : XlChartType
Deuxiemement :
Cette boucle rempli les cellules de valeurs utile pour le grapheCode:
1
2
3
4 For i = 1 To 5 l_objexcel.Range("A" & i).Value = i l_objexcel.Range("B" & i).Value = i Next
Traduction :
Exemple :Code:
1
2
3
4 De i = 1 Jusque 5 la cellule("A" & i).Value = i la cellule("B" & i).Value = i Suivant
Ensuite on selectionne la plage de données :Code:
1
2
3
4 De i = 1 Jusque 5 la cellule("A" & 1).Value = 1 'soit la cellule A1 = 1 la cellule("B" & 1).Value = 1 'soit la cellule B1 = 1 Suivant
Traduction :Code:l_objexcel.Range("A1:B" & i - 1).Select()
Puis on insere notre graphe par rapport à la selection:Code:Les cellules("A1:B4").Select()
Code:l_objexcel.ActiveSheet.Shapes.AddChart.Select()
Tout le reste son les parametres du graphe, mais si tu t'arrete ici ton graphe aura une allure par defaut.
J'ai été assez claire ? Le cas échéant n'ésite pas à demander. ;)