Connexion de données excel dynamique
printfx000
-
printfx000 -
printfx000 -
Bonjour,
j'ai un fichier excel MAJ.xls dans laquelle j'ai des feuilles qui se mettent à jour automatiquement au lancement du fichier grâce à des connexions à d'autres fichiers .csv.
Ces fichiers .csv se trouvent dans le même dossier que mon fichier MAJ.xls. Ainsi, un chemin fixe est défini pour aller chercher ces fichiers .csv et les importer dans MAJ.xls.
Le problème qui se pose est le suivant : si je déplace les fichiers .csv dans un autre fichier, les connexions de données seront brisées.
Existe t-il un moyen pour mettre à jour automatiquement le chemin du fichier .csv à importer dans mon fichier MAJ.xls, svp ?
Merci.
j'ai un fichier excel MAJ.xls dans laquelle j'ai des feuilles qui se mettent à jour automatiquement au lancement du fichier grâce à des connexions à d'autres fichiers .csv.
Ces fichiers .csv se trouvent dans le même dossier que mon fichier MAJ.xls. Ainsi, un chemin fixe est défini pour aller chercher ces fichiers .csv et les importer dans MAJ.xls.
Le problème qui se pose est le suivant : si je déplace les fichiers .csv dans un autre fichier, les connexions de données seront brisées.
Existe t-il un moyen pour mettre à jour automatiquement le chemin du fichier .csv à importer dans mon fichier MAJ.xls, svp ?
Merci.
A voir également:
- Connexion de données excel dynamique
- Gmail connexion - Guide
- Liste déroulante excel - Guide
- Tableau croisé dynamique excel exemple - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
9 réponses
Bonjour,
Il est toujours possible de faire une recherche automatique de tes fichiers csv par excel, mais celle ci va considérablement allonger le temps d'exécution de ta procédure......
Si tu nous disais plutôt quel est le problème et pourquoi tu souhaites déplacer ces fichiers csv?
Il est toujours possible de faire une recherche automatique de tes fichiers csv par excel, mais celle ci va considérablement allonger le temps d'exécution de ta procédure......
Si tu nous disais plutôt quel est le problème et pourquoi tu souhaites déplacer ces fichiers csv?
salut,
tout d'abord, merci d'avoir répondu.
Ensuite, si je souhaite savoir, c'est parce que les fichiers en questions se trouvent sur un serveur commun à plusieurs utilisateurs. Si l'on souhaite faire tourner le fichier MAJ.xls directement sur ce serveur, ça fonctionnera sans problème, mais le temps d'éxécution est assez long (30 secondes au moins).
Ainsi, la plupart des utilisateurs préfèrent copier/coller les fichiers concernés sur leur répertoire local et exécuter le fichier MAJ.xls sur leur poste (pour gain de temps). Cependant, en faisant ça, les chemins des connexions de données sont brisées et la mise à jour est alors impossible à moins de modifier manuellement le chemin des fichiers.
Donc, existe t-il un moyen pour changer dynamiquement le chemin des fichiers .csv à importer par celui du répertoire où ils ont été copiées, svp ?
Merci.
tout d'abord, merci d'avoir répondu.
Ensuite, si je souhaite savoir, c'est parce que les fichiers en questions se trouvent sur un serveur commun à plusieurs utilisateurs. Si l'on souhaite faire tourner le fichier MAJ.xls directement sur ce serveur, ça fonctionnera sans problème, mais le temps d'éxécution est assez long (30 secondes au moins).
Ainsi, la plupart des utilisateurs préfèrent copier/coller les fichiers concernés sur leur répertoire local et exécuter le fichier MAJ.xls sur leur poste (pour gain de temps). Cependant, en faisant ça, les chemins des connexions de données sont brisées et la mise à jour est alors impossible à moins de modifier manuellement le chemin des fichiers.
Donc, existe t-il un moyen pour changer dynamiquement le chemin des fichiers .csv à importer par celui du répertoire où ils ont été copiées, svp ?
Merci.
Si chaque utilisateur copie/colle les fichiers concernés (donc tous les fichiers .csv + le fichier MAJ.xls) sur leur poste, mais dans le même répertoire il n'y a pas de souci.
En effet, tu peux, dans ce cas, utiliser le chemin du fichier MAJ.xls comme étant le répertoire qui contient les fichiers csv.
Avec le code ThisWorkbook.Path tu récupères le chemin de tes fichiers si tant est que ceux ci sont situés dans le même répertoire.
Essaie cette macro de test dans le fichier MAJ.xls :
Si cela fonctionne, tu pourras utiliser tes fichiers .csv en les appelant par :
En effet, tu peux, dans ce cas, utiliser le chemin du fichier MAJ.xls comme étant le répertoire qui contient les fichiers csv.
Avec le code ThisWorkbook.Path tu récupères le chemin de tes fichiers si tant est que ceux ci sont situés dans le même répertoire.
Essaie cette macro de test dans le fichier MAJ.xls :
Sub test() Dim Chemin As String Chemin = ThisWorkbook.Path & "\" MsgBox Chemin End Sub
Si cela fonctionne, tu pourras utiliser tes fichiers .csv en les appelant par :
Chemin & NomDuFichierCsv.csv
Si tu les déplaces manuellement, via l'explorateur Windows : pas de solution
Si tu les déplaces par programmation (VBA, par exemple) : tout est possible .. Dans ta macro, tu déplaces tes fichiers et du même coup tu modifie le liens dans ton fichier "MAJ.xls". Ta maco se trouvant dans ce fichier, bien sûr.
C'est une façon de faire (il y a d'autres façons certainement).
Si tu les déplaces par programmation (VBA, par exemple) : tout est possible .. Dans ta macro, tu déplaces tes fichiers et du même coup tu modifie le liens dans ton fichier "MAJ.xls". Ta maco se trouvant dans ce fichier, bien sûr.
C'est une façon de faire (il y a d'autres façons certainement).
si j'ai bien compris, je dois obligatoirement passer par une macro excel pour rendre cela dynamique, c'est bien ça ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon.
Tes "connections" ne sont pas une réelle programmation. Il s'agit de liens entre fichiers???
Si c'est cela, on ne peux modifier ces liaisons entre fichiers que
- manuellement à chaque déplacement,
- automatiquement, grâce à du VBA.
Tes "connections" ne sont pas une réelle programmation. Il s'agit de liens entre fichiers???
Si c'est cela, on ne peux modifier ces liaisons entre fichiers que
- manuellement à chaque déplacement,
- automatiquement, grâce à du VBA.
Bon. Reprenons.
Tu dis :
MAJ.xls dans laquelle j'ai des feuilles qui se mettent à jour automatiquement au lancement du fichier grâce à des connexions à d'autres fichiers .csv.
Comment se mettent elles à jour automatiquement? Qu'appelle tu connections?
Par des formules dans les feuilles, du style :
='G:\Franck\[test.csv]test'!$A$1
Parce que si c'est cela, les formules se mettent à jour automatiquement...
Je penses qu'à ce stade et pour pouvoir continuer, un exemple de fichier csv et de ton fichier MAJ.xls ne seraient pas de trop...
Tu dis :
MAJ.xls dans laquelle j'ai des feuilles qui se mettent à jour automatiquement au lancement du fichier grâce à des connexions à d'autres fichiers .csv.
Comment se mettent elles à jour automatiquement? Qu'appelle tu connections?
Par des formules dans les feuilles, du style :
='G:\Franck\[test.csv]test'!$A$1
Parce que si c'est cela, les formules se mettent à jour automatiquement...
Je penses qu'à ce stade et pour pouvoir continuer, un exemple de fichier csv et de ton fichier MAJ.xls ne seraient pas de trop...
Ce que j'appelle connexions:
dans microsoft excel 2000, à l'onglet Données, t'as une option "Connexions existantes". En cliquant dessus, t'as accès à toutes les "connexions" que t'as créées. dans mon cas, y'en a deux (pour 2 fichiers .csv) qui s'appellent table_export_stock et table_export_zone.
table_export_stock est programmé pour s'éxécuter au lancement du fichier MAJ.xls. Elle va extraire les données qui se situent dans le fichier monRepertoire/table_stock.csv et les copier dans feuill1 de MAJ.xls.
table_export_zone est programmé pour s'éxécuter aussi au lancement du fichier MAJ.xls. Elle va extraire les données qui se situent dans le fichier monRepertoire/table_zone.csv et les copier dans feuill2 de MAJ.xls.
monRepertoire/table_export.csv et monRepertoire/table_zone.csv sont des données écrits en dur dans les paramètres de mes "connexions".
Mon problème est que si un utilisateur déplace MAJ.xls, table_stock.csv, et table_zone.csv dans un autre répertoire, table_export_stock et table_export_zone ne fonctionneront plus car monRepertoire/ aura changé.
Comment faire pour modifier monRepertoire/ de telle sorte à ce qu'il ait le même nom que le répertoire en cours ?
dans microsoft excel 2000, à l'onglet Données, t'as une option "Connexions existantes". En cliquant dessus, t'as accès à toutes les "connexions" que t'as créées. dans mon cas, y'en a deux (pour 2 fichiers .csv) qui s'appellent table_export_stock et table_export_zone.
table_export_stock est programmé pour s'éxécuter au lancement du fichier MAJ.xls. Elle va extraire les données qui se situent dans le fichier monRepertoire/table_stock.csv et les copier dans feuill1 de MAJ.xls.
table_export_zone est programmé pour s'éxécuter aussi au lancement du fichier MAJ.xls. Elle va extraire les données qui se situent dans le fichier monRepertoire/table_zone.csv et les copier dans feuill2 de MAJ.xls.
monRepertoire/table_export.csv et monRepertoire/table_zone.csv sont des données écrits en dur dans les paramètres de mes "connexions".
Mon problème est que si un utilisateur déplace MAJ.xls, table_stock.csv, et table_zone.csv dans un autre répertoire, table_export_stock et table_export_zone ne fonctionneront plus car monRepertoire/ aura changé.
Comment faire pour modifier monRepertoire/ de telle sorte à ce qu'il ait le même nom que le répertoire en cours ?
"Connexions existantes": Je n'ai jamais utilisé car quand je travaille sur plusieurs fichier (Excel ou csv) je le fait souvent avec les classeurs fermés.
Tu travailles probablement avec "Microsoft SQL Server".
Désolé de ne pouvoir t'être utile, mieux vaut fermé ce post et en créer un nouveau en précisant "connexions" et "Excel"
Tu travailles probablement avec "Microsoft SQL Server".
Désolé de ne pouvoir t'être utile, mieux vaut fermé ce post et en créer un nouveau en précisant "connexions" et "Excel"