Excel, VBA, ADO, lire entête de page

jjdk Messages postés 256 Statut Membre -  
 Utilisateur anonyme -
Bonjour

Je cherche comment lire depuis une feuille Excel, par du code VBA, via une connection ADO, la valeur de l'entête de page (partie droite) d'une feuille dans un autre classeur fermé.
Merci pour toute info.
jjd
A voir également:

4 réponses

Utilisateur anonyme
 
Salut,

Ici, tout ce que tu as toujours voulu savoir :-)
http://www.excelabo.net/xl/fichiers.php#liresansouvrir

Lupin
0
jjdk Messages postés 256 Statut Membre 60
 
Bonjour
Merci pour l'info, par contre le code dans ce lien n'utilise pas une connection ADO

Mon code est celui ci

dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;& "DBQ=" & FileName
'----------------------------
''Connection et création du recordset
'----------------------------
Set dbConnection = New ADODB.Connection
dbConnection.Open dbConnectionString
Set rs = dbConnection.Execute("[" & RangeName & "]")

je recupère facilement dans le fichier exccel fermé "filename" les valeurs des plages de cellules indiquées dans RangeName mais je ne trouve pas la synthaxe pour recupérer la valeur de la partie droite de l'entête de page de cette même feuille de calcul. (autrement dit quoi mettre comme paramètre à dbConnection.Execute à la place de "[" & RangeName & "]"

Si quelqu'un a une idée ?
merci par avance
0
Utilisateur anonyme
 
re:

pour ma part, je ne sais pas, si j'ai bien compris ce que tu veux :
tu cherches a accéder à ces objets :

ActiveSheet.PageSetup.LeftHeader
ActiveSheet.PageSetup.CenterHeader

et celui-ci plus particulièrement !
ActiveSheet.PageSetup.RightHeader

Lupin
0
jjdk Messages postés 256 Statut Membre 60
 
Salut

Effectivement je cherche à recuperer la valeur de cette proporiété workSheets("mysheet").PageSetup.RightHeader mais en utilisant une connection ADODB avec l'autre classeur.
Du genre :
Set myRecordset = myADODBConnection.Execute("[" & je mets quoi ici pour récupérer une valeur dans l'entete de l'autre feuille & "]")

Pour l'instant j'ai lachement éludé le problème en demandant à ce que l'info qui m'intéresse ne soit plus mise dans l'entete mais dans une cellule

jjd
0
Utilisateur anonyme
 
re:

je ne me suis jamais connecté par ADO, alors je ne peux que spéculer...

alors voici comment je procèderais intuitivement :
Set myRecordset = myADODBConnection.Execute("[" & NomDeModule.NomFonction & "]")

---------------------------------------
Function NomFonction() As String
....NomFonction = ActiveSheet.PageSetup.RightHeader
End Function
---------------------------------------

Lupin
0