Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Optimiser la mise à jour de code VBA

3 réponses
Avatar
Pounet95
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Je 'développe' un outil style planning que chacun de mes collègues
s'empresse d'utiliser ( forcé par le Chef !! )
Au fur et à mesure de l'utilisation de cet utilitaire, j'ai besoin d'adapter
le code VBA des macros qui y sont incluses.
Tant qu'il s'agissait de modifier 3 ou 4 classeurs, pas de problème, ça
allait assez rapidement.
Maintenant que ça plait ( et que ça a l'air d'être utile ), il faut mettre à
jour plus de 20 classeurs et ce nombre devrait s'accroître.....
Qu'est-ce qui est le mieux :
1. écrire une procédure qui récupère dans chacun des fichiers les données
utilisateur, puis sauvegarder le résultat ( qui contient alors le bon code )
sous le nom du fichier utilisateur mis à jour,
2. éliminer les modules VBA des fichiers utilisateur et les remplacer par
ceux qui vont bien, avec quand même un problème : je sais pas faire en VBA !

Dans l'attente de vos conseils, avis.
Avec mes remerciements anticipés

Pounet95 ......... qui n'a pas encore bu le Beaujolais nouveau car en
attente des commentaires de JPS sur le sujet.
J'ai entendu parler de framboise ( comme d'hab ) mais pas de banane. Me
gourre-je ?

3 réponses

Avatar
Oliv'
*Pounet95 que je salue a écrit *:
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Je 'développe' un outil style planning que chacun de mes collègues
s'empresse d'utiliser ( forcé par le Chef !! )
Au fur et à mesure de l'utilisation de cet utilitaire, j'ai besoin
d'adapter le code VBA des macros qui y sont incluses.
Tant qu'il s'agissait de modifier 3 ou 4 classeurs, pas de problème,
ça allait assez rapidement.
Maintenant que ça plait ( et que ça a l'air d'être utile ), il faut
mettre à jour plus de 20 classeurs et ce nombre devrait
s'accroître..... Qu'est-ce qui est le mieux :
1. écrire une procédure qui récupère dans chacun des fichiers les
données utilisateur, puis sauvegarder le résultat ( qui contient
alors le bon code ) sous le nom du fichier utilisateur mis à jour,
2. éliminer les modules VBA des fichiers utilisateur et les remplacer
par ceux qui vont bien, avec quand même un problème : je sais pas
faire en VBA !


n'est il pas envisageable ,par exemple si tu n'as pas de macro
evenementielles, de mettre tes nouvelles macros dans un fichier .xla
extérieur ?

pour le 2.

Cherche "vbproject"

ou regarde ici http://www.excelabo.net/excel/macrossupprimer.php
http://dj.joss.free.fr/ecrisub.htm et là
http://frederic.sigonneau.free.fr/VBE.htm

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Jac
Bonjour Pounet,

une solution serait de mettre les macros dans un classeur masqué (Fenètre /
Masquer), accessible sur le réseau. Donc il suffirait de mettre à jour ce
classeur de macro, pour que tous les utilisateurs puissent bénéficier des
dernières modifs.
A l'ouverture des classeurs de travail, il suffira de mettre dans une macro
qui se déclenche à l'ouverture l'instruction pour que le conteneur de macros
s'ouvre aussi. Ça peut ressembler à ceci :
-------------------------------------------
Sub Auto_Open())
Workbooks.Open Filename:="C:Test macros externes.xls"
End Sub
-------------------------------------------

Il serait bon aussi d'y rajouter une macro "ACCUEIL" dont le rôle serait
de ne rien contenir sauf, à l'occasion, les instructions pour faire une mise
à jour dès l'ouverture.
-------------------------------------------
Sub Auto_Open())
Workbooks.Open Filename:="C:Test macros externes.xls"
Application.Run "'Test macros externes.xls'!ACCUEIL"
End Sub
-------------------------------------------

Comme le conteneur de macros est masqué, personne ne le voit.
Donc à la fermeture du classeur de travail, il serait bon de le refermer,
car les macros qu'il contient ne servent plus... qu'à faire des bétises
sur des classeurs qui ne les supporteront pas.
-------------------------------------------
Sub Auto_Close()
Application.DisplayAlerts = False
Windows("Test macros externes.xls").Close
Application.DisplayAlerts = True
End Sub

-------------------------------------------

A tester l'ouverture simultanée par de multiples utilisateurs. Solution
possible avec l'option "Lecture seule" de Windows qui permettrait
l'ouverture multiple sans poser de question.

Du moment que le classeur de macro est ouvert, toutes ses macros sont
accessibles à tous les fichiers Excel. Donc il peut être bon, dans chaque
macro, de tester si on est bien dans la bonne feuille du bon classeur car il
y aura bien un jour, un petit malin, qui arrivera à déclencher une macro
depuis un autre classeur et qui se plaindra parcequ'il a perdu une journée
de travail. Bien fait, il n'avait qu'à pas toucher !!! Mais comme il se
plaindra au chef, c'est quand même toi qui sera puni... parce que tu aurais
du ou pu prévoir... l'imprévisible.

On en reparle quand tu veux.

Jac



"Pounet95" a écrit dans le message de news:
473d7b98$0$27413$
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Je 'développe' un outil style planning que chacun de mes collègues
s'empresse d'utiliser ( forcé par le Chef !! )
Au fur et à mesure de l'utilisation de cet utilitaire, j'ai besoin
d'adapter le code VBA des macros qui y sont incluses.
Tant qu'il s'agissait de modifier 3 ou 4 classeurs, pas de problème, ça
allait assez rapidement.
Maintenant que ça plait ( et que ça a l'air d'être utile ), il faut mettre
à jour plus de 20 classeurs et ce nombre devrait s'accroître.....
Qu'est-ce qui est le mieux :
1. écrire une procédure qui récupère dans chacun des fichiers les données
utilisateur, puis sauvegarder le résultat ( qui contient alors le bon
code ) sous le nom du fichier utilisateur mis à jour,
2. éliminer les modules VBA des fichiers utilisateur et les remplacer par
ceux qui vont bien, avec quand même un problème : je sais pas faire en VBA
!

Dans l'attente de vos conseils, avis.
Avec mes remerciements anticipés

Pounet95 ......... qui n'a pas encore bu le Beaujolais nouveau car en
attente des commentaires de JPS sur le sujet.
J'ai entendu parler de framboise ( comme d'hab ) mais pas de banane. Me
gourre-je ?



Avatar
Pounet95
Merci Oliv, merci Jac
Je vais creuser vos suggestions et je vous tiendrais au courant.
Effectivement, il y a dans chaque classeur de macros évènementielles (
sheet_change, selecton_change qui font positionner le curseur sur telle ou
telle cellule qui en fonction de la valeur sélectionnée propose dans la
cellule sous le curseur une liste de valeurs adaptées ou en core une MEFC.
Je vais révisiter le site de frédéric et redecouvrir celui de daniel pour
m'inspirer des exemples et classeurs/procédures à télécharger;
A suivre ....
Bon weekend

PS : j'en reviens au Beaujolais nouveau que je n'ai toujours pas goûté : JPS
trop occupé à vendre sa production pour n'avoir pas de commentaire ?

"Pounet95" a écrit dans le message de news:
473d7b98$0$27413$
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Je 'développe' un outil style planning que chacun de mes collègues
s'empresse d'utiliser ( forcé par le Chef !! )
Au fur et à mesure de l'utilisation de cet utilitaire, j'ai besoin
d'adapter le code VBA des macros qui y sont incluses.
Tant qu'il s'agissait de modifier 3 ou 4 classeurs, pas de problème, ça
allait assez rapidement.
Maintenant que ça plait ( et que ça a l'air d'être utile ), il faut mettre
à jour plus de 20 classeurs et ce nombre devrait s'accroître.....
Qu'est-ce qui est le mieux :
1. écrire une procédure qui récupère dans chacun des fichiers les données
utilisateur, puis sauvegarder le résultat ( qui contient alors le bon
code ) sous le nom du fichier utilisateur mis à jour,
2. éliminer les modules VBA des fichiers utilisateur et les remplacer par
ceux qui vont bien, avec quand même un problème : je sais pas faire en VBA
!

Dans l'attente de vos conseils, avis.
Avec mes remerciements anticipés

Pounet95 ......... qui n'a pas encore bu le Beaujolais nouveau car en
attente des commentaires de JPS sur le sujet.
J'ai entendu parler de framboise ( comme d'hab ) mais pas de banane. Me
gourre-je ?