J'ai trouvé plein d'exemples intéressants sur la façon de modifier du code
dans des modules VBA.
J'ai besoin de modifier, en VBA, le code de certains classeurs avec lesquels
je travaille. Mais les projet sont protégés (partons du principe que je
connais le mot de passe)
Je n'ai pas trouvé la méthode permettant de désactiver la protection du
projet, comme elle existe pour un simple classeur.
Un truc du genre ActiveWorkbook.VbProject.Unprotect (MotDePasse) n'est pas
valide.
VbProject étant une propriété en lecture seule !
Qui aura la solution SVP !!!!
Merci par avance
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
À ma connaissance, ce n'est pas possible. ;-((
La raison, je crois, est d'empêcher de pouvoir faire sauter le protection d'un projet
auquel on est censé ne pas avoir accès, avec une procédure VBA testant successivement
de multiples mots de passe.
"Joël" a écrit :
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
J'en prends note.
En revanche, j'ai vu sur Disciplus une procédure permettant d'ouvrir un
fichier en désactivant les macros, ce qui suffirait à mon bonheur (si je
parvenais à la faire fonctionner ;-)
voici le code transmis !!!
Pourquoi celà ne fonctionnerait-il pas avec moi, sur Excel 97 et suivantes ?
merci ...
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
"Michel Gaboly" <mic...@gaboly.com> a écrit dans le message de news:
3EA3C77...@gaboly.com...
Dans un classeur j'ai des macros à l'ouverture que je voudrais
désactiver pour modifier ce classeur à partir d'un autre en VBA.
Comment faire ?
Mets ces deux macros dans un module d'un classeur. Lancer cette
procédure à partir de la feuille d'excel et non de la fenêtre VBE.
Elle ouvre le classeur
c:\Mes documents\Classeuravecmacros.xls
en désactivant ses macros.
Voici les procédures :
'Procédure appelante
'----------------------------
Sub OuvrirFichierSansActiverLesMacros()
OpenFileWithoutMacro "c:\Mes documents", "Classeuravecmacros.xls"
End Sub
'----------------------------
'----------------------------
Sub OpenFileWithoutMacro(Chemin As String, Fichier As String)
'Désactive complètement l'exécution des macros du fichier.
'N'affecte pas le comportement des autres fichiers ouverts.
'Cette procédure doit être appelé à partir de la feuille
'de calcul et non de la fenêtre VBE à cause des commandes
'Les 2 commandes suivantes s'assurent que
'la fenêtre "Open" pointe vers le bon répertoire
SendKeys "{esc}"
Application.Dialogs(xlDialogOpen).Show Chemin
'Ouvre le fichier en désactivant la macro.
SendKeys "%Fo" & Fichier & "%od"
End Sub
Denis Michon
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
"Joël" <jo...@joelgarbe.fr> a écrit dans le message de news:
b80po3$fe3$1...@news-reader11.wanadoo.fr...
En fait, le fond du sujet est que :
Mon application est amenée à ouvrir d'autres classeurs pour faire du
"Copier-Coller Contrôlé".
Or, il se trouve que parmi les classeurs susceptibles d'être ouverts pour
"importer des données", il en est qui pourraient avoir des macros qui
m'obligent à passer par un bouton de commande pour les fermer (utilisation
de la commande VBA :
Workbooks("Monclasseur").Close False
impossible, il faut cliquer sur un bouton qui rétablit l'environnement
standard d'excel, ce que je ne veux pas bien entendu !!!
et bien entendu, ce type de classeur appelé étant déjà dans la nature, je ne
peux pas les modifier !!!
Donc, ou bien je parviens à désactiver les macros du classeur appelé via
VBA, ou bien je modifie le code des procédures (mais tu m'as bien précisé
que ce n'était pas possible, le projet étant protégé), ou bien je trouve la
solution pour savoir quand le classeur en question (appelé) à été finalement
fermé par l'utilisateur pour restaurer automatiquement l'environnement
"protégé" souahaité, ce que je saurais faire si un "interrupt" quelconque me
signifiait que je suis revenue à mon classeur d'origine ;-)
suis-je clair là, dis donc ????
En tout cas, merci de ton aide, et de celles des autres passagers de ce
forum ô combien précieux ;-)))))
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
"Joël" <jo...@joelgarbe.fr> a écrit dans le message de news:
b80po3$fe3$1...@news-reader11.wanadoo.fr...
En partant du principe que tu connais le mot de passe, le code de ce module
devrait te dépanner :
http://perso.wanadoo.fr/frederic.sigonneau/code/VBE/ProtegerDeprotegerVBAProject.txt
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
"Joël" a écrit :
Est-ce que la procédure de Frédéric te convient ?
Je n'ai pas pu la tester, car SendKeys n'existe pas dans les versions d'Excel
pour Mac ;-((
Pareil pour OpenFileWithoutMacro :-((
"Joël" a écrit :
Au final, le code proposé ne semble pas répondre à ma demande :-((
en effet, je me retrouve avec la boîte de dialogue "Propriété du projet"
affichée, attendant que je lui entre le MDP, ce que je ne peux pas me
permettre,, l'application étant destinée à un utilisateur n'étant pas sensé
connaître ledit MDP !!
lors de la 2ème tentative, le mot de passe envoyé se retrouve dans la zone
"Nom du Projet" de ladite Boîte.
Que manque-t-il ????
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
"Frédéric Sigonneau" <frederic....@wanadoo.fr> a écrit dans le message
de news: 3EA3F4A4...@wanadoo.fr...
Qu'est-ce qui ne marche pas ?
Je viens de retester ce code et je n'obtiens pas cette boite de dialogue. Le
projet est déprotégé sans avertissement ni demande de confirmation.
Vérifie
- que le classeur à déprotéger est bien ouvert
- que tu fournis le bon mot de passe (sans caractères "parasites" du genre
espace ou autres).
Je poursuis mes recherches, il semble qu'en évitant e le faire en pas à pas,
donc directement à partir du classeur, sans passer par le VBE, la
déprotection fonctionne correctement maintenant.
Il ne me reste qu'à supprimer le code qui me gêne dans le classeur appelé
!!!
Encore merci, Je crois avoir la solution sur ton site.
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
"Frédéric Sigonneau" <frederic....@wanadoo.fr> a écrit dans le message
de news: 3EA41B17...@wanadoo.fr...
Un grand merci pour votre aide d'une part, et pour m'avoir permis de
franchir une étape très importante dans la compréhension du code et de la
logique liés au projet VBA lui-même
Encore Merci, et bonne soirée ;-))))))))))
--
Bien Cordialement
Joël GARBE
+33 6 60 58 20 68
jo...@joelgarbe.fr
"Joël" <jo...@joelgarbe.fr> a écrit dans le message de news:
b817kv$lgr$1...@news-reader12.wanadoo.fr...