remplir in combobox avec des données d'excel - VB/VBA/VBS - Programmation
Marsh Posté le 11-02-2006 à 07:40:39
Bonjour,
Il faut ourvir le fichier excel, le lire et le fermer de cette façon.
Sub RemplirCombo()
ExcelFile = "c:\Liste.xls"
Table = "page1"
Set xlAppList = CreateObject("Excel.Application" ) 'crée une instance excel
Set MyWorkbook = xlAppList.Workbooks.Open(ExcelFile, 0, , , "" ) 'ouvrre ce fichier excel
MyWorkbook.sheets(Table).Select
For Each c In ActiveSheet.Range("A1", "A" & Trim(Str(Cells(65535, 1).End(xlUp).Row)))
' Trim(Str(Cells(65535, 1).End(xlUp).Row)) = Repère la dernière cellule remplie de la colonne
UserForm1.ComboBox16.AddItem sheets(Table).Cells(c.Row, 1)
Next
'penser à refermer le classeur en l'enregistrant si il a été modifié
MyWorkbook.Close savechanges:=True
Set xlAppList = Nothing
Set MyWorkbook = Nothing
End Sub
Cordialement
Epéna
Marsh Posté le 11-02-2006 à 10:33:18
merci !!
je vais tester cela
ca ne marche pas
ça me met "Sub ou fonction non definie"
et ca bloque sur Cells (de la ligne commencant par For Each c In.....)
j'ai pourtant un fichier XLS, avec une feuille nommée page1 et la colonne A de cette page contient des données
Je precise que la macro fonctionne sous WORD
les données a recuperer sont sous EXCEL
Marsh Posté le 11-02-2006 à 17:02:10
Il faut ajouter Microsoft Excel X,0 Objet Librairy dans les références du projet Word (Outils/Références). X dépendant de la version: 8 pour excel 97, 9 pour excel 2000, etc. Il faufra ajouter la bonne référence si l'application fonctionne sur un autre poste avec une version Office différente.
Bon courage
Epéna
Marsh Posté le 11-02-2006 à 21:59:49
Merci encore !!
ça marche avec ta solution
par contre a quoi ca sert ça, a la fin?
Set xlAppList = Nothing
Set MyWorkbook = Nothing
Marsh Posté le 12-02-2006 à 07:38:33
Il faut supprimer une variable objet après utilisation par l'intruction Set variable = Nothing pour de multiples raisons : cela libère les ressouces système attachées à l'objet et cela peut éviter des erreurs lors du 2 ème appel de procédure.
A noter qu'il faut déclarer les variables objet ce que j'avais omis de faire :
Dim xlAppList As Excel.Application
Dim MyWorkbook As Excel.Workbook
Cordialement
Epéna
Marsh Posté le 11-02-2006 à 00:25:51
Bonjour
j'ai un combobox que j'ai rempli avec cette methode :
Open "c:\liste.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, InputData
ComboBox16.AddItem (InputData)
Loop
Close #1
comment faire pour le remplir avec les cellules contenues dans un fichier excel en supposant que le fichier s'appelle:
C:\liste.xls
ce fichier a une feuille nommée "page1"
les données sont dans la colonne A