Déprotéger le projet d'un classeur par VBA dont on connait le mot de passe

Le
alain Lebayle
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub



--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
papou
Le #20398401
Bonjour
Change ceci :
If vbProj.Protection 1 Then Exit Sub
par
If vbProj.Protection = 0 Then Exit Sub

Parce que la propriété Protection d'un projet VBA renvoie 0 si le projet
n'est pas vérrrouillé et 1 dans le cas contraire.

Par contre pas moyen de vérifier si c'est utilisable sur Excel 97.

Cordialement
Pascal

"alain Lebayle" news: %23$N$
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent
pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub



--






FS
Le #20400711
Bonjour,

Ci-dessous un code de Bill Manville, largement diffusé sur le net, qui
fonctionne très bien avec Excel 97 (testé) :

'===================== Sub TestUnprotect()
Dim S
S = "TestMdpxl97.xls"
UnprotectVBProject Workbooks(S), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
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
'=======================
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub





alain Lebayle
Le #20402341
Un très grand merci à toi, cela fonctionne très bien, mais, pas testé sur
Excel 97
Alain

"papou" de news:
Bonjour
Change ceci :
If vbProj.Protection 1 Then Exit Sub
par
If vbProj.Protection = 0 Then Exit Sub

Parce que la propriété Protection d'un projet VBA renvoie 0 si le projet
n'est pas vérrrouillé et 1 dans le cas contraire.

Par contre pas moyen de vérifier si c'est utilisable sur Excel 97.

Cordialement
Pascal

"alain Lebayle" de news: %23$N$
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent
pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub



--










alain Lebayle
Le #20402511
Bonsoir,
Merci beaucoup.
Cela fonctionne parfaitement, avec en plus l'assurance d'Excel 97
Dernière question, les fichiers Excel commencent tous par "Questions..."
Or, je ne sais pas comment dire à la macro S = "Questions....xls"
j'essaye avec & "*", mais en vain
Encore merci
Alain

"FS"
Bonjour,

Ci-dessous un code de Bill Manville, largement diffusé sur le net, qui
fonctionne très bien avec Excel 97 (testé) :

'===================== > Sub TestUnprotect()
Dim S
S = "TestMdpxl97.xls"
UnprotectVBProject Workbooks(S), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
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
'======================= >
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent
pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub






isabelle
Le #20402641
bonjour Alain

Fichier = "NomDuFichier"
IF Right(Fichier, 3)= "xls" And Left(Fichier, 9) = "Questions" Then

isabelle

alain Lebayle a écrit :
Bonsoir,
Merci beaucoup.
Cela fonctionne parfaitement, avec en plus l'assurance d'Excel 97
Dernière question, les fichiers Excel commencent tous par "Questions..."
Or, je ne sais pas comment dire à la macro S = "Questions....xls"
j'essaye avec & "*", mais en vain
Encore merci
Alain

"FS"

Bonjour,

Ci-dessous un code de Bill Manville, largement diffusé sur le net, qui
fonctionne très bien avec Excel 97 (testé) :

'===================== >> Sub TestUnprotect()
Dim S
S = "TestMdpxl97.xls"
UnprotectVBProject Workbooks(S), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
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
'======================= >>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :

Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent
pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub











FS
Le #20402631
Re,

Avec ce genre de code tu ne peux traiter qu'un fichier à la fois et le
nom doit être passé "en dur".
Si tu as plusieurs fichiers à traiter, tu dois pouvoir boucler sur les
fichiers ouverts et ne traiter que ceux qui t'intéressent avec (pseudo-code)

For Each classeur In Workbooks
If Left(classeur.Name,9)="Questions" Then
traitement
Enf If
Next

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :
Bonsoir,
Merci beaucoup.
Cela fonctionne parfaitement, avec en plus l'assurance d'Excel 97
Dernière question, les fichiers Excel commencent tous par "Questions..."
Or, je ne sais pas comment dire à la macro S = "Questions....xls"
j'essaye avec & "*", mais en vain
Encore merci
Alain

"FS"
Bonjour,

Ci-dessous un code de Bill Manville, largement diffusé sur le net, qui
fonctionne très bien avec Excel 97 (testé) :

'===================== >> Sub TestUnprotect()
Dim S
S = "TestMdpxl97.xls"
UnprotectVBProject Workbooks(S), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
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
'======================= >>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais le
mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent
pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub









alain Lebayle
Le #20404351
Bonsoir Isabelle
Merci beaucoup à isabelle, j'ai pu faire fonctionner grâce à sa procédure.
Un très grand merci à tous les 2
Très bonne soirée
Alain

"FS"
Re,

Avec ce genre de code tu ne peux traiter qu'un fichier à la fois et le nom
doit être passé "en dur".
Si tu as plusieurs fichiers à traiter, tu dois pouvoir boucler sur les
fichiers ouverts et ne traiter que ceux qui t'intéressent avec
(pseudo-code)

For Each classeur In Workbooks
If Left(classeur.Name,9)="Questions" Then
traitement
Enf If
Next

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :
Bonsoir,
Merci beaucoup.
Cela fonctionne parfaitement, avec en plus l'assurance d'Excel 97
Dernière question, les fichiers Excel commencent tous par "Questions..."
Or, je ne sais pas comment dire à la macro S = "Questions....xls"
j'essaye avec & "*", mais en vain
Encore merci
Alain

"FS"
Bonjour,

Ci-dessous un code de Bill Manville, largement diffusé sur le net, qui
fonctionne très bien avec Excel 97 (testé) :

'===================== >>> Sub TestUnprotect()
Dim S
S = "TestMdpxl97.xls"
UnprotectVBProject Workbooks(S), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
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
'======================= >>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

alain Lebayle a écrit :
Bonjour,
Je souhaite par VBA déprotéger le projet d'un classeur dont je connais
le mot de passe.
J'ai essayé différentes formules sur le net, mais elles ne fonctionnent
pas.
Excel 97
j'ai récupéré celle-ci sur dont l'auteur est mdeste.
Il y une erreur de syntaxe ligne 4

Je vous remercie
Alain

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 Test()
UnprotectVBProject Workbooks("MonFichier.xls"), "toto"
DoEvents
End Sub











Publicité
Poster une réponse
Anonyme