Assigner plage de valeurs à un Graphique sous Excel à partir de VB.NET

Résolu
moimatthieu Messages postés 68 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 6 mars 2010 - 29 déc. 2008 à 12:24
moimatthieu Messages postés 68 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 6 mars 2010 - 5 janv. 2009 à 10:03
Bonjour à tous

J'ai récupéré ici un bout de code permettant de créer un fichier excel et d'y ajouter des enregistrements. Je me base sur ce bout de code pour essayer de créer un graphique mais je bloque sur l'asignation des plages de valeurs du graphique.
J'aimerais savoir comment je dois m'y prendre pour dire à Excel que pour mon graphique je prend la colonne A pour les absisses et la colonne B pour les ordonnées ?

Pour l'instant j'ai réussi à sélectionner(mise en surbrillance) des valeurs de la colonne B mais pas lui dire de les utiliser pour le graphique.
Quelqu'un est-il en mesure de m'aider

Voici le bout de code que j'ai pour l'instant :

Private
Sub btnAdd_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles btnAdd.Click

Dim S1, ErrStr
As
String

Dim oXL
As
Object

Dim oBook
As
Object

Dim oSheet
As
Object

'

'NB ici ou a besoin de la reference Microsoft Excel 11.0 etc.

If
Not File.Exists(FNxls)
ThenErrStr =

"Le fichier EXCEL" & vbCrLf & _FNxls & vbCrLf & _

"n'existe pas encore !!"

GoTo fout

End
If

TryoXL = CreateObject(

"Excel.Application")S1 =

"FileName:='" & FNxls &
"'"oXL.Workbooks.Open(filename:=TextBox1.Text)

oSheet = oXL.ActiveSheet

Catch ex
As ExceptionS1 = ex.ToString

End
Try

Dim RowMax, ColMax
As
Integer

Dim Row, Col
As
Integer

' TryRowMax = oSheet.UsedRange.Rows.Count

ColMax = oSheet.UsedRange.Columns.Count

' ajouter les données dans la feuille.

For Row = RowMax + 1
To RowMax + 13

For Col = 1
To 13oSheet.Cells(Row, Col) =

CStr(Row) &
CStr(Col)

Next

Next

Dim graphique
As
Object = oXL.Charts.Add

Dim Maserie
AsObject oXL.ActiveChart.SeriesCollection.NewSeries()graphique.ChartType Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered

graphique.Location(Where:=Microsoft.Office.Interop.Excel.XlChartLocation.xlLocationAsObject, Name:=

"Feuil1")

' oXL.ActiveSheet.Shapes("Graphique 2").Top = 101

' oXL.ActiveSheet.Shapes("Graphique 2").Left = 0

' oXL.ActiveSheet.shapes("Graphique 2").Width = 165
' oXL.ActiveSheet.shapes("Graphique 2").Height 120oXL.ActiveChart.SeriesCollection(1).Values oSheet.Range(

"B2:B12").Select()
'' Sélection(Mise en surbrillance) des lignes 2 à 12 de de la colonne B

'Mise en forme des datas dans le graph

' oSeries.SetData(ChartDimensionsEnum.chDimCategories, ChartSpecialDataSourcesEnum.chDataLiteral, strCategory)

' Maserie.names = "MonNewGraph" 

' oXL.ActiveChart.SeriesCollection(2).Values = oSheet.Range("A2:A12").Select()

' graphique.SetSourceData()oXL.Quit()
oSheet NothingoBook

NothingoXL =

Nothing

' Catch ex As Exception
' ErrStr "Erreur " & vbCrLf & _

' ex.ToString()

' GoTo fout

' End TryMsgBox(

"Ajout de 2 enregisterment a la feuille effectué avec succes")

Exit
Subfout:

MsgBox(ErrStr)

End
Sub

Merci d'avance de votre aide

Matthieu

1 réponse

moimatthieu Messages postés 68 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 6 mars 2010
5 janv. 2009 à 10:03
Je viens de trouver la solution à mon problème grâce au source (CREER-GRAPHIQUE-DANS-EXCEL-CHOISISSANT-NOMBRE-LIGNES-COLONNES) de freedom07.

Voici mon bout de code si ça peut aider quelqu'un d'autre :

'' oXl est mon applicatation Excel (oXL = CreateObject("Excel.Application") )

'' Sélection des casesoXL.range(

"A2:D14").Select()

'' Création du graphique

Dim graphique
As
Object = oXL.Charts.Add

'' Définition du type de graphique que nous souhaitons avoiroXL.ActiveChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine

'' Les autres types de graphiques disponibles :

'' oXL.ActiveChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xl3DArea

'' oXL.ActiveChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlCylinderBarClustered

'' oXL.ActiveChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine

'' oXL.ActiveChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlPyramidCol

'' oXL.ActiveChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlRadar

Bonne journée à tous

Matthieu
3
Rejoignez-nous