Probléme pour Mettre un tableau Excell dans un flexgrid

Résolu
cs_Geronimo62 Messages postés 4 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 7 juin 2005 - 1 juin 2005 à 17:35
cs_Geronimo62 Messages postés 4 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 7 juin 2005 - 7 juin 2005 à 17:16
Bonjour à tous,



Je fait appelle à votre grand savoir pour m'aider à résoudre un
probléme simple, voila, j'ai un petit programme en vba à terminer mais
je suis bloqué car je n'arrive pas à copier des données d'une feuille
excel dans une flexgrid.



En faite il me met erreur d'execution 424, objet requis et quand je clic sur debogage le programme est bloquer au niveau de



.Clip = Replace(Clipboard.GetText, vbCrLf, vbCr)



Voici le code source :

je le lance à partir d'un bouton sur une Userform qui contient le
flexgrid,j'ai essayé de le mettre sur un module ou directement dans le
bouton est NADA



Public Sub Excel2Flexgrid(flexGrid As MSFlexGrid, ByVal fichier As String)

Dim xlapp As Excel.Application

Dim classeur As Excel.Workbook, feuille As Excel.Worksheet, Plage As Excel.Range



Set xlapp = New Excel.Application

xlapp.DisplayAlerts = False

Set classeur = xlapp.Workbooks.Open(fichier)

Set feuille = xlapp.ActiveSheet

Set Plage = feuille.Range("A1").CurrentRegion







With flexGrid

.Cols = Plage.Columns.Count

.Rows = Plage.Rows.Count

.Col = 0

.Row = 0

.ColSel = .Cols - 1

.RowSel = .Rows - 1

Plage.Copy

.Clip = Replace(Clipboard.GetText, vbCrLf, vbCr)

End With



Set Plage = Nothing

Set feuille = Nothing

classeur.Close False

Set classeur = Nothing

xlapp.Quit

Set xlapp = Nothing

End Sub



Qulqu'un aurrai une idée ?

3 réponses

cs_Geronimo62 Messages postés 4 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 17:16
A priori, ça ne fonctionne pas en VBA donc la solution est de faire des tiotes boucle avec for ...



For i = 1 To tablo.Rows

For j = 1 To tablo.Cols


tablo.Text = feuille.Rows.Cells(i, j).Value


If tablo.Col <> tablo.Cols - 1 Then


tablo.Col = tablo.Col + 1


End If

Next j


If tablo.Row <> tablo.Rows - 1 Then


tablo.Row = tablo.Row + 1


j = 1


tablo.Col = 0

End If

Next i
3
fg10 Messages postés 34 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 24 mai 2010 1
1 juin 2005 à 20:23
Methode "simple" avec 2 boucles
for rang = 0 to nbrang
for colonne= 0 to nbcolonne
flexgrid.row= rang
flexgrid.col=colonne
flexgrid.cels= celluleExcel(rang,colonne)
next colonne
next rang

quelquechose comme ca
0
cs_Geronimo62 Messages postés 4 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 7 juin 2005
3 juin 2005 à 09:43
Pas d'autre suggestion ?
0
Rejoignez-nous