Bonjour,
mon problème me semble simple à résoudre pourtant je n'arrive pas à trouver de solution
J'ai un classeur fermé qui contient des feuilles contenant des nom de cellules toto, titi, ttc (pour l'exemple hein !)
j'aimerai pouvoir faire une requête me permettant de récupérer les values/valeurs de ces cellules nommées et là cela coince !
J'ai lu attentivement le tuto en ligne de ce site (Lire et écrire dans les classeurs Excel fermés) qui nous indique comment récupérer un range via un
par exemple, mais je ne souhaite pas y accéder en adressage fixe car l'intérêt de la cellule nommée est justement de s'affranchir de sa localisation sous la forme Colonne:Ligne, et, dans mon cas je ne vais pas maitriser leurs adresses exactes !
Certes il y des solutions telles que ado.net - How do I access an Excel named table via ADO/ODBC? - Stack Overflow qui permettent d'aller lire l'adresse de la cellule nommée pour ensuite faire la bonne requête, mais je ne trouve pas cela très élégant ni efficace 🙄
bref, merci de votre aide car il me semble que ce que je cherche à faire est somme toute affreusement banal !
ci-après le code me permettant de lire parcourir le catalogue de noms, car c'est pour le moment la seule manière que j'ai trouvé pour accéder aux noms titi, toto, ttc (voir fichier en PJ) sans pour autant réussir à lire leur valeur
merci de vos lumières...
mon problème me semble simple à résoudre pourtant je n'arrive pas à trouver de solution
J'ai un classeur fermé qui contient des feuilles contenant des nom de cellules toto, titi, ttc (pour l'exemple hein !)
j'aimerai pouvoir faire une requête me permettant de récupérer les values/valeurs de ces cellules nommées et là cela coince !
J'ai lu attentivement le tuto en ligne de ce site (Lire et écrire dans les classeurs Excel fermés) qui nous indique comment récupérer un range via un
Code:
select * from [feuil&$A1:B2]
Certes il y des solutions telles que ado.net - How do I access an Excel named table via ADO/ODBC? - Stack Overflow qui permettent d'aller lire l'adresse de la cellule nommée pour ensuite faire la bonne requête, mais je ne trouve pas cela très élégant ni efficace 🙄
bref, merci de votre aide car il me semble que ce que je cherche à faire est somme toute affreusement banal !
ci-après le code me permettant de lire parcourir le catalogue de noms, car c'est pour le moment la seule manière que j'ai trouvé pour accéder aux noms titi, toto, ttc (voir fichier en PJ) sans pour autant réussir à lire leur valeur
Code:
Dim Cn As ADODB.Connection
Dim oCat As ADOX.Catalog
Dim oFile, Resultat, StrCnx As String
Dim oSheet As ADOX.Table
oFile = "C:\classeur1.xlsm"
Set Cn = New ADODB.Connection
Set oCat = New ADOX.Catalog
'--- Connexion ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& oFile & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
Set oCat.ActiveConnection = Cn
For Each oSheet In oCat.Tables
Debug.Print oSheet.Name, oSheet.Type
Next
Set oSheet = Nothing
Set oCat = Nothing
Cn.Close
Set Cn = Nothing
merci de vos lumières...
Pièces jointes
Dernière édition: