Bonjour,
J'ai réutilisé ce code.
Cependant, si j'ai bien compris, ce code permet de trier les noms de feuilles du classeur. Je cherche uniquement à récupérer le nom de la première feuille, quel qu’il soit.
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Option Explicit Sub Tst() Dim Cn As ADODB.Connection Dim oCat As ADOX.Catalog Dim Fichier As Variant Dim Feuille As ADOX.Table Dim Rst As ADODB.Recordset Dim texte_SQL As String Dim Ar() As String, i As Long Fichier = Application.GetOpenFilename("Fichier Excel, *.csv;*.xls") If Fichier = False Then Exit Sub Set Cn = New ADODB.Connection Set oCat = New ADOX.Catalog Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fichier & ";Extended Properties=Excel 8.0;" Set oCat.ActiveConnection = Cn For Each Feuille In oCat.Tables i = i + 1 ReDim Preserve Ar(i) Ar(i) = Feuille.Name Next Feuille texte_SQL = "SELECT * FROM [" & Ar(1) & "]" Set Rst = New ADODB.Recordset Set Rst = Cn.Execute(texte_SQL) Range("A2").CopyFromRecordset Rst Set Feuille = Nothing Set oCat = Nothing Cn.Close Set Cn = Nothing End Sub
J'ai essayer des différentes manières ( sans utiliser ADOX et en utilisant Sheets(1)) et en essayer de modifier la boucle ForEach pour ne récupérer que la première valeur mais je ne trouve pas de solution. Pouvez vous m'aider à trouver une solution?
Merci d'avance
Tohrak
Partager