ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 12 janv. 2006 à 21:47
Non, il faut utiliser une autre techniques !!!
Si tu ouvres les fichiers, tu liras tous leurs octets.
Or, tu ne connais pas la structure (des octets) des fichiers Excel. Tu
ne peux donc t'amuser à lire directement!!! C'est un peu plus compliqué
que ça!
Tu es donc obligé de passer par Excel lui-même.
Pour se faire tu crées un objet Application Excel puis, de celui-ci un
objet Workbook (Classeur). De cet objet (reflétant donc un classeur!)
tu ouvres ton fichier via la Méthode "Open" de l'objet
Workbook
.
Ensuite, tu crées, de cet objet (ce fichier/classeur ouvert), une
variable objet faisant référence à Worksheet (Feuille de travail).
Ainsi tu peux accéder, sans avoir ouvert Excel, accéder à toutes les
fonctions du VBA, des objets, méthodes et propriétés de Excel. Et donc,
accéder à toutes les cellules de ton fichier.
Ensuite, il faut faire du VBA pour récupérer la valeur de chaque
cellule de la colonne 1 ("A" en notation L1C1). Le scanne s'arrêtera
lorsqu'il y aura une cellule vide car on considérera que la liste est
finie. Mais là, c'est à toi de voir comment tu veux programmer ça !!!
Et ça doit donc te donner un truc du genre :
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("D:\ valeur_du_pas.xls
")
Set xlSheet = xlBook.Worksheets(1)
varCompteur = 1
Do
varText = xlSheet.Cells(
varCompteur,
1).Value 'VBA
If varText = "" Then Exit Do 'Une cellule vide a été rencontrée. La liste est donc finie. On sort.
'Else donc
Pas.AddItem varText
varCompteur = varCompteur + 1
Loop
Bon, je l'ai pas testé mais a peu de choses près ça doit fonctionner!
Pense à rajouter la "Référence" (cf. menu Projet) à "Microsoft Excel ..." car autrement tu ne pourras pas utiliser ces objets appartenant à Excel!
Petit conseil : Nome tes contrôles et variables de manière explicite. Evite de nomer un contrôle ComboBox "Pas". Nome le plutôt "cboPas" pour ComBobOx, ... Là, je te laisse te référer à la MSDN (l'aide du VB).
Et aussi : PENSE A TOUJOURS nous dire, lorsque tu poses une question sur le forum, avec quel langage tu programmes et en quelle version.
Le code ci-dessus est en VB6. Si tu es en VBA (Excel par exemple) il ne sera pas viable!!!
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )