Modif code VBA dans fichier protégé et fermé depuis autre fichier

FF69 Messages postés 5 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 15 février 2013 - 2 mai 2012 à 19:16
FF69 Messages postés 5 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 15 février 2013 - 4 mai 2012 à 18:47
Bonjour,
Dans un fichier excel appelé « Etudexxx.xls » sélectionné au préalable dans un menu (le menu « Ouvrir » d’excel) je souhaiterai, à partir d’un module VBA dans un fichier excel (version 2003) appelé « MAJ étude.xls», modifier des lignes de commande du module « Private Sub Workbook_Open() » de la feuille « This Workbook » du fichier « Etudexxx.xls» (3 lignes à remplacer par 11 nouvelles) et ajouter une ligne au niveau des déclarations (cette nouvelle ligne commence par Private Declare Function GetComputerName Lib …).

Je ne sais pas s’il est plus simple de procéder au remplacement uniquement des lignes de commandes à l’intérieur du module, ou de remplacer purement et simplement ce module par un autre.
A noter que la protection vba du fichier « MAJ étude.xls » est activée (par un mot de passe), et l’ouverture de ce fichier provoque son autodestruction automatique immédiate. En effet pour info l’objet des lignes de commandes situées dans « Private Sub Workbook open() » est entre autre de vérifier (par des tests sur le nom du PC) que l’utilisateur du fichier « Etudexxx.xls » est bien autorisé à l’utiliser, sous peine sinon de voir le fichier s’autodétruire (fonction kill). Or les utilisateurs du fichier «Etudexxx.xls» n’ont actuellement plus l’autorisation de l’utiliser (suite à un remplacement de leur PC).

Donc comme chaque tentative d’ouverture de « Etudexxx.xls » se solde par son autodestruction, il faut que la macro VBA dans « MAJ étude.xls» réalise les modifications dans le fichier « Etudexxx.xls », celui-ci restant fermé.

Merci beaucoup d’avance pour votre aide !

FF69

2 réponses

jordane45 Messages postés 38171 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 344
4 mai 2012 à 18:29
Bonjour,

Dans un premier temps.. pourquoi ne pas desactiver l'execution des macros sur le poste pour pouvoir ouvrir le fichier sans qu'il ne s'auto detruise ?

Ensuite, je suppose qu'il est plus simple de procéder au changement du module complet plutot que d'éditer des lignes à l'interieur..



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
FF69 Messages postés 5 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 15 février 2013
4 mai 2012 à 18:47
Merci du conseil !
A force de compiler les différentes solutions proposées dans les Forum, j'ai réussi à faire ce que je voulais et en effet avec des modifs effectuées fichier ouvert :
1- je déprotège le projet VB (mdp connu) par un code trouvé grâce à ce forum (ProtegerDeprotegerVBAProject.txt sur http://frederic.sigonneau.free.fr/)
2- je supprime et remplace les lignes de code (même source)
J'ai seulement le souci qu'à la 1ère mise à jour d'un fichier, j'ai une boite de dialogue qui demande quand même le mdp. En répondant ok, la mise à jour des fichiers suivants fonctionne sans trop de soucis, même si parfois bizarrement le nom "VBA project" de la fenêtre "Explorateur de projets" est remplacé par le mot de passe, et alors là tout déconne et je n'ai pas d'autres solutions que de recopier les modules dans un nouveau classeur vierge... Et comme ces mises à jour devront être réalisées sur plusieurs postes par des utilisateurs pas très à l'aise avec excel, je voudrai rendre la macro un peu plus "robuste" ...

FF69
0
Rejoignez-nous