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"
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"
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.)
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:
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
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!