totolaterreur
Messages postés4Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention 6 février 2006
-
3 févr. 2006 à 08:54
totolaterreur
Messages postés4Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention 6 février 2006
-
3 févr. 2006 à 11:14
Salut
Voilà, j'ai un petit problème.
Je fait une requête SQL dans VB. Le résultat que j'obtient, je l'importe dans une MSFLEXGRID et je voudrais que cette MSFLEXGRID soit exportée dans un fichier Excel lorsque je clique sur un bouton.
Mais j'y arrive pas. J'ai bien trouvé un moyen, mais pour que ça fonctionne, il faudrait que je recopie au moins 5000 fois le code donc ça va pas.
Si vous pouvez m'aider, ce serait sympa.
jannoman
Messages postés256Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention20 février 20081 3 févr. 2006 à 10:13
salut !ben pour ouvrir excel, tu le mets en référence dans ton projet, puis tu fais ce que tu as fait (un truc du genre set xlapp New Excel.application, set xlbook Excel.workbooks.open("...")
puis tu fais
for k = 1 to n
for l = 1 to m
xlsheet.cells(k,l)=me.msflexgrid1.textmatrix(k,l)
next l
next m
puis xlapp.close ou qqchose du genre, mais t'as dis que tu savais faire ca
totolaterreur
Messages postés4Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention 6 février 2006 3 févr. 2006 à 11:14
Merci beaucoup
Sinon, je viens de trouver comment faire. Ca peut intéresser quelqu'un donc voilà comment j'ai fait :
'numéros de ligne de la msflexgrid
i = 0
j = 0
k = 0
l = 0
m = 0
n = 0
o = 0
p = 0
q = 0
Dim nb As Integer
Set appxl = New Excel.Application
appxl.Application.DisplayAlerts = False
'ouverture du fichier excel
appxl.Visible = True
'nouveau classeur
appxl.Workbooks.Add
While j <> grille.Rows
'ajoute 1 au numéro de ligne tant qu'il n'est pas arrivé à la fin
'de la msflexgrid
i = i + 1
j = j + 1
k = k + 1
l = l + 1
m = m + 1
n = n + 1
o = o + 1
p = p + 1
q = q + 1
' text1.text enregistre le numéro de cellule dans laquelle sera exportée la valeur
Text1.Text = ("A") & i ' i étant le numéro de la ligne
appxl.Range(Text1.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(i - 1, 0)
' on soustrait 1 à la ligne pour qu'il prenne en compte le titre de colonne