Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro de mise à jour automatique de fichier

  • Initiateur de la discussion Initiateur de la discussion uriel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

uriel

XLDnaute Nouveau
Bonjour,

J'ai un fichier contenant divers macros utilisées par un grand nombre de personnes. Ce fichier est mis à jour régulièrement par mes soins pour des raisons diverses.

Le problème, c'est que j'ai beau dire au gens de ne pas copier le fichier sur leur bureau mais de faire un raccourcis vers le fichier afin qu'ils utilisent toujours les dernières version des macros, ils ne le font pas et donc utilise des macros périmées.

Donc j'aimerais ajouter à mon fichier une sorte de système de "mise à jour automatique", voici mon idée :

  • A l'ouverture du fichier, il contrôle que le fichier ouvert est bien celui qui se trouve à un emplacement défini (Lieu ou se trouve le fichier d'origine qui est toujours à jour) ou si il est ailleurs (Et donc une copie).
  • [Optionnel] Si le fichier est ailleurs, il vérifie que sa date de modification est la même que celle du fichier d'origine.
  • Si le fichier est ailleurs et que la date est différente, le fichier s'auto-remplace par une copie du fichier d'origine afin d'être à jour.

Voila, est il possible de faire ça à votre avis ?

Merci.

A bientôt.
 
Re : Macro de mise à jour automatique de fichier

Bonjour uriel,

le fichier en lui-même doit pointer sur une version à jour ou bien s'agit-il seulement du problème de macros à jour, c'est à dire de VBA ?
 
Re : Macro de mise à jour automatique de fichier

Bonjour le Forum, tototiti2008, Uriel,

Nous avions le même problème dans mon ancien job.

Dans la logique c'est tout à fait possible par VBA, mais dans la réalité ce n'est pas possible.
Pourquoi ?

Tu ne pourras auto remplacer ton fichier. En effet il est ouvert donc en lecture seule... Tu essaies de t'auto copier, tu vas avoir un message d'erreur...
Il faut donc fermer le fichier pour le remplacer, mais du coup ta macro ne fonctionne plus puisque le fichier est fermé ...

Bref c'est le serpent qui se mord la queue et donc il n'y a pas de solution.

Les pistes que nous avions exploré à l'epoque :

- Document XL partagé : trop de contraintes : d'accès, de mise à jour, de temps de réponses si plusieurs utilisateurs dessus, de traffic reseau, et de facilité de mise à jour.

- Création d'un XLA d'ouvertures, qui ferait le boulot de vérification et de mise à jour, puis d'ouverture du fichier. Comme le XLA est idépendant du fichier plus de problème de mise à jour.
Problèmes à considerer : L'installation du XLA, et surtout la mise à jour du XLA lui même ! S'il y a un bug c'est reparti pour le même problème, car le XLA une fois chargé reste dans Excel où alors il faut le fermer. A tester la muti ouverture de ce XLA par plusieurs utilsiateurs.

- Création d'une petit exe de mise à jour en vb6, vb.net, c# ou autre qui s'occupe de la mise à jour.

C'est la solution que nous avons retenu dans mon précédent job. On a fait un exe en VB6, qui vérifiait la version du fichier sur le reseau et celui en local. Si difference, mise à jour puis lancement.
En local le fichier se trouve toujours dans le même répertoire. Si le répertoire n'existe pas création, copie du fichier et lancement. Puis il se ferme.

Voila dans les grandes lignes. Ensuite tu stockes l'exe sur le reseau et tu ne donnes aux utilisateur que le raccourci vers cet exe. Quand tu fais une mise à jour de l'XLS ou de l'exe tu mets sur le reseau et tu n'es plus embêté.

@+

Creepy
 
Re : Macro de mise à jour automatique de fichier

Bonjour Creepy,

Voilà une bonne analyse du problème.

Pour être franc, je pensais plutôt à la solution du XLA. A priori l'ouverture multiple d'un même XLA se trouvant sur le réseau ne pose pas de problème insurmontable, si ce n'est que si celui-ci est mis à jour, ça demande en effet de quitter Excel ou de désactiver le XLA puis de la réctiver dans Macros complémentaires.

La solution VB6 est sûrement bonne mais ne la maîtrisant pas...
 
Re : Macro de mise à jour automatique de fichier

Bonjour, tototiti, Creepy, uriel,

une autre solution, partielle, serait de juste avertir l'utilisateur que son fichier copié n'est plus à jour (par un message à l'ouverture de celui-ci) avec l'original (tout dépend de la réponse à la question posée par tototiti).
Il suffit de faire un comparatif de dernière modification avec la fonction "filedatetime".
A toi de voir uriel ce que tu préfères.

Bonne journée à vous.
 
Dernière édition:
Re : Macro de mise à jour automatique de fichier

Re All,

Tototiti2008, tu sais développer en VBA, tu sais développer en VB6 !

J'en vois déjà qui vont hurler à ce que je vais dire, mais VBA et Vb6, c'est pareil. Je veux dire par là que c'est exactement la même syntaxe, le même principe (fonction, form, module, module de classe, référence etc.).

Bien sûr VB6 permet de faire beaucoup plus de chose et est plus complet que VBA. Mais dans tu neseras pas perdu...

Creepy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
361
Réponses
19
Affichages
480
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…