Erreur connexion classeur fermé avec ADO

Bonjour,

Je souhaite récupérer des données dans un classeur fermé.

Erreur après .open lorsque j'arrive à End With

"Erreur d'exécution : '-2147467259 (80004005)

Erreur Automation

Erreur non spécifiée"

Merci de vos retours

Le code :

Sub ExporterDonnees()

Dim NomFichier As String, Feuille As String, Cellule As String, LigneEnCours As Variant, derLigne As Long

Dim rs As ADODB.Recordset

Dim cnn As ADODB.Connection

Dim ADOCommand As ADODB.Command

Dim repertoire As String, i As Long, j As Long

Dim Champ As Variant, Donnee As Range

Dim indexChampRef As Long, IndexChampCle As Long

Dim CouleurLigne As Long, Champ2() As Variant

Dim RefOffre As String, VersionOffre As String, Cpt As Long

Cellule = "B4:B4"

'Pour une plage de cellules, utilisez:

'Cellule = "A4:C10"

Feuille = "Feuil1" 'n'oubliez pas d'ajouter $ au nom de la feuille.

'Chemin complet du classeur fermé

Fichier = "D:\Users\Classeur4test.xlsx"

Champ = Split(LISTE_DES_CHAMPS, ";", , vbBinaryCompare)

' Ouvre la connexion vers le fichier

Set cnn = New ADODB.Connection

With cnn

.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _

& NomFichier & ";" & "Extended Properties=""Excel 12.0;HDR=YES"";"

.Open

End With

' Ferme la connexion

rs.Close

cnn.Close

Set cnn = Nothing

Set rs = Nothing

End Sub

Bonjour,

Utilise plutôt le module

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 = "C:\monClasseurBase.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

Bonjour M12,

Même soucis juste après l'étape avec module changé :

Set Source = New ADODB.Connection

Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"

=> Message d'erreur

Re,

As-tu activé la référence Microsoft ActiveX Data Objects x.x Library ?

Oui Microsoft ActiveX Data Objects x.x Library est activé comme demandé sur le site.

J'ai choisi pour x.x la version 2.0 (apparement excel le rattache automatique à la bonne version d'après une discussion sur un autre forum).

Rechercher des sujets similaires à "erreur connexion classeur ferme ado"