Assigner plage de valeurs à un Graphique sous Excel à partir de VB.NET [Résolu]

moimatthieu 69 Messages postés jeudi 17 juillet 2008Date d'inscription 6 mars 2010 Dernière intervention - 29 déc. 2008 à 12:24 - Dernière réponse : moimatthieu 69 Messages postés jeudi 17 juillet 2008Date d'inscription 6 mars 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
moimatthieu 69 Messages postés jeudi 17 juillet 2008Date d'inscription 6 mars 2010 Dernière intervention - 5 janv. 2009 à 10:03
3
Merci
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

Merci moimatthieu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de moimatthieu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.