A voir également:
- Connexion de données excel dynamique
- Tableau croisé dynamique - Guide
- Gmail connexion - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Hotmail connexion - Guide
9 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
13 nov. 2012 à 09:22
13 nov. 2012 à 09:22
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
13 nov. 2012 à 10:17
13 nov. 2012 à 10:17
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
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
13 nov. 2012 à 10:17
13 nov. 2012 à 10:17
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 ?
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
13 nov. 2012 à 13:35
13 nov. 2012 à 13:35
Au moment où j'ai écrit mon msg, ton message n'était pas affiché ! Je n'en connaît pas la raison.
En attendant que tout soit centralisé sur ton serveur, fait ce que pijaku t'as conseillé. En avertissant les utilisateurs qu'ils doivent tout 'coller' dans le même dossier bien sûr!
En attendant que tout soit centralisé sur ton serveur, fait ce que pijaku t'as conseillé. En avertissant les utilisateurs qu'ils doivent tout 'coller' dans le même dossier bien sûr!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
13 nov. 2012 à 13:38
13 nov. 2012 à 13:38
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
13 nov. 2012 à 14:25
13 nov. 2012 à 14:25
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 ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
13 nov. 2012 à 14:55
13 nov. 2012 à 14:55
Là, j'avoue ne pas savoir.
Désolé.
Par contre, comme ton sujet est déjà traité ici, je te recommande d'en créer un nouveau, à moins qu'Heliotte ne connaisse...
Par contre, précise dès le départ à quoi correspondent tes "connexions"...
Désolé
Désolé.
Par contre, comme ton sujet est déjà traité ici, je te recommande d'en créer un nouveau, à moins qu'Heliotte ne connaisse...
Par contre, précise dès le départ à quoi correspondent tes "connexions"...
Désolé
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
13 nov. 2012 à 17:45
13 nov. 2012 à 17:45
"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"