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

Messages postés
2
Date d'inscription
jeudi 13 mars 2003
Dernière intervention
10 août 2005
- - Dernière réponse : v_b
Messages postés
35
Date d'inscription
mardi 9 août 2005
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.
Afficher la suite 

14 réponses

Meilleure réponse
Messages postés
35
Date d'inscription
mardi 9 août 2005
Dernière intervention
16 septembre 2006
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Messages postés
35
Date d'inscription
mardi 9 août 2005
Dernière intervention
16 septembre 2006
0
Merci
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"
Messages postés
2
Date d'inscription
jeudi 13 mars 2003
Dernière intervention
10 août 2005
0
Merci
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.)
Messages postés
3
Date d'inscription
mardi 11 mars 2003
Dernière intervention
16 janvier 2007
0
Merci
Bonjour V_B, rsProv1 est un recordset, et la connection se pointe où?
Messages postés
20
Date d'inscription
samedi 19 avril 2003
Dernière intervention
21 février 2012
0
Merci
Merci pour tout le monde,
C Super....
Messages postés
91
Date d'inscription
mardi 19 mai 2009
Dernière intervention
23 juin 2009
0
Merci
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!
Messages postés
20
Date d'inscription
samedi 19 avril 2003
Dernière intervention
21 février 2012
0
Merci
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 ....
Messages postés
91
Date d'inscription
mardi 19 mai 2009
Dernière intervention
23 juin 2009
0
Merci
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.
Messages postés
2
Date d'inscription
mardi 15 janvier 2008
Dernière intervention
8 février 2010
0
Merci
franchement v_b tu mérite ce pseudo.Merci bokou mec t'es 1
Messages postés
35
Date d'inscription
mardi 9 août 2005
Dernière intervention
16 septembre 2006
0
Merci
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 !
Messages postés
5
Date d'inscription
lundi 2 octobre 2006
Dernière intervention
16 octobre 2012
0
Merci
MERCI INFINIMENT
Messages postés
1
Date d'inscription
jeudi 8 avril 2010
Dernière intervention
30 juin 2011
0
Merci
Je suis à la recherche d'un exemple d'Afficher le contenu d'un datagrid vb6 dans une feuille excel.
merci d'avance.
Messages postés
3
Date d'inscription
mardi 7 juin 2011
Dernière intervention
22 février 2012
0
Merci
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.
Messages postés
35
Date d'inscription
mardi 9 août 2005
Dernière intervention
16 septembre 2006
0
Merci
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.