Bonjour,
Je viens vers ou afin de tenter de trouver une solution a mon problème.
Je suis dans une équipe de production qui utilise une bonne vingtaine fichiers Excel qui sont alimentés par des requêtes Access.
La connexion a été faite via "Microsoft Query", chacun des fichiers Excel pointe vers une base Access différente.
La chaine de connexion est donc de type :
DSN=MS Access Database;DBQ=Q:\MonCheminJusqueMaBase.mdb;DefaultDir=Q:\MonCheminJusqueMaBase;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;
Notre IT souhaite nous faire migrer l'ensemble de nos repertoire. Il me faut donc modifier toutes les chaines de connexion de tous les fichiers Excel... Ca marche très bien manuellement, je le fais de temps en temps pour des changements de nom par exemple mais la sur la volumétrie ca va etre tres fastidueux.
J'ai pas de connaissance très poussé en VBA, j'ai fouillé un peu sur le net et ai reussit à adpater quelque chose qui marche :
Malheureusement vu que j'indique en dur UNE connection cela me modifie bien celle ci mais pas les dizaines d'autres présente dans le fichier Excel qui sont souvent du type "Lancer la requête à partir de MS Access DatabaseX" avec X qui est numéro différent d'un fichier à l'autre bien sur..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub update() With ActiveWorkbook.Connections("Lancer la requête à partir de MS Access Database").ODBCConnection .Connection = "ODBC;DSN=MS Access Database;DBQ=Q:\MonCheminJusqueMaBase.mdb;DefaultDir=Q:\pMonCheminJusqueMaBase;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" End With
Il y a t-il moyen de modifier ce champs texte afin qu'une boucle passe sur l'ensemble des connections ?
J'ai essayé plusieurs code trouver ci-et la avec des boucles qui passe sur des QueryTable notamment mais sans résultat..
Merci d'avance pour votre aide !
Cdt
Titi
Partager