cs_ROPE
Messages postés2Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention10 août 2005
-
9 août 2005 à 23:55
v_b
Messages postés35Date d'inscriptionmardi 9 août 2005StatutMembreDernière intervention16 septembre 2006
-
18 févr. 2012 à 16:58
Je suis à la recherche d'un exemple d'exportation d'un datagrid alimenté par ADO vers excel en VB6.
v_b
Messages postés35Date d'inscriptionmardi 9 août 2005StatutMembreDernière intervention16 septembre 2006 10 août 2005 à 12:14
vaut mieux le remplacer par celui ci
Dim i, j, k, l As Integer
On Error GoTo errxcel
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
Exit Sub
errxcel:
MsgBox "Excel not found"
v_b
Messages postés35Date d'inscriptionmardi 9 août 2005StatutMembreDernière intervention16 septembre 2006 10 août 2005 à 11:55
ce code je viens de l'établir hier , tu peux l'essayer dans une fonction où tu veux transférer les données de datagrid vers excel
j'espère que ça pourra t'être utile
Dim i, j, k, l As Integer
On Error GoTo errxcel
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
For l = 0 To i - 1
For k = 0 To j - 1
DataGrid1.Col = k
DataGrid1.Row = l
xlo.workbooks(1).sheets(1).Cells(l + 2, k + 1) = DataGrid1.Text
Next k
Next l
Exit Sub
errxcel:
MsgBox "Excel not found"
cs_ROPE
Messages postés2Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention10 août 2005 10 août 2005 à 22:44
Un tout grand merci V_B pour ton exemple, il tourne sans problème.
Le seul soucis est le temps d'exécution pour l'exportation d'un grand nombre de lignes et colonnes (dans mon cas 12000 lignes et 73 colonnes au maximum si je prends tout le recordset.)
erokage
Messages postés91Date d'inscriptionmardi 19 mai 2009StatutMembreDernière intervention23 juin 2009 25 mai 2009 à 09:14
Bonjour!
Mon problème aujourd'hui et que je tourne sur VB 2008!
Si l'un d'entre vous a une solution car ce code ne fonctionne pas!
pour ma part j'ai essayé celui ci:
Elmarzougui
Messages postés20Date d'inscriptionsamedi 19 avril 2003StatutMembreDernière intervention21 février 2012 26 mai 2009 à 00:17
Private Sub cmdimprimerexcel_Click()
Dim i, j, k, l As Integer
On Error GoTo errxcel
Dim xlo As Object
Set xlo = CreateObject("Excel.Application")
DoEvents
xlo.Visible = True
'xlo.Workbooks.Add
xlo.Workbooks.Open App.Path & "\emp.xls"
'emp.xls est le fichier Excel à éditer
i = emplois.Recordset.RecordCount
j = DataGrid1.Columns.Count
For k = 2 To j - 1
xlo.Workbooks(1).Sheets(1).Cells(l + 11, k - 1) = DataGrid1.Columns(k).Caption
Next k
xlo.Workbooks(1).Sheets(1).Cells(4, 3) = etab
xlo.Workbooks(1).Sheets(1).Cells(5, 3) = eng
xlo.Workbooks(1).Sheets(1).Cells(9, 4) = emplois.Recordset.RecordCount
xlo.Workbooks(1).Sheets(1).Cells(37, 4) = Date
For l = 0 To i - 1
For k = 2 To j - 1
DataGrid1.Col = k
DataGrid1.Row = l
xlo.Workbooks(1).Sheets(1).Cells(l + 12, k - 1) = DataGrid1.Text
Next k
Next l
Exit Sub
errxcel:
MsgBox "Pas des données à exporter ..."
End Sub
v_b
Messages postés35Date d'inscriptionmardi 9 août 2005StatutMembreDernière intervention16 septembre 2006 8 janv. 2010 à 21:48
Je suis ravie de voir mon code vous est utile. Je l'avais développé quand j'étais encore étudiante. Désolée si j'ai pas pu répondre à certaines questions durant ce temps, ça fait trois que j'ai pas mis les mains sur un code du coup j'ai tout oublié. Faut dire que le développement me manque un peu!