Mettre un tableau Excell dans un flexgrid

boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007 - 20 août 2004 à 16:24
Wadilabidi Messages postés 1 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 30 août 2005 - 30 août 2005 à 14:15
Voila,

J'ai un tableau sur une feuille Excell dont je veux mettre toutes les données dans un flexgrid.

Comment faire?
Merci

9 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
20 août 2004 à 16:41
Voici une méthode dont le principe consiste à faire un copier-coller de la feuille Excel vers la MsFlexGrid. Tu dois ajouter la reference "Microsoft Excel x.0 Object Library" à ton projet.

Places le code suivant dans un module standard. La procédure Excel2Flexgrid importe dans une MSFlexGrid le fichier dont le nom est passé en paramètre.

----------------------------------------------------------------------------------
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
Set xlapp = Nothing

End Sub
---------------------------------------------------------------------------------
Pour appeler la Procedure :
call Excel2Flexgrid(Me.Grid1,"C:\MonFichier.xls")

It@li@
0
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
20 août 2004 à 19:05
Merci pour ton code! Je vais le tester ce soir.

La reference "Microsoft Excel x.0 Object Library" ne figure pas dans ma liste d'objets disponibles (Projet/Composants...) mais par contre elle est dans Projet/Références... et j'ai coché la case.
L'objet est maintenant dispo pour VB

Merci pour ton aide!
C'est très apprécié!
0
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
22 août 2004 à 15:40
Salut It@li@,

Ton code fonctionne tellement bien que j'ai décidé de sauvegarder les données de mon flexgrid dans une feuille Excell plutôt que dans un fichier txt comme c'est mon habitude.

Alors tu n'aurais pas "par hasard" dans ta poche un code qui fait un copier-coller du MsFlexGridde vers la feuille Excel?

Evidemment je peux passer quelques heures à en écrire un mais si tu en a un sous la main...

Merci pour ton aide.
0
azizitariq2005 Messages postés 2 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 7 mars 2005
2 mars 2005 à 03:07
salut boursicotteur
je m'excuse pour le dérangement
mais est ce que tu peut m'envoyer le programme (le programme complet en vb) qui t'as permis d'importer une feuille Excel et la mettre dans une flexgrid.
parceque j'essaye avec le Code du Membre ITALIA, mais j'arrive pas.
merci d'avance.
0

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

Posez votre question
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
2 mars 2005 à 08:45
>>azizitariq2005 : Quel est ton Souci ??
>>boursicotteur : Mon Code ne Repond pas à ton Besoin ??

It@li@
0
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
2 mars 2005 à 16:16
Non je ne peux pas t'envoyer mon code au complet car en fin de compte j'ai décidé de ne pas utiliser excel pour stocker mes données. Oui je pouvais y lire le tableau très facilement mais par contre j'avais quelques problèmes pour y écrire un tableau. Le tableau s'écrivait mais apparemment c'est comme si je ne fermais pas la page et la j'avais une erreur. C'était probablement pas un gros problème mais j'ai quand-même décidé de stocker mon tableau dans un fichier txt. C'est très rapide et en prime c'est compatible partout car tout le monde peut lire un fichier txt; Ce qui n'est pas le cas avec excel car il faut AVOIR excel.

Si je me souviens bien, le code de italia fonctionnait bien comme tel mais j'y ai tout de même ajouté une toute petite ligne vers la fin.

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 feuille = xlapp.Sheets("Tout")
'Set Plage = feuille.Range("A1").CurrentRegion
Set Plage = feuille.Range("a23").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
0
azizitariq2005 Messages postés 2 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 7 mars 2005
7 mars 2005 à 01:17
bon tout d'abord merci de votre interet !
j'ai un travail à rendre en VB ou il m'est demandé de faire un prgramme qui permet :
- Récupérer une feuille Excel à partir d'un fichier excel existant.
(Donnée + Formatage + Formules de calcules)
- Envoyer des données saisies sur une grille (en VB) vers un fichier Excel a créer.

Merci de votre Aide
0
spidersub Messages postés 4 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 21 juin 2005
21 juin 2005 à 11:08
bonjour,

g un piti probleme car je fais une appli sur excel qui utilise une BD Oracle sous forme de TCD

mais a un endroit, comme je dois faire un top 3 des ventes, je stock
mes données dans un tcd caché et copie colle les 3 premieres lignes du
tcd préallablement classé en decroissant dans un autre tableau
excel.

le probleme est que g une erreur...incompatibilité de type.., ou encore erreur definie par l'appli ou par l'objet

Voici le bout de code qui merde:



ActiveSheet.PivotTables("VENTES_MASQUES").PivotSelect _

Range("C9:D11"), xlDataAndLabel, True

Selection.Copy

Sheets("TOP3_FLOP3_DES_VENTES").Select

Range("C15:D17").Select

ActiveSheet.Paste

Range("F16").Select





est ce que quelqu'un pourrait m'aider svp???
0
Wadilabidi Messages postés 1 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 30 août 2005
30 août 2005 à 14:15
Moi je serais interresé par un bout de code qui fait le contraire...
c'est à dire qu'il me selectionne tout le contenu du flexgrid et qu'il me créé un fichier excel avec....
Si quelqu'un a ca en stock je suis preneur.

Merci
Wadilabidi
0
Rejoignez-nous