MSFLEXGRID

totolaterreur Messages postés 4 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 6 février 2006 - 3 févr. 2006 à 08:54
totolaterreur Messages postés 4 Date d'inscription mardi 31 janvier 2006 Statut Membre Derniè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.

2 réponses

jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
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

A+.
Thomas.
0
totolaterreur Messages postés 4 Date d'inscription mardi 31 janvier 2006 Statut Membre Derniè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

Text17.Text = ("B") & j
appxl.Range(Text17.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(j - 1, 1)

Text18.Text = ("C") & k
appxl.Range(Text18.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(k - 1, 2)

Text19.Text = ("D") & l
appxl.Range(Text19.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(l - 1, 3)

Text20.Text = ("E") & m
appxl.Range(Text20.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(m - 1, 4)

Text21.Text = ("F") & n
appxl.Range(Text21.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(n - 1, 5)

Text22.Text = ("G") & o
appxl.Range(Text22.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(o - 1, 6)

Text23.Text = ("H") & p
appxl.Range(Text23.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(p - 1, 7)

Text24.Text = ("I") & q
appxl.Range(Text24.Text).Select
appxl.ActiveCell.FormulaR1C1 = grille.TextMatrix(q - 1, 8)

Wend
0
Rejoignez-nous