[Excel 2007] ADODB et objet devenu "invisible"

Salut,

Premier message ici mais je me suis pas mal aidé de vos posts précédemment sur d'autres choses en VBA

Voici le topo : je vais chercher des valeurs dans un classeur via ADODB, mais Excel ne semble pas voir un objet créé précédemment.

Le code marche sur quinze autres classeurs identiques, j'ai même recopié la structure d'un des Sub "sain", j'ai viré tout chiffre/caractère accentué des noms de fichiers sans plus de succès. Tous les classeurs sont dans le même dossier, excluant ainsi un souci d'adresse.

Les adresses des classeurs sont regroupées au sein d'un fichier .ini

Ci-joint le code et le screenshot du message d'erreur qui a lieu sur la ligne Set oRst = oCnct.Execute(texte_SQL)

Sub Requete_TRIDIMDIMPREMIERES()

Dim oCnct                                       As ADODB.Connection
Dim oRst                                        As ADODB.Recordset
Dim strWorkbookFilename                         As String
Dim strSheetName As String, SQLStatement        As String
Dim premieresdim As String

premieresdim = LireIni("suivi_charge", "tridimdimpremiere_name")

' Connexion au fichier où aller chercher les données
    strWorkbookFilename = premieresdim
    strSheetName = "CQ-TRIDIM_DIMPREMIERES"
    Set oCnct = New ADODB.Connection
    With oCnct
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & strWorkbookFilename & ";" & "Extended Properties=""Excel 12.0;HDR=NO"";"
        .Open
    End With

' On prend les données de la page voulue
          texte_SQL = "SELECT * FROM [CQ-TRIDIM_DIMPREMIERES$]"

          Set oRst = New ADODB.Recordset
          Set oRst = oCnct.Execute(texte_SQL)

         Sheets("CQ-TRIDIM_DIMPREMIERES").Select
         'on colle les données dans ce fichier
          ActiveSheet.Range("A1").CopyFromRecordset oRst

   ActiveSheet.Range("B1:B2").Value = ActiveSheet.Range("AF15:AF16").Value 'recopie des nom de service et chef de service dans le tableau
   ActiveSheet.Range("AF15:AF16").Clear 'nettoyage

          'on ferme
          oRst.Close
          oCnct.Close

           Set oRst = Nothing
           Set oCnct = Nothing
           Set strtSheetName = Nothing
           Set WorkbookFilename = Nothing

End Sub

Merci d'avance pour l'aide que vous pourrez m'apporter !

sans titre sans titre2

Petit up, j'espère que ça attirera plus l'attention

Bonjour Kit,

La méthode .execute est à réserver pour les INSERT, UPDATE ou DELETE.

Pour un SELECT, j'écrirai plutôt :

 '...
Set oRst = New ADODB.Recordset
oRst.open texte_SQL, oCnct, adOpenStatic 
Sheets("CQ-TRIDIM_DIMPREMIERES").Range("A1").CopyFromRecordset oRst
'...

Pierre

Bonjour Pierre et merci pour ta réponse.

Je viens de tester ton code mais j'échoue de la même manière (même code erreur) sur la ligne

oRst.Open texte_SQL, oCnct, adOpenStatic

J'ai bien revérifié mes noms de feuilles, fichiers et adresses au sein du fichier ini, j'ai même tout recopié/collé par sécurité mais sans succès.

Je prend néanmoins ta remarque en compte pour mes autres feuilles, ça fera autant de Select d'économisés.

Edith : Après avoir tout repris par le début... l'erreur venait de moi !

Merci beaucoup pour l'astuce en tout cas.

Rechercher des sujets similaires à "2007 adodb objet devenu invisible"