Bonjour,
J'ai le code ci-après qui me permet de lire l'ensemble des cellules nommées, les [I]["named range"/I] donc, et qui fonctionne très bien. Mon problème/souhait serait de ne sélectionner que les cellules nommées/"named range" dont j'ai besoin car les feuilles Excel que je lis contiennent près d'un millier de cellules nommées !
Bref, même la boucle s'exécute assez rapidement c'est pas très optimisé d'une part et lorsque l'on multiplie cette boucle par autant de fichiers lus cela prend tout de suite un peu de temps (je lis quelque dizaines de fichiers à chaque fois)
Idéalement il faudrait que je puisse faire une requête du type
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
40
41
42
43 Dim Cn As ADODB.Connection Dim Rst As ADODB.Recordset, Rsc As ADODB.Recordset Set Cn = New ADODB.Connection With Cn .Provider = "MSDASQL.1" .ConnectionString = "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & Path & "\" & fName & ";ReadOnly=True;" .Open End With Set Rsc = Cn.OpenSchema(adSchemaColumns, Array(Empty, Empty, StrTable, Empty)) While Not Rsc.EOF 'Debug.Print Right(Rsc!Table_Name, 1), Rsc!Table_Name If Right(Rsc!Table_Name, 1) <> "$" Then 'Exclude Sheet Debug.Print Rsc!Table_Name, Rsc!Column_Name Select Case Rsc!Table_Name Case "Champ1" Champ1= Rsc!Column_Name Case "Champ2" Champ2 = Rsc!Column_Name Case "Champ3" Champ3 = Rsc!Column_Name Case "Champ4" Champ4 = Rsc!Column_Name End Select End If Rsc.MoveNext Wend Rsc.Close Set Rsc = Nothing Cn.Close Set Cn = Nothing
Mais est-ce la bonne solution et si tel est le cas je ne sais pas trop comment m'y prendre au niveau syntaxique est-ce un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 strSQL="Select Table_Name, Column_Name where Table_Name="Champ1" and Table_Name="Champ2" and Table_Name="Champ3" and Table_Name="Champ4""
Merci de votre aide car j'ai cherché de l'aide via les moteurs de recherche sans réellement trouver de solution
Partager