Export d'un datagrid vers excel en vb6 [Résolu]

cs_ROPE 2 Messages postés jeudi 13 mars 2003Date d'inscription 10 août 2005 Dernière intervention - 9 août 2005 à 23:55 - Dernière réponse : v_b 35 Messages postés mardi 9 août 2005Date d'inscription 16 septembre 2006 Dernière intervention
- 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.

Merci d'avance.
Afficher la suite 

14 réponses

v_b 35 Messages postés mardi 9 août 2005Date d'inscription 16 septembre 2006 Dernière intervention - 10 août 2005 à 12:14
+3
Utile
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"

car le premier va te faire un bug
Cette réponse vous a-t-elle aidé ?  
v_b 35 Messages postés mardi 9 août 2005Date d'inscription 16 septembre 2006 Dernière intervention - 10 août 2005 à 11:55
0
Utile
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 2 Messages postés jeudi 13 mars 2003Date d'inscription 10 août 2005 Dernière intervention - 10 août 2005 à 22:44
0
Utile
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.)
tnRAVALISON 3 Messages postés mardi 11 mars 2003Date d'inscription 16 janvier 2007 Dernière intervention - 16 janv. 2007 à 06:11
0
Utile
Bonjour V_B, rsProv1 est un recordset, et la connection se pointe où?
Elmarzougui 20 Messages postés samedi 19 avril 2003Date d'inscription 21 février 2012 Dernière intervention - 19 mai 2009 à 14:49
0
Utile
Merci pour tout le monde,
C Super....
erokage 91 Messages postés mardi 19 mai 2009Date d'inscription 23 juin 2009 Dernière intervention - 25 mai 2009 à 09:14
0
Utile
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:


Dim c, j As Integer

Dim xl As New Object

xl = CreateObject("Excel.application")



xl.visible = True

xl.workbooks.Add()

For c = 0 To DataGridView1.Columns.Count - 1

xl.cells(c + 1, 1) = DataGridView1.Columns(c).Name

Next

For l As Integer = 0 To DataGridView1.Rows.Count - 1

For c = 0 To DataGridView1.Rows.Count - 1

xl.cells(l + 1, j + 1) = DataGridView1.Rows(l).Cells(c).Value

Next c

Next l


mais il ne veut pas afficher tout le Datagrid;
c'est pour cette raison que je demande votre aide!
Elmarzougui 20 Messages postés samedi 19 avril 2003Date d'inscription 21 février 2012 Dernière intervention - 26 mai 2009 à 00:17
0
Utile
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



Bon courage ....
erokage 91 Messages postés mardi 19 mai 2009Date d'inscription 23 juin 2009 Dernière intervention - 26 mai 2009 à 07:19
0
Utile
Merci, mais je trouver la solution hier soir!
N'ayant pas eu le temps de répondre hier je vous l'affiche tous de suite!

Dim xl As New Object

xl = CreateObject("Excel.application")



xl.visible = True

xl.workbooks.Add()


For x As Integer = 0 To DataGridView1.Rows.Count - 1
For y As Integer = 0 To DataGridView1.ColumnCount - 1

xl.cells(x + 1, y + 1) = DataGridView1.Rows(x).Cells.Item(y).Value.ToString

Next y
Next x

Le fichier excel sera afficher comme dans le datagrid, ce programe fonctionne sur vb 2008 donc je ne sais pas pour les version enterrieur.
DydyStone 2 Messages postés mardi 15 janvier 2008Date d'inscription 8 février 2010 Dernière intervention - 8 janv. 2010 à 15:00
0
Utile
franchement v_b tu mérite ce pseudo.Merci bokou mec t'es 1
v_b 35 Messages postés mardi 9 août 2005Date d'inscription 16 septembre 2006 Dernière intervention - 8 janv. 2010 à 21:48
0
Utile
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!

Bon courage et bonne chance à tous !
anisvb 5 Messages postés lundi 2 octobre 2006Date d'inscription 16 octobre 2012 Dernière intervention - 31 janv. 2010 à 02:33
0
Utile
MERCI INFINIMENT
rimoutcha22 1 Messages postés jeudi 8 avril 2010Date d'inscription 30 juin 2011 Dernière intervention - 30 juin 2011 à 16:42
0
Utile
Je suis à la recherche d'un exemple d'Afficher le contenu d'un datagrid vb6 dans une feuille excel.
merci d'avance.
sadia2011 3 Messages postés mardi 7 juin 2011Date d'inscription 22 février 2012 Dernière intervention - 16 févr. 2012 à 12:07
0
Utile
Même si on est en 2012 mais le fait de dire merci à v_b est une obligation,votre code ça marche bien,Merci bien.
v_b 35 Messages postés mardi 9 août 2005Date d'inscription 16 septembre 2006 Dernière intervention - 18 févr. 2012 à 16:58
0
Utile
sadia2011 merci à toi
ravie que mon code t'est utile
bon courage !

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.