Rechercher : dans
Par :

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

Dernière réponse le 29 avr 2005 à 01:31:43 jjdk, le 22 avr 2005 à 15:43:39 
 Signaler ce message aux modérateurs

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

1

Lupin.Arsene, le 22 avr 2005 à 15:55:58

Salut,

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

Lupin
~L'essentiel est invisible pour les yeux~
~On ne voit bien qu'avec le coeur~

Répondre à Lupin.Arsene

2

jjdk, le 22 avr 2005 à 17:52:12

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

Répondre à jjdk

3

Lupin.Arsene, le 22 avr 2005 à 19:46:31

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
~L'essentiel est invisible pour les yeux~
~On ne voit bien qu'avec le coeur~

Répondre à Lupin.Arsene

4

jjdk, le 28 avr 2005 à 11:55:41

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

Répondre à jjdk

5

 Lupin.Arsene, le 29 avr 2005 à 01:31:43

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
~L'essentiel est invisible pour les yeux~
~On ne voit bien qu'avec le coeur~

Répondre à Lupin.Arsene
Collection CommentÇaMarche.net