Lire en VBA depuis Excel 2007 dans un fichier Excel 2003 fermé
cs_MoYoX
Messages postés2Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention20 mai 2011
-
20 mai 2011 à 09:09
cs_MoYoX
Messages postés2Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention20 mai 2011
-
20 mai 2011 à 12:20
Bonjour à tous !
Je me retrouve confronté à une difficulté dans le développement d'un outil pour mes collègues.
En effet, j'ai créé une fonction permettant de lire dans un fichier Excel fermé.
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"""
.Open
End With
Donc, pas de problème, j'écris ma requête, l'exécute, j'arrive à lire dans un fichier .xlsx sans soucis.
Le problème c'est que mes collègues doivent écrire dans ce fameux fichier toute la journée, et mon programme le "checker" à intervalle régulier.
Pour ceux qui tournent sous 2007, pas de problème, on peut écrire dedans, le programme sait le lire ...
Comme tous n'ont pas Excel 2007 installé sur leurs machines, j'ai fait passer le fichier en .xls, pour contenter tout le monde.
Je me suis dit: "Je vais modifier mon code en conséquence", j'ai donc écrit:
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;HDR=NO"
.Open
End With
Et là, pas moyen de relire dans ce fichu tableau en .xls (j'ai bien changé le chemin du fichier en conséquence).
Y'a t'il un problème pour lire dans les fichiers .xls depuis un fichier .xlsm 2007 ?
Merci pour les réponses que vous saurez m'apporter ... !
A voir également:
Lire en VBA depuis Excel 2007 dans un fichier Excel 2003 fermé
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 mai 2011 à 10:40
Salut
Dans ton exemple, dans la première syntaxe, la définition de .Provider est annulée par celle définie dans le .ConectionString qui suit immédiatement derrière (faire un choix).
Quelques indications <dans ce site> de référence en matière de ConnectionString.
D'autre part, tu peux imaginer un test de la version d'Excel pour choisir la chaine de connexion --> Application.Version
Malgré tout, je pense que :
- Un programme tournant sous 2003 aura peut-être du mal à lire des données issue d'un fichier d'une version supérieure
- Qu'il vaut mieux avoir le fichier de donnée au format de la version Excel la plus vieille du parc, les versions supérieures n'auront pas de mal à les lire.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)