Modif code VBA dans fichier protégé et fermé depuis autre fichier
FF69
Messages postés5Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention15 février 2013
-
2 mai 2012 à 19:16
FF69
Messages postés5Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention15 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
A voir également:
Modif code VBA dans fichier protégé et fermé depuis autre fichier
FF69
Messages postés5Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention15 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" ...