Microsoft JET n'as pas pu trouver l'objet "Feuil1$"

Bonjour à tous,

J'ai récupéré un script plutot simple qui, en théorie, me permet de me connecter à un classeur fermé afin d'extraire le contenu de la feuille nommée "Feuil1".

Voici le code :

Sub RequeteClasseurFerme()
    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim NomFeuille As String, texte_SQL As String
    Dim Rst As ADODB.Recordset

    'Définit le classeur fermé servant de base de données
    Fichier = "E:\test.xls"
    'Nom de la feuille dans le classeur fermé
    NomFeuille = "Feuil1$"

    Set Cn = New ADODB.Connection

    '--- Connection ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=" & Fichier & _
            ";Extended Properties=Excel 8.0;"
        .Open
    End With
    '-----------------

    'Définit la requête.
    '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
    texte_SQL = "SELECT * FROM [" & NomFeuille & "]"

    Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute(texte_SQL)

    'Ecrit le résultat de la requête dans la cellule A2
    Range("A2").CopyFromRecordset Rst

    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing

End Sub

mais mais mais, je reçois un message d'erreur quand j'execute le script.

le message est le suivant :

"Le moteur de la base de donnée microsoft JET n'as pas pu trouver l'objet "Feuil1$". Assurez vous que l'objet existe..."

  • J'ai bien ajouté dans les références le microsoft active x data object 6.1
  • Le chemin, le nom du fichier et le nom de la feuille est correct.

Quelqu'un a une idée qui me permettrait de resoudre ce probléme ?

Merci d'avance de vos reponses.

Bonjour,

J'ai essayé ton code chez moi,

d'abord avec comme nom de feuille Sheet1$ ( pour faire référence à ma feuille Sheet1-> ok

puis avec nom de feuille Feuil1$, pour faire référence ma feuille sheet1 que j'ai renommée en Feuil1 ->ok

n'aurais-tu pas ajouté un $ au nom de la feuille dans ton classeur par hasard ?

le $ est à rajouter au nom de la feuille dans l'instruction SQL, mais pas au nom de la feuille dans le classeur.

Bonjour,

Je confirme que les noms des fichies sont juste. Avec ou sans $ dans le classeur j'ai essayé et j'ai la même erreur.

Le chemin également.

Le format du fichier dans lequel je fais ma recherhce doit avoir un format particulier (xlsm???) ? J'ai essayé avec le xsl et xlsx mais c'est toujours pareil.

Je suis à court d'idée.

Qui peut me donner un coup de main ?

Bonjour,

la macro ne fonctionne pas telle quelle avec un fichier xlsx ou xlsm, bien avec un fichier xls.

Bon bah je sais pas comment je me suis debrouillé,

J'ai juste supprimé la variable dans laquelle était stocké le nom de la feuille et j'ai rajouté le nom directement dans la requête SQL.

ça marche.

Merci pour ton aide.

Rechercher des sujets similaires à "microsoft jet pas trouver objet feuil1"