solid_sneak06
Messages postés5Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 4 mars 2009
-
8 oct. 2007 à 21:09
dodofolie
Messages postés12Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention28 mai 2009
-
25 mai 2009 à 23:43
Bonjour,
j'ai du mal à exporter mes données datagrid vers excel, voici un code que j'ai trouvé sur un site et que normalement doit marcher mais il marche pas chez moi
<!-- BEGIN TEMPLATE: bbcode_code -->Dim i, j, k, l AsInteger
OnErrorGoTo errxcel
Dim xlo AsObject
Set xlo = CreateObject("Excel.Application")
DoEvents
xlo.Visible = True
xlo.workbooks.Add
i = rsProv1.RecordCount
j = DataGrid1.Columns.Count
For k = 0To j - 1
xlo.workbooks(1).sheets(1).Cells(l + 1, k + 1) = DataGrid1.Columns(k).Caption
Next k
l = 0
rsProv1.MoveFirst
DoWhileNot rsProv1.EOF
For k = 0To j - 1
DataGrid1.Col = k
xlo.workbooks(1).sheets(1).Cells(l + 2, k + 1) = DataGrid1.Text
Next k
rsProv1.MoveNext
l = l + 1
Loop
ExitSub
errxcel:
MsgBox "Excel not found"
<!-- END TEMPLATE: bbcode_code -->je sais pas pourquoi ca marche pas, il ouvre justel'excel pas plus et bien sur j'ai le message d'erreur "excel not found" . pourquoi? est ce qu'il a quelque chose à modifier au niveau des préférences ou quoi exactement.
Help les amis
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 8 oct. 2007 à 23:01
Re,
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' On efface les éventuelles données déjà dans la mémoire tampon
Response.Clear()
' On place tout ce qui est destiné au client dans la mémoire tampon
Response.Buffer = True
' On définit le type d'informations renvoyée, ici des données au format Excel
Response.ContentType = "application/vnd.ms-excel"
' On efface le jeu de caractères actuellement défini
Response.Charset = ""
' On instancie deux objets qui vont nous permettre de récupérer les données du DataGrid :
' le StringWriter et l'HtmlTextWriter
Dim monStringWriter As StringWriter = New StringWriter
Dim monHtmlTextWriter As HtmlTextWriter = New HtmlTextWriter(monStringWriter)
' On extrait le contenu du DataGrid dans l'HtmlTextWriter
monDG.RenderControl(monHtmlTextWriter)
' On copie le contenu extrait dans la mémoire tampon
Response.Write(monStringWriter.ToString())
' On ferme "le flux" de données et envoie les données au client
Response.End()
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 8 oct. 2007 à 23:17
Bah, j'ai lu 'datagrid', j'ai pensé à .NET tout simplement, vu que VB6 n'était nullement indiqué !
Donc ton truc c'est de générer coté serveur un datagrid vers un excel ?
Si oui, alors tu fais du code dans un ActiveX que tu déploies ensuite dans IIS, apres via une page ASP tu peux invoquer l'appel de conversion Datagrid2Excel et rebalancer coté client les datas sous la forme d'une response HTML de type "application/vnd.ms-excel"
solid_sneak06
Messages postés5Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 4 mars 2009 8 oct. 2007 à 23:54
Je m'excuse c'est ma faute. Merci pour ta reponse mais c'est trop compliqué pour moi ca; le code que j'ai mis au debut est simple et doit marcher mais je sais pas pourquoi il fonctionne pas.
kat40
Messages postés38Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention19 mars 2008 11 mars 2008 à 21:13
Bonjour ,
Je viens d'utliser le code :
Private Sub cmdImprimer_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim xlo As Object
Set xlo = CreateObject("Excel.Application")
DoEvents
xlo.Visible = True
xlo.workbooks.Add
i = rsProv1.RecordCount
j = DataGrid1.Columns.Count
For k = 0 To j - 1
xlo.workbooks(1).sheets(1).Cells(l + 1, k + 1) = DataGrid1.Columns(k).Caption
Next k
l = 0
rsProv1.MoveFirst
Do While Not rsProv1.EOF
For k = 0 To j - 1
DataGrid1.Col = k
xlo.workbooks(1).sheets(1).Cells(l + 2, k + 1) = DataGrid1.Text
Next k
rsProv1.MoveNext
l = l + 1
Loop
End Sub
Et j'ai enlever la gestion des erreurs mon problème, je suis débutante, ça bloque à la ligne:
i = rsProv1.RecordCount
Le message d'erreur est: Run-time error 424 object required
kat40
Messages postés38Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention19 mars 2008 13 mars 2008 à 20:09
J'ai trouvé rs....vraiment débutante,
Mon problème, ma boucle fonctionne pas, seulement le premiere ligne de données, ma ligne d'entête est ok s'incrit et à l'infinit??
Private Sub cmdImprimer_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim xlo As Object
Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
cnx.ConnectionString = "Provider=SQLOLEDB;Data Source=TEST;Initial Catalog=CaisseDCN;User ID=ssssss;Password=test;"
cnx.Open
Set xlo = CreateObject("Excel.Application")
rst.Open "SELECT * FROM ", cnx
DoEvents
xlo.Visible = True
xlo.workbooks.Add
i = rst.RecordCount
j = DataGrid1.Columns.Count
For k = 0 To j - 1
xlo.workbooks(1).sheets(1).Cells(l + 1, k + 1) = DataGrid1.Columns(k).Caption
Next k
l = 0
rst.MoveFirst
Do While Not rst.EOF
For k = 0 To j - 1
DataGrid1.Col = k
xlo.workbooks(1).sheets(1).Cells(l + 2, k + 1) = DataGrid1.Text
Next k
rst.MoveNext
l = l + 1
Loop
dodofolie
Messages postés12Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention28 mai 2009 25 mai 2009 à 02:10
Salut tt le monde bein voila mon code pour le meme sujet
je veux exporter des données a partir d'un datagridview en excel
g utilisé ce code et la feuille excel s'affiche
mai les données ne s'affichent pas
l'ereur qui apparait du coté du vs2008 est comme suit l'index est hors limites sur cette ligne :
xl.cells(l + 1, j + 1) = DataGridView1.Rows(l).Cells(c).Value
erokage
Messages postés91Date d'inscriptionmardi 19 mai 2009StatutMembreDernière intervention23 juin 2009 25 mai 2009 à 08:10
Merci dodofolie !
je travail sur vb 2008 et ton code fonctionne, (ce que je n'ai pas réussi a faire jusqu'à maintenant) le seul problème est qu'il ne m'affiche pas tout mon datagrid,
je ne comprend pas tout ton code en espérant que tu aura se message!
dodofolie
Messages postés12Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention28 mai 2009 25 mai 2009 à 11:49
salut erokage bein oui j'ai le méme probleme sur excel il m'affiche pas tt le datagrid just une colone et c'était ca ma question
bein mon code consiste a parcourir le datagrid view
et mettre le non de la colunms (1er boucle) ds l'excel
et la 2eme boucle(ou yaa ereur) mettre les données sur excel mes ca marche pass alors si ta une idée
alors n'hesite pas a m'aideez
merciii a ts
erokage
Messages postés91Date d'inscriptionmardi 19 mai 2009StatutMembreDernière intervention23 juin 2009 25 mai 2009 à 13:29
Il faut que je règle ce problème aujourd'hui alors tavaillon ensemble !
J'ai essayé de retoucher le programme mais rien y fait de plus je suis un nauvice dans le visual basic j'ai commencer lundi