Problème format 2007 avec macro

jay214

XLDnaute Nouveau
Bonjour à tous, j'espère que quelqu'un ici pourra me faire avancer sur mon problème.

J'utilise une macro qui me permet d'aller copier une feuille d'un fichier pour la coller dans un autre fichier sans ouvrir le premier fichier.

Mon problème est que ma macro fonctionne quand le fichier où je récupères mes données est enregistré sous format 97-2003 mais j'obtiens une erreur d'exécution '-2147217865 (80040e37)' lorsque ce fichier est en format 2007.
La macro fonctionne tout de même avec le format 2007, cependant seulement quand les deux fichiers sont ouverts.

Mon but est donc que cette macro fonctionne sous format 2007 avec la base de données fermée, je cherche et je cherche mais ne m'y connaissant pas énormément en VB, je dirais que je pédale dans la semoule =)

Merci d'avance de votre aide.


Voici la macro :

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:\...........\1.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
 

Misange

XLDnaute Barbatruc
Re : Problème format 2007 avec macro

Bonjour

attention, quand tu enregistres en format 2007 le fichier a une extension xlsX et pas xls.
Donc si ta base est en xls et que tu essaies d'en définir le chemin
Fichier = "C:\...........\1.xls"
tu auras un petit problème bien normal :)
 

jay214

XLDnaute Nouveau
Re : Problème format 2007 avec macro

Bonjour Misange,

Oui oui, désolé j'ai oublié de préciser ce point. L'erreur apparaît après changement de l'extension dans le chemin.

Apparemment la macro n'arrive pas à ouvrir le fichier base de données toute seul quand je passe en format 2007 puisque dès que je l'ouvre manuellement, le copier/coller fonctionne.

Merci à toi.
 

Misange

XLDnaute Barbatruc
Re : Problème format 2007 avec macro

Difficile de répondre sans pouvoir tester.

mais je pense que le problème vient de cette ligne :

Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"

Ce lien n'existe plus
Version de Microsoft Excel : Spécifiez Excel 5.0 pour un classeur Excel 95 (version 7.0 d'Excel) et Excel 8.0 pour un classeur Excel 97, Excel 2000 ou Excel 2002 (XP) (versions 8.0, 9.0 et 10.0 d'Excel).

Essaie de corriger cela avec Excel 12.0
 

jay214

XLDnaute Nouveau
Re : Problème format 2007 avec macro

Ahhh oui, ça semble venir de là. Problème, il faut installer des drivers et je n'ai pas les droits pour cela (PC professionnel)
Mais je viens de trouver une autre solution sans ADO.

Merci beaucoup à toi =)
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel