J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus d'un
même modèle). A la suite d'une erreur sur le modèle (cf qq message plus
haut), l'exécutable doit corriger le code de chacun des classeurs à leur
prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de
l'objet VBProject pour modifier le code, cependant, je rencontre un pb de
protection de module (pour faire simple j'ai donné un mot de passe au
VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous
identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord
:="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet
Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
popi
"Hamelin-Lecardonnel SA" a écrit dans le message de news: bg5eb7$qsd$
Bonjour,
J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus d'un
même modèle). A la suite d'une erreur sur le modèle (cf qq message plus haut), l'exécutable doit corriger le code de chacun des classeurs à leur prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de l'objet VBProject pour modifier le code, cependant, je rencontre un pb de protection de module (pour faire simple j'ai donné un mot de passe au VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord :="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?
Bruno
Salut Bruno, as-tu creusé dans la mine d'or de Frédéric Sigonneau ?? ;-)
"Hamelin-Lecardonnel SA" <Hamelin-Lecardonnel@dial.oleane.com> a écrit dans
le message de news: bg5eb7$qsd$1@s1.read.news.oleane.net...
Bonjour,
J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus
d'un
même modèle). A la suite d'une erreur sur le modèle (cf qq message plus
haut), l'exécutable doit corriger le code de chacun des classeurs à leur
prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de
l'objet VBProject pour modifier le code, cependant, je rencontre un pb de
protection de module (pour faire simple j'ai donné un mot de passe au
VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous
identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord
:="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet
Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?
Bruno
Salut Bruno, as-tu creusé dans la mine d'or de Frédéric Sigonneau ?? ;-)
"Hamelin-Lecardonnel SA" a écrit dans le message de news: bg5eb7$qsd$
Bonjour,
J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus d'un
même modèle). A la suite d'une erreur sur le modèle (cf qq message plus haut), l'exécutable doit corriger le code de chacun des classeurs à leur prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de l'objet VBProject pour modifier le code, cependant, je rencontre un pb de protection de module (pour faire simple j'ai donné un mot de passe au VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord :="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?
Bruno
Salut Bruno, as-tu creusé dans la mine d'or de Frédéric Sigonneau ?? ;-)
Puisque tu connais le mot de passe, la bidouille ci-dessous, récupérée sur le forump anglophone, devrait te rendre service..
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 !
'=========================== 'Bill Manville, mpep
Sub TestProtect() ProtectVBProject Workbooks("Perso.xls"), "zaza" End Sub
Sub TestUnprotect() UnprotectVBProject Workbooks("Perso.xls"), "zaza" 'pour qu'Excel reconnaisse la nouvelle situation (déprotection) DoEvents With Workbooks("Perso.xls") 'ajout d'un module standard .VBProject.VBComponents.Add 1 End With End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already unlocked! If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to quote the project password SendKeys Password & "~~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute End Sub
Sub ProtectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already locked! If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to set the project password SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~"
J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus d'un même modèle). A la suite d'une erreur sur le modèle (cf qq message plus haut), l'exécutable doit corriger le code de chacun des classeurs à leur prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de l'objet VBProject pour modifier le code, cependant, je rencontre un pb de protection de module (pour faire simple j'ai donné un mot de passe au VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord :="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?
Bruno
Bonjour,
Puisque tu connais le mot de passe, la bidouille ci-dessous, récupérée sur le
forump anglophone, devrait te rendre service..
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 !
'=========================== 'Bill Manville, mpep
Sub TestProtect()
ProtectVBProject Workbooks("Perso.xls"), "zaza"
End Sub
Sub TestUnprotect()
UnprotectVBProject Workbooks("Perso.xls"), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
With Workbooks("Perso.xls")
'ajout d'un module standard
.VBProject.VBComponents.Add 1
End With
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already unlocked!
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to quote the project password
SendKeys Password & "~~"
Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute
End Sub
Sub ProtectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already locked!
If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to set the project password
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
Password & "~"
J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus d'un
même modèle). A la suite d'une erreur sur le modèle (cf qq message plus
haut), l'exécutable doit corriger le code de chacun des classeurs à leur
prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de
l'objet VBProject pour modifier le code, cependant, je rencontre un pb de
protection de module (pour faire simple j'ai donné un mot de passe au
VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous
identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord
:="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet
Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?
Puisque tu connais le mot de passe, la bidouille ci-dessous, récupérée sur le forump anglophone, devrait te rendre service..
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 !
'=========================== 'Bill Manville, mpep
Sub TestProtect() ProtectVBProject Workbooks("Perso.xls"), "zaza" End Sub
Sub TestUnprotect() UnprotectVBProject Workbooks("Perso.xls"), "zaza" 'pour qu'Excel reconnaisse la nouvelle situation (déprotection) DoEvents With Workbooks("Perso.xls") 'ajout d'un module standard .VBProject.VBComponents.Add 1 End With End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already unlocked! If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to quote the project password SendKeys Password & "~~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute End Sub
Sub ProtectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already locked! If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to set the project password SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~"
J'ai conçu un exécutable VB6 qui ouvre des classeurs Excel (Tous issus d'un même modèle). A la suite d'une erreur sur le modèle (cf qq message plus haut), l'exécutable doit corriger le code de chacun des classeurs à leur prochaine ouverture.
Ce newsgroup m'a donné de précieuses informations sur l'utilisation de l'objet VBProject pour modifier le code, cependant, je rencontre un pb de protection de module (pour faire simple j'ai donné un mot de passe au VBAProject pour l'ensemble de mes classeurs : les mots de passe sont tous identiques).
Je ne trouve pas de méthode MonWorkbook.VBProjet.Unprotect PassWord :="MonMotDepasse" pour l'objet VBProject comme il en existe pour l'objet Sheets.
L'exécutable plante sur ce problème de mot de passe ... Comment passer ?