Export d'un datagrid vers excel en vb6

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

Merci d'avance.

14 réponses

v_b
Messages postés
35
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
16 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"

car le premier va te faire un bug
3
v_b
Messages postés
35
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
16 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"
0
cs_ROPE
Messages postés
2
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
10 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.)
0
tnRAVALISON
Messages postés
3
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
16 janvier 2007

16 janv. 2007 à 06:11
Bonjour V_B, rsProv1 est un recordset, et la connection se pointe où?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Elmarzougui
Messages postés
20
Date d'inscription
samedi 19 avril 2003
Statut
Membre
Dernière intervention
21 février 2012

19 mai 2009 à 14:49
Merci pour tout le monde,
C Super....
0
erokage
Messages postés
91
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
23 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:


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!
0
Elmarzougui
Messages postés
20
Date d'inscription
samedi 19 avril 2003
Statut
Membre
Dernière intervention
21 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



Bon courage ....
0
erokage
Messages postés
91
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
23 juin 2009

26 mai 2009 à 07:19
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.
0
DydyStone
Messages postés
2
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
8 février 2010

8 janv. 2010 à 15:00
franchement v_b tu mérite ce pseudo.Merci bokou mec t'es 1
0
v_b
Messages postés
35
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
16 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!

Bon courage et bonne chance à tous !
0
anisvb
Messages postés
5
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
16 octobre 2012

31 janv. 2010 à 02:33
MERCI INFINIMENT
0
rimoutcha22
Messages postés
1
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
30 juin 2011

30 juin 2011 à 16:42
Je suis à la recherche d'un exemple d'Afficher le contenu d'un datagrid vb6 dans une feuille excel.
merci d'avance.
0
sadia2011
Messages postés
3
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
22 février 2012

16 févr. 2012 à 12:07
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.
0
v_b
Messages postés
35
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
16 septembre 2006

18 févr. 2012 à 16:58
sadia2011 merci à toi
ravie que mon code t'est utile
bon courage !
0