Bonjour
Je suis entrain d'écrire une macro qui fait la chose suivante :
1- Un bouton dans une feuille fait apparaitre mon Userform
2- ensuite sur le userform, j'ai un bouton qui, une fois cliqué dessus, fait apparaite une InputBox dans laquelle l'utilisateur doit reseigner le chemin d'accès du dossier excel qu'il doit ouvrir.
3- Une fois le chemin renseigné, le modèle ADO me permet d'accéder au fichier sans l'ouvrir, de récupérer le nom de toutes les feuilles présentes dans le fichier, et de me les afficher dans mon UserForm sous forme de menu déroulant.
C'est ce menu déroulant que je voudrais. Voici le bout de code que j'ai écris pour les 3 premières étapes.
Mon soucis réside sur cette étape (introduction du nom des feuilles dans un menu déroulant). Je ne sais pas si la ListBox me permettra de faire la suite, qui est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub CommandButton1_Click() Dim lien As String, i As Integer, j As Integer Dim con As ADODB.Connection, oCat As ADOX.Catalog Dim Feuille As ADOX.Table, TteFeuille As String, Tableau() As String lien = InputBox("Renseigner le lien du dossier à traiter", "Lien du dossier contrepartie") Set con = New ADODB.Connection Set oCat = New ADOX.Catalog con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & lien & _ "Extended Properties=Excel 8.0;" Set oCat.ActiveConnection = con j = 0 For Each Feuille In oCat.Tables j = j + 1 ReDim Preserve Tableau(1 To j) Tableau(j) = Feuille.Name Next Feuille End Sub
lorsque l'utilisateur clique sur l'un des noms de feuilles affichée, qu'il puisse récupérer les données contenues dans cette feuille.
Je sais que cela est possible avec le modèle ADO, mais je ne vois pas encore comment je vais procéder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub ListBox1_Click() For i = 1 To j ListBox1.Value = Tableau(i) Next i If ListBox1.Value.Selected = True Then End Sub
Partager