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

jjdk Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   -  
 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

4 réponses

  1. jjdk Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   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
  2. 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
    1. jjdk Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   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
  3. 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