J'ai une feuille graphique dans mon classeur. j'alimente=20
mon tableu =E0 partir de vb je souhaite afficher mon=20
graphique avec les donn=E9es de mon tableau. comment puis je=20
faire.
voici le code :
Private Sub BtnExport_Click()
Dim Ep As Variant
Dim rec As Recordset
Dim xlCharts As Chart
Set xlApp =3D New Excel.Application
Set xlBook =3D xlApp.Workbooks.Add
Set xlSheet =3D xlApp.Workbooks(1).Sheets(1)
Set xlCharts =3D xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la=20
ligne courante
Dim iCol As Integer ' variable index de la=20
colonne courante
=20
Dim strTmpRange As String ' variable temporaire
OuvreExcel =3D 1
=20
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect =3D CmbNom
Call RecupChaineNomComp
NameSelect =3D Reslec
=20
Set Ep =3D Cmbep
Set rec =3D db.OpenRecordset("SELECT * FROM [RQTNOM]=20
where [Nom] =3D '" & NameSelect & "' and [Epreuves]=3D'" & Ep=20
& "' order by [Date]")
=20
xlSheet.Cells.ClearContents
=20
While rec.EOF =3D False
=20
xcount =3D rec.AbsolutePosition + 1
xlSheet.Activate
DateExport =3D rec("Date")
PerfExport =3D rec("Perf")
=20
MsgCelA =3D NameSelect & " " & Bar
MsgCelB =3D Ep
MsgCelC =3D DateExport
MsgCelD =3D PerfExport
=20
xlSheet.Cells(xcount, 1) =3D Trim(MsgCelA)
xlSheet.Cells(xcount, 2) =3D MsgCelB
xlSheet.Cells(xcount, 3) =3D MsgCelC
xlSheet.Cells(xcount, 4) =3D MsgCelD
rec.MoveNext
=20
Wend
' Ins=E8re deux plages nomm=E9es :
For iRow =3D 1 To xcount
'D=E9finition de la plage de cellules :
'Par la notation RiCi
'(Entrez les 2 lignes suivantes sur une=20
seule ligne)
strTmpRange =3D "Feuil1!R" & iRow & "C" &=20
Format$(1) & ":R" & iRow & "C" & Format$(4)
=20
'Autre m=E9thode : par l'objet objXLsheet et=20
la m=E9thode Range
'(Retirer le caract=E8res de commentaire et=20
entrer les 2 lignes
'suivantes sur une seule ligne)
'strTmpRange =3D objXLsheet.Range
(objXLsheet.Cells(iRow, 1),objXLsheet.Cells
(iRow,'cNumCols)).Address
=20
'D=E9finition du nom de plage
'(Entrez les 2 lignes suivantes sur une=20
seule ligne)
'xlSheet.Parent.Names.Add "range" &=20
Format$(iRow), "=3D" & strTmpRange
=20
Next iRow
=20
'Assigne les plages cr=E9=E9es ci-dessus en=20
tant que s=E9ries individuelles
'du graphique :
For iRow =3D 1 To xcount
=20
xlCharts.Chart.SeriesCollection.Add "Range" & Format$(iRow)
Next iRow
xlApp.Application.Visible =3D True
xlSheet.Visible =3D xlSheetVisible
xlCharts.Visible =3D xlSheetVisible
xlCharts.Name =3D Trim(MsgCelA)
=20
Set xlSheet =3D Nothing
Set xlBook =3D Nothing
Set xlApp =3D Nothing
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
www.eztree-msdn.com \(Laurent Jordi\)
SAlut
Tu devrais essayer d'utiliser le controle OLE2 pour ouvrir le fichier excel depuis ton pg vb
@+
LJ
www.eztree-msdn.com "BoisSeb" a écrit dans le message de news:5efd01c42df7$24641f90$ J'ai une feuille graphique dans mon classeur. j'alimente mon tableu à partir de vb je souhaite afficher mon graphique avec les données de mon tableau. comment puis je faire.
voici le code : Private Sub BtnExport_Click() Dim Ep As Variant Dim rec As Recordset Dim xlCharts As Chart
Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlApp.Workbooks(1).Sheets(1) Set xlCharts = xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la ligne courante Dim iCol As Integer ' variable index de la colonne courante
Dim strTmpRange As String ' variable temporaire
OuvreExcel = 1
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect = CmbNom Call RecupChaineNomComp NameSelect = Reslec
Set Ep = Cmbep
Set rec = db.OpenRecordset("SELECT * FROM [RQTNOM] where [Nom] = '" & NameSelect & "' and [Epreuves]='" & Ep & "' order by [Date]")
Wend ' Insère deux plages nommées : For iRow = 1 To xcount 'Définition de la plage de cellules : 'Par la notation RiCi '(Entrez les 2 lignes suivantes sur une seule ligne) strTmpRange = "Feuil1!R" & iRow & "C" & Format$(1) & ":R" & iRow & "C" & Format$(4)
'Autre méthode : par l'objet objXLsheet et la méthode Range '(Retirer le caractères de commentaire et entrer les 2 lignes 'suivantes sur une seule ligne) 'strTmpRange = objXLsheet.Range (objXLsheet.Cells(iRow, 1),objXLsheet.Cells (iRow,'cNumCols)).Address
'Définition du nom de plage '(Entrez les 2 lignes suivantes sur une seule ligne) 'xlSheet.Parent.Names.Add "range" & Format$(iRow), "=" & strTmpRange
Next iRow
'Assigne les plages créées ci-dessus en tant que séries individuelles 'du graphique : For iRow = 1 To xcount
xlCharts.Chart.SeriesCollection.Add "Range" & Format$(iRow) Next iRow
Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing
End Sub
SAlut
Tu devrais essayer d'utiliser le controle OLE2 pour ouvrir le fichier excel
depuis ton pg vb
@+
LJ
www.eztree-msdn.com
"BoisSeb" <sebastien.bois@ascom.fr> a écrit dans le message de
news:5efd01c42df7$24641f90$a601280a@phx.gbl...
J'ai une feuille graphique dans mon classeur. j'alimente
mon tableu à partir de vb je souhaite afficher mon
graphique avec les données de mon tableau. comment puis je
faire.
voici le code :
Private Sub BtnExport_Click()
Dim Ep As Variant
Dim rec As Recordset
Dim xlCharts As Chart
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlApp.Workbooks(1).Sheets(1)
Set xlCharts = xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la
ligne courante
Dim iCol As Integer ' variable index de la
colonne courante
Dim strTmpRange As String ' variable temporaire
OuvreExcel = 1
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect = CmbNom
Call RecupChaineNomComp
NameSelect = Reslec
Set Ep = Cmbep
Set rec = db.OpenRecordset("SELECT * FROM [RQTNOM]
where [Nom] = '" & NameSelect & "' and [Epreuves]='" & Ep
& "' order by [Date]")
Wend
' Insère deux plages nommées :
For iRow = 1 To xcount
'Définition de la plage de cellules :
'Par la notation RiCi
'(Entrez les 2 lignes suivantes sur une
seule ligne)
strTmpRange = "Feuil1!R" & iRow & "C" &
Format$(1) & ":R" & iRow & "C" & Format$(4)
'Autre méthode : par l'objet objXLsheet et
la méthode Range
'(Retirer le caractères de commentaire et
entrer les 2 lignes
'suivantes sur une seule ligne)
'strTmpRange = objXLsheet.Range
(objXLsheet.Cells(iRow, 1),objXLsheet.Cells
(iRow,'cNumCols)).Address
'Définition du nom de plage
'(Entrez les 2 lignes suivantes sur une
seule ligne)
'xlSheet.Parent.Names.Add "range" &
Format$(iRow), "=" & strTmpRange
Next iRow
'Assigne les plages créées ci-dessus en
tant que séries individuelles
'du graphique :
For iRow = 1 To xcount
xlCharts.Chart.SeriesCollection.Add "Range" & Format$(iRow)
Next iRow
Tu devrais essayer d'utiliser le controle OLE2 pour ouvrir le fichier excel depuis ton pg vb
@+
LJ
www.eztree-msdn.com "BoisSeb" a écrit dans le message de news:5efd01c42df7$24641f90$ J'ai une feuille graphique dans mon classeur. j'alimente mon tableu à partir de vb je souhaite afficher mon graphique avec les données de mon tableau. comment puis je faire.
voici le code : Private Sub BtnExport_Click() Dim Ep As Variant Dim rec As Recordset Dim xlCharts As Chart
Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlApp.Workbooks(1).Sheets(1) Set xlCharts = xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la ligne courante Dim iCol As Integer ' variable index de la colonne courante
Dim strTmpRange As String ' variable temporaire
OuvreExcel = 1
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect = CmbNom Call RecupChaineNomComp NameSelect = Reslec
Set Ep = Cmbep
Set rec = db.OpenRecordset("SELECT * FROM [RQTNOM] where [Nom] = '" & NameSelect & "' and [Epreuves]='" & Ep & "' order by [Date]")
Wend ' Insère deux plages nommées : For iRow = 1 To xcount 'Définition de la plage de cellules : 'Par la notation RiCi '(Entrez les 2 lignes suivantes sur une seule ligne) strTmpRange = "Feuil1!R" & iRow & "C" & Format$(1) & ":R" & iRow & "C" & Format$(4)
'Autre méthode : par l'objet objXLsheet et la méthode Range '(Retirer le caractères de commentaire et entrer les 2 lignes 'suivantes sur une seule ligne) 'strTmpRange = objXLsheet.Range (objXLsheet.Cells(iRow, 1),objXLsheet.Cells (iRow,'cNumCols)).Address
'Définition du nom de plage '(Entrez les 2 lignes suivantes sur une seule ligne) 'xlSheet.Parent.Names.Add "range" & Format$(iRow), "=" & strTmpRange
Next iRow
'Assigne les plages créées ci-dessus en tant que séries individuelles 'du graphique : For iRow = 1 To xcount
xlCharts.Chart.SeriesCollection.Add "Range" & Format$(iRow) Next iRow
Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing
End Sub
SEBBOIS
Non je souhaite en clickant sur un bouton affiche une feuille excel et non pas l'integre dans mon prog VB.
-----Message d'origine----- SAlut
Tu devrais essayer d'utiliser le controle OLE2 pour
ouvrir le fichier excel
depuis ton pg vb
@+
LJ
www.eztree-msdn.com "BoisSeb" a écrit dans le
message de
news:5efd01c42df7$24641f90$ J'ai une feuille graphique dans mon classeur. j'alimente mon tableu à partir de vb je souhaite afficher mon graphique avec les données de mon tableau. comment puis je faire.
voici le code : Private Sub BtnExport_Click() Dim Ep As Variant Dim rec As Recordset Dim xlCharts As Chart
Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlApp.Workbooks(1).Sheets(1) Set xlCharts = xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la ligne courante Dim iCol As Integer ' variable index de la colonne courante
Dim strTmpRange As String ' variable
temporaire
OuvreExcel = 1
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect = CmbNom Call RecupChaineNomComp NameSelect = Reslec
Set Ep = Cmbep
Set rec = db.OpenRecordset("SELECT * FROM [RQTNOM] where [Nom] = '" & NameSelect & "' and [Epreuves]='" & Ep & "' order by [Date]")
Wend ' Insère deux plages nommées : For iRow = 1 To xcount 'Définition de la plage de cellules : 'Par la notation RiCi '(Entrez les 2 lignes suivantes sur une seule ligne) strTmpRange = "Feuil1!R" & iRow & "C" & Format$(1) & ":R" & iRow & "C" & Format$(4)
'Autre méthode : par l'objet objXLsheet et la méthode Range '(Retirer le caractères de commentaire et entrer les 2 lignes 'suivantes sur une seule ligne) 'strTmpRange = objXLsheet.Range (objXLsheet.Cells(iRow, 1),objXLsheet.Cells (iRow,'cNumCols)).Address
'Définition du nom de plage '(Entrez les 2 lignes suivantes sur une seule ligne) 'xlSheet.Parent.Names.Add "range" & Format$(iRow), "=" & strTmpRange
Next iRow
'Assigne les plages créées ci-dessus en tant que séries individuelles 'du graphique : For iRow = 1 To xcount
Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing
End Sub
.
Non je souhaite en clickant sur un bouton affiche une
feuille excel et non pas l'integre dans mon prog VB.
-----Message d'origine-----
SAlut
Tu devrais essayer d'utiliser le controle OLE2 pour
ouvrir le fichier excel
depuis ton pg vb
@+
LJ
www.eztree-msdn.com
"BoisSeb" <sebastien.bois@ascom.fr> a écrit dans le
message de
news:5efd01c42df7$24641f90$a601280a@phx.gbl...
J'ai une feuille graphique dans mon classeur. j'alimente
mon tableu à partir de vb je souhaite afficher mon
graphique avec les données de mon tableau. comment puis je
faire.
voici le code :
Private Sub BtnExport_Click()
Dim Ep As Variant
Dim rec As Recordset
Dim xlCharts As Chart
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlApp.Workbooks(1).Sheets(1)
Set xlCharts = xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la
ligne courante
Dim iCol As Integer ' variable index de la
colonne courante
Dim strTmpRange As String ' variable
temporaire
OuvreExcel = 1
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect = CmbNom
Call RecupChaineNomComp
NameSelect = Reslec
Set Ep = Cmbep
Set rec = db.OpenRecordset("SELECT * FROM [RQTNOM]
where [Nom] = '" & NameSelect & "' and [Epreuves]='" & Ep
& "' order by [Date]")
Wend
' Insère deux plages nommées :
For iRow = 1 To xcount
'Définition de la plage de cellules :
'Par la notation RiCi
'(Entrez les 2 lignes suivantes sur une
seule ligne)
strTmpRange = "Feuil1!R" & iRow & "C" &
Format$(1) & ":R" & iRow & "C" & Format$(4)
'Autre méthode : par l'objet objXLsheet et
la méthode Range
'(Retirer le caractères de commentaire et
entrer les 2 lignes
'suivantes sur une seule ligne)
'strTmpRange = objXLsheet.Range
(objXLsheet.Cells(iRow, 1),objXLsheet.Cells
(iRow,'cNumCols)).Address
'Définition du nom de plage
'(Entrez les 2 lignes suivantes sur une
seule ligne)
'xlSheet.Parent.Names.Add "range" &
Format$(iRow), "=" & strTmpRange
Next iRow
'Assigne les plages créées ci-dessus en
tant que séries individuelles
'du graphique :
For iRow = 1 To xcount
Non je souhaite en clickant sur un bouton affiche une feuille excel et non pas l'integre dans mon prog VB.
-----Message d'origine----- SAlut
Tu devrais essayer d'utiliser le controle OLE2 pour
ouvrir le fichier excel
depuis ton pg vb
@+
LJ
www.eztree-msdn.com "BoisSeb" a écrit dans le
message de
news:5efd01c42df7$24641f90$ J'ai une feuille graphique dans mon classeur. j'alimente mon tableu à partir de vb je souhaite afficher mon graphique avec les données de mon tableau. comment puis je faire.
voici le code : Private Sub BtnExport_Click() Dim Ep As Variant Dim rec As Recordset Dim xlCharts As Chart
Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlApp.Workbooks(1).Sheets(1) Set xlCharts = xlApp.Workbooks(1).Charts.Add
Dim iRow As Integer ' variable index de la ligne courante Dim iCol As Integer ' variable index de la colonne courante
Dim strTmpRange As String ' variable
temporaire
OuvreExcel = 1
Call ExcelSettings 'Definit une feuille par classeur
Set NameSelect = CmbNom Call RecupChaineNomComp NameSelect = Reslec
Set Ep = Cmbep
Set rec = db.OpenRecordset("SELECT * FROM [RQTNOM] where [Nom] = '" & NameSelect & "' and [Epreuves]='" & Ep & "' order by [Date]")
Wend ' Insère deux plages nommées : For iRow = 1 To xcount 'Définition de la plage de cellules : 'Par la notation RiCi '(Entrez les 2 lignes suivantes sur une seule ligne) strTmpRange = "Feuil1!R" & iRow & "C" & Format$(1) & ":R" & iRow & "C" & Format$(4)
'Autre méthode : par l'objet objXLsheet et la méthode Range '(Retirer le caractères de commentaire et entrer les 2 lignes 'suivantes sur une seule ligne) 'strTmpRange = objXLsheet.Range (objXLsheet.Cells(iRow, 1),objXLsheet.Cells (iRow,'cNumCols)).Address
'Définition du nom de plage '(Entrez les 2 lignes suivantes sur une seule ligne) 'xlSheet.Parent.Names.Add "range" & Format$(iRow), "=" & strTmpRange
Next iRow
'Assigne les plages créées ci-dessus en tant que séries individuelles 'du graphique : For iRow = 1 To xcount