![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 574
|
Ces codes
- Ouvrent une instance d'Excel - Ouvrent un classeur - Renseignent les combobox des données du classeur Excel, de la feuille et de la colonne voulues - Ferment le classeur sans l'enregistrer - Quittent l'application Excel Ces procédures placent dans une liste les données de la colonne 1 d'une feuille de calculs Excel. Exemple 1 : Renseigner un combobox placé dans un document Word à partir des données issues d'un classeur Excel. Le combobox utilisé est pris dans la "Boîte à outils contrôles" Procédure à placer dans un Module standard Code :
Sub ComboboxDansDocument() Dim xlApp As Object Dim xlCL1 As Variant Dim xlFL1 As Variant Set xlApp = CreateObject("Excel.Application") Set xlCL1 = xlApp.Workbooks.Open("D:\xls\adresses diverses.xls") Set xlFL1 = xlCL1.Worksheets("Feuil1") xlApp.Visible = False For i = 1 To Split(xlFL1.UsedRange.Address, "$")(4) ActiveDocument.ComboBox1.AddItem xlFL1.Cells(i, 1).Value 'Colonne 1 Next xlCL1.Close False xlApp.Quit Set xlApp = Nothing Set xlCL1 = Nothing Set xlFL1 = Nothing End Sub Placer l'appel à la procédure dans l'événement ThisWorkbook_Open du document -> Editeur VBA -> 2 clics sur ThisDocument ouvre la fenêtre de code. Coller cette procédure : Code :
Private Sub Document_Open() ComboDansDocument End Sub Renseigner un combobox placé dans un Userform à partir des mêmes données issues d'un classeur Excel. Procédure à placer dans la feuille de code de l'userform Code :
Private Sub UserForm_Activate() Dim xlApp As Object Dim xlFL1 As Variant Dim xlCL1 As Variant Set xlApp = CreateObject("Excel.Application") Set xlCL1 = xlApp.Workbooks.Open("D:\xls\adresses diverses.xls") Set xlFL1 = xlCL1.Worksheets("Feuil1") xlApp.Visible = False For i = 1 To Split(xlFL1.UsedRange.Address, "$")(4) Me.ComboBox1.AddItem xlFL1.Cells(i, 1).Value 'Colonne 1 Next xlCL1.Close False xlApp.Quit Set xlApp = Nothing Set xlCL1 = Nothing Set xlFL1 = Nothing End Sub Placer l'appel à la procédure dans l'événement ThisWorkbook_Open du document -> Editeur VBA -> 2 clics sur ThisDocument ouvre la fenêtre de code. Coller cette procédure : Code :
Private Sub Document_Open() Userform1.show End Sub Une explication sur Split(xlFL1.UsedRange.Address, "$")(4) : xlFL1.UsedRange.Address donne l'adresse de la plage de donnée sous la forme "A1:" & dernière colonne & dernière ligne Exemple : "A1:Z75" Split convertit cette adresse en tableau(4) où - tableau(0) = "" - tableau(1) = "A" - tableau(2) = "1" - tableau(3) = "Z" - tableau(4) = "75" Dans cet exemple, Split(xlFL1.UsedRange.Address, "$")(4) donne donc 75 Une explication sur les déclarations : Code :
Sub ComboboxDansDocument() Dim xlApp As Object Dim xlCL1 As Variant Dim xlFL1 As Variant Set xlApp = CreateObject("Excel.Application") Set xlCL1 = xlApp.Workbooks.Open("D:\xls\Le Classeur.xls") Set xlFL1 = xlCL1.Worksheets("Feuil1") Si cela pose problème, valider cette référence ( -> Editeur VBA -> Outils -> Références ) et utiliser la syntaxe suivante : Code :
Dim xlApp As Excel.Application Dim xlCL1 As Excel.Workbook Dim xlFL1 As Excel.Worksheet Set xlApp = CreateObject("Excel.application") Set xlCL1 = xlApp.Workbooks.Open("D:\xls\Le Classeur.xls") Set xlFL1 = xlCL1.Worksheets("Feuil1")
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
![]() |
![]() |
||
Renseigner une listbox, ds un document ou un userform, avec données de classeur Excel
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|