Mes macros sont prtégées dans VBA. Est-il possible de déprotéger et reprotéger ces macros à partir d'une macro lancer sous Excel ? Merci -- BHY
BHY
Je comprends la remarque et adhère complètement Mais j'ai du mal m'exprimer dans ma question. Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et les macros de ce tableur sont aussi protégées avec le même pwd. J'ai une macro "administrateur" qui me permet de changer le mot de passe de toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau > confrmation).Cette macro fonctionne parfaitement pour les feuilles et le classeur mais je cherche le moyen dans cette macro de modifier en même temps le Pwd des macros (projet VBA) Merci BHY -- BHY
Je tiens à souligner la vocation expressément personnelle de ce programme, qui vous permettra de réouvrir ou de modifier un fichier Excel sur lequel vous auriez placé un mot de passe oublié par la suite (ce qui est malheureusement fréquent...). Ce n'est en aucun cas une invitation à déprotéger des fichiers que, pour diverses raisons, leurs auteurs ont tenu à protéger.
La puissance du programme vous permet d'aller voir "derrière" des programmes que d'autres ont souvent passé beaucoup de temps à écrire. Ne l'oubliez pas et respectez le travail effectué.
ça sent la FERRARI non ;-)
recommandations de l'auteur
les routines présentes dans ces modules sont strictement destinées à un usage personnel je décline toute responsabilité quant à l'utilisation qui pourrait en être faite N'oubliez pas non plus que ce code reste ma propriété intellectuelle ce n'est pas parce que vous pouvez le lire, que vous pouvez vous l'approprier. En résumé, respectez le travail d'autrui
Salut,
http://www.veriti.net/download.php?lng=fr&pg42
ça te va ?
"BHY" a écrit dans le message de news:
Mes macros sont prtégées dans VBA. Est-il possible de déprotéger et reprotéger ces macros à partir d'une macro lancer sous Excel ? Merci -- BHY
Je comprends la remarque et adhère complètement
Mais j'ai du mal m'exprimer dans ma question.
Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et
les macros de ce tableur sont aussi protégées avec le même pwd.
J'ai une macro "administrateur" qui me permet de changer le mot de passe de
toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau >
confrmation).Cette macro fonctionne parfaitement pour les feuilles et le
classeur mais je cherche le moyen dans cette macro de modifier en même temps
le Pwd des macros (projet VBA)
Merci
BHY
--
BHY
Je tiens à souligner la vocation expressément personnelle de ce
programme, qui vous permettra de réouvrir ou de modifier un fichier
Excel sur lequel vous auriez placé un mot de passe oublié par la suite
(ce qui est malheureusement fréquent...). Ce n'est en aucun cas une
invitation à déprotéger des fichiers que, pour diverses raisons, leurs
auteurs ont tenu à protéger.
La puissance du programme vous permet d'aller voir "derrière" des
programmes que d'autres ont souvent passé beaucoup de temps à écrire. Ne
l'oubliez pas et respectez le travail effectué.
ça sent la FERRARI non ;-)
recommandations de l'auteur
les routines présentes dans ces modules sont strictement
destinées à un usage personnel
je décline toute responsabilité quant à l'utilisation qui pourrait en
être faite
N'oubliez pas non plus que ce code reste ma propriété intellectuelle
ce n'est pas parce que vous pouvez le lire, que vous pouvez vous
l'approprier. En résumé, respectez le travail d'autrui
Salut,
http://www.veriti.net/download.php?lng=fr&pg42
ça te va ?
"BHY" <BHY@discussions.microsoft.com> a écrit dans le message de news:
3C37D910-BE1F-4031-B695-EF910335DE77@microsoft.com...
Mes macros sont prtégées dans VBA. Est-il possible de déprotéger et
reprotéger ces macros à partir d'une macro lancer sous Excel ?
Merci
--
BHY
Je comprends la remarque et adhère complètement Mais j'ai du mal m'exprimer dans ma question. Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et les macros de ce tableur sont aussi protégées avec le même pwd. J'ai une macro "administrateur" qui me permet de changer le mot de passe de toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau > confrmation).Cette macro fonctionne parfaitement pour les feuilles et le classeur mais je cherche le moyen dans cette macro de modifier en même temps le Pwd des macros (projet VBA) Merci BHY -- BHY
Je tiens à souligner la vocation expressément personnelle de ce programme, qui vous permettra de réouvrir ou de modifier un fichier Excel sur lequel vous auriez placé un mot de passe oublié par la suite (ce qui est malheureusement fréquent...). Ce n'est en aucun cas une invitation à déprotéger des fichiers que, pour diverses raisons, leurs auteurs ont tenu à protéger.
La puissance du programme vous permet d'aller voir "derrière" des programmes que d'autres ont souvent passé beaucoup de temps à écrire. Ne l'oubliez pas et respectez le travail effectué.
ça sent la FERRARI non ;-)
recommandations de l'auteur
les routines présentes dans ces modules sont strictement destinées à un usage personnel je décline toute responsabilité quant à l'utilisation qui pourrait en être faite N'oubliez pas non plus que ce code reste ma propriété intellectuelle ce n'est pas parce que vous pouvez le lire, que vous pouvez vous l'approprier. En résumé, respectez le travail d'autrui
Salut,
http://www.veriti.net/download.php?lng=fr&pg42
ça te va ?
"BHY" a écrit dans le message de news:
Mes macros sont prtégées dans VBA. Est-il possible de déprotéger et reprotéger ces macros à partir d'une macro lancer sous Excel ? Merci -- BHY
RGI
Bonjour
c'est différent certes !!!!
ceci doit faire cette demande
Sub TestProtect() ProtectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub TestUnprotect() UnprotectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object Set vbProj = WB.VBProject If vbProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj 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 If vbProj.Protection = 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute WB.Save End Sub
PS: Il faut fermer le fichier pour que la protection puisse être prise en compte
salutations
RGI
Je comprends la remarque et adhère complètement Mais j'ai du mal m'exprimer dans ma question. Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et les macros de ce tableur sont aussi protégées avec le même pwd. J'ai une macro "administrateur" qui me permet de changer le mot de passe de toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau > confrmation).Cette macro fonctionne parfaitement pour les feuilles et le classeur mais je cherche le moyen dans cette macro de modifier en même temps le Pwd des macros (projet VBA) Merci BHY
Bonjour
c'est différent certes !!!!
ceci doit faire cette demande
Sub TestProtect()
ProtectVBProject Workbooks("fichier.xls"), "motdepasse"
End Sub
Sub TestUnprotect()
UnprotectVBProject Workbooks("fichier.xls"), "motdepasse"
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
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
If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
Password & "~"
Application.VBE.CommandBars(1).FindControl(ID:%78,
recursive:=True).Execute
WB.Save
End Sub
PS: Il faut fermer le fichier pour que la protection puisse être prise
en compte
salutations
RGI
Je comprends la remarque et adhère complètement
Mais j'ai du mal m'exprimer dans ma question.
Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et
les macros de ce tableur sont aussi protégées avec le même pwd.
J'ai une macro "administrateur" qui me permet de changer le mot de passe de
toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau >
confrmation).Cette macro fonctionne parfaitement pour les feuilles et le
classeur mais je cherche le moyen dans cette macro de modifier en même temps
le Pwd des macros (projet VBA)
Merci
BHY
Sub TestProtect() ProtectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub TestUnprotect() UnprotectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object Set vbProj = WB.VBProject If vbProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj 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 If vbProj.Protection = 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute WB.Save End Sub
PS: Il faut fermer le fichier pour que la protection puisse être prise en compte
salutations
RGI
Je comprends la remarque et adhère complètement Mais j'ai du mal m'exprimer dans ma question. Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et les macros de ce tableur sont aussi protégées avec le même pwd. J'ai une macro "administrateur" qui me permet de changer le mot de passe de toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau > confrmation).Cette macro fonctionne parfaitement pour les feuilles et le classeur mais je cherche le moyen dans cette macro de modifier en même temps le Pwd des macros (projet VBA) Merci BHY
BHY
Merci, on y est presque ... j'ai intégré ton code dans le code de mon userForm ChangePassword mais quand je l'exécute il accède bien au VBAProject mais il me demande de saisir le password, il ne prend pas les variable Old_Pwd ou New_Pwd, j'ai du rater quelques chose dans ma syntaxe ...
'Unprotect Workbook & All Sheets (Old Password) Dim sht As Worksheet ActiveWorkbook.Unprotect Old_Pwd For Each sht In ActiveWorkbook.Worksheets sht.Unprotect Old_Pwd Next sht UnprotectVBProject Workbooks("Gate_Eng_V1.xls"), Old_Pwd
'Protect Workbook & All Sheets (New Password) Range("Pwd") = New_Pwd For Each sht In ActiveWorkbook.Worksheets sht.Protect New_Pwd, Contents:=True, _ DrawingObjects:=True, Scenarios:=True Next sht ActiveWorkbook.Protect New_Pwd, Structure:=True, Windows:úlse
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object Set vbProj = WB.VBProject If vbProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj 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 If vbProj.Protection = 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute WB.Save End Sub -- BHY
Bonjour
c'est différent certes !!!!
ceci doit faire cette demande
Sub TestProtect() ProtectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub TestUnprotect() UnprotectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object Set vbProj = WB.VBProject If vbProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj 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 If vbProj.Protection = 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute WB.Save End Sub
PS: Il faut fermer le fichier pour que la protection puisse être prise en compte
salutations
RGI
Je comprends la remarque et adhère complètement Mais j'ai du mal m'exprimer dans ma question. Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et les macros de ce tableur sont aussi protégées avec le même pwd. J'ai une macro "administrateur" qui me permet de changer le mot de passe de toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau > confrmation).Cette macro fonctionne parfaitement pour les feuilles et le classeur mais je cherche le moyen dans cette macro de modifier en même temps le Pwd des macros (projet VBA) Merci BHY
Merci, on y est presque ... j'ai intégré ton code dans le code de mon
userForm ChangePassword mais quand je l'exécute il accède bien au VBAProject
mais il me demande de saisir le password, il ne prend pas les variable
Old_Pwd ou New_Pwd, j'ai du rater quelques chose dans ma syntaxe ...
'Unprotect Workbook & All Sheets (Old Password)
Dim sht As Worksheet
ActiveWorkbook.Unprotect Old_Pwd
For Each sht In ActiveWorkbook.Worksheets
sht.Unprotect Old_Pwd
Next sht
UnprotectVBProject Workbooks("Gate_Eng_V1.xls"), Old_Pwd
'Protect Workbook & All Sheets (New Password)
Range("Pwd") = New_Pwd
For Each sht In ActiveWorkbook.Worksheets
sht.Protect New_Pwd, Contents:=True, _
DrawingObjects:=True, Scenarios:=True
Next sht
ActiveWorkbook.Protect New_Pwd, Structure:=True, Windows:úlse
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
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
If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
Password & "~"
Application.VBE.CommandBars(1).FindControl(ID:%78,
recursive:=True).Execute
WB.Save
End Sub
--
BHY
Bonjour
c'est différent certes !!!!
ceci doit faire cette demande
Sub TestProtect()
ProtectVBProject Workbooks("fichier.xls"), "motdepasse"
End Sub
Sub TestUnprotect()
UnprotectVBProject Workbooks("fichier.xls"), "motdepasse"
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
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
If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
Password & "~"
Application.VBE.CommandBars(1).FindControl(ID:%78,
recursive:=True).Execute
WB.Save
End Sub
PS: Il faut fermer le fichier pour que la protection puisse être prise
en compte
salutations
RGI
Je comprends la remarque et adhère complètement
Mais j'ai du mal m'exprimer dans ma question.
Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et
les macros de ce tableur sont aussi protégées avec le même pwd.
J'ai une macro "administrateur" qui me permet de changer le mot de passe de
toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau >
confrmation).Cette macro fonctionne parfaitement pour les feuilles et le
classeur mais je cherche le moyen dans cette macro de modifier en même temps
le Pwd des macros (projet VBA)
Merci
BHY
Merci, on y est presque ... j'ai intégré ton code dans le code de mon userForm ChangePassword mais quand je l'exécute il accède bien au VBAProject mais il me demande de saisir le password, il ne prend pas les variable Old_Pwd ou New_Pwd, j'ai du rater quelques chose dans ma syntaxe ...
'Unprotect Workbook & All Sheets (Old Password) Dim sht As Worksheet ActiveWorkbook.Unprotect Old_Pwd For Each sht In ActiveWorkbook.Worksheets sht.Unprotect Old_Pwd Next sht UnprotectVBProject Workbooks("Gate_Eng_V1.xls"), Old_Pwd
'Protect Workbook & All Sheets (New Password) Range("Pwd") = New_Pwd For Each sht In ActiveWorkbook.Worksheets sht.Protect New_Pwd, Contents:=True, _ DrawingObjects:=True, Scenarios:=True Next sht ActiveWorkbook.Protect New_Pwd, Structure:=True, Windows:úlse
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object Set vbProj = WB.VBProject If vbProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj 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 If vbProj.Protection = 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute WB.Save End Sub -- BHY
Bonjour
c'est différent certes !!!!
ceci doit faire cette demande
Sub TestProtect() ProtectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub TestUnprotect() UnprotectVBProject Workbooks("fichier.xls"), "motdepasse" End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object Set vbProj = WB.VBProject If vbProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj 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 If vbProj.Protection = 1 Then Exit Sub Set Application.VBE.ActiveVBProject = vbProj SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _ Password & "~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute WB.Save End Sub
PS: Il faut fermer le fichier pour que la protection puisse être prise en compte
salutations
RGI
Je comprends la remarque et adhère complètement Mais j'ai du mal m'exprimer dans ma question. Je n'ai pas oublié le pwd : j'ai un tableur que je protège avec un Pwd et les macros de ce tableur sont aussi protégées avec le même pwd. J'ai une macro "administrateur" qui me permet de changer le mot de passe de toutes les feuilles et du classeur (Saisie ancien Pwd > saisie nouveau > confrmation).Cette macro fonctionne parfaitement pour les feuilles et le classeur mais je cherche le moyen dans cette macro de modifier en même temps le Pwd des macros (projet VBA) Merci BHY