Problème de protection de VB

max94

XLDnaute Nouveau
Problème de protection de VB [Non Résolu]

Bonjour à tout le forum,

Je me suis beaucoup instruit de vos fil de discussion pour apprendre à utiliser VB et Excel.

Maintenant, j'ai un gros soucis :

Je sais déprotéger VB et le reprotéger, mais lorsque je souhaite reprotéger vb, il faut que le classeur soit réouvert.

Or lorsque je réouvre le classeur sur lui même, celui-ci créé un bug d'excel qui se fige et est obligé d'être refermé.

Ca ne posait pas de problème avant que mon fichier grossisse (7MO actuellement)

Si quelqu'un aurait une solution à m'apporter afin de résoudre ce problème, se serait génial!!!

Je vous remercie d'avance et attend de vos nouvelles
 
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Bonjour max94,
Je sais déprotéger VB et le reprotéger, mais lorsque je souhaite reprotéger vb, il faut que le classeur soit réouvert.

Or lorsque je réouvre le classeur sur lui même, celui-ci créé un bug d'excel qui se fige et est obligé d'être refermé.
Pouvez répéter la question ?

Qu'est ce que VB ? l'éditeur de macros ?
Que veut dire réouvrir le classeur sur lui même ?
.....

Dans l'attente d'autres explications ou d'un bout de fichier avec un bout de code.

Cordialement
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Sub ProtectionMacro()
ProtectVBProject ActiveWorkbook, "0000"
End Sub

Sub DeprotectionMacro()
UnprotectVBProject ActiveWorkbook, "0000"
End Sub

Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object

Set vbProj = WB.VBProject

'Teste si le classeur est déjà déprotégé
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj

'uilise les sendkeys pourmasquer le mot de passe du projet
Application.VBE.CommandBars(1).FindControl(Id:=2557, recursive:=True).Execute
SendKeys "~" & Password & "~", True
'Application.VBE.ActiveCodePane.Window.Close

End Sub

Sub ProtectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject

'teste si le projet est déjà verrouillé
If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj

'utilise les sendKeys pour mettre le mot de passe
Application.VBE.CommandBars(1).FindControl(Id:=2557, recursive:=True).Execute
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & Password & "~"
NomSauveOpen = ActiveWorkbook.FullName
WB.Save
'UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1
'UserForm1.Label2.Caption = Int(((DefilementPB - 1) / DefilementPB) * 100) & " %"
SendKeys "{ESC}"
SendKeys "%{F11}"
Workbooks.Open NomSauveOpen
End Sub
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,

Intéressant ta macro.:)

Je ne l'ai pas testée, mais pourquoi veux tu réouvrir ton fichier alors qu'il l'est déjà ?
Si c'est pour que la protection soit prise en compte, je pense qu'il vaut mieux que tu utilises un évènement de type beforeClose dans this workbook.

A te lire

Cordialement

Edit : Oups désolé pour la collision Pierrot : pas rafraichi...
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

En fait, je vais être encore plus explicite...

J'ai une fonction qui créé des macro, or pour créer des macro, il faut que l'éditeur de macra VBA soit déprotéger. Par la suite il doit être reprotéger. Donc j'ai une fonction du style:

Sub CréationDeMacro()
DeprotectionMacro

'Code de création des macros

ProtectionMacro
End Sub

Or pour se reprotéger complètement, Excel doit être relancé d'où le :
"Workbooks.Open NomSauveOpen"

Pour un petit fichier, il me sempble que ça marche, mais pour un fichier volumineux,
Problème!!!
Donc si quelqu'un connaît ce type de problème, merci de bien vouloir me dépanner

En vous remerciant par avance
Max94

Edit : De même que Spitnolan08 je n'avais pas raffraichit!!! lol
 
Dernière édition:

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Re,
Pour Pierrot,
La fenêtre VBA fermé, non fermé etc.. Dans tous les sens :D
Mais, il faut savoir qu'avant, ça ne me posait pas de problème quand mon fichier était moins volumineux.

Pour Spitnolan08,
NomSauveOpen est le fichier que je modifie, tout se passe dans le même fichier.
En fait c'est un outil complet, et cette partie là n'en est qu'une infime partie!!! (Mais qui bug maintenant!!!) :(

Cordialement,
Max
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème de protection de VB

Re,

Ok, tout se passe dans le même fichier. Mais, pour que ton code VBA soit protégé, il suffit de réenregistrer ton fichier, pas de le réouvrir. Pourquoi avoir besoin de réouvrir ce fichier ?
Il y a un truc que je n'ai pas saisi peut être ?:confused:

Cordialement
 

max94

XLDnaute Nouveau
Re : Problème de protection de VB

Et nan en fait, si tu ne fait que sauvegarder ton fichier, il est vrai que la partie VBA est reprotégé, mais est encore ouverte, dc au moindre bug ou action de l'utilisateur visant à ouvrir l'explorateur VB, celui-ci à un accès libre au code!!!
:)

Cordialement,
Max
 

Discussions similaires

Statistiques des forums

Discussions
312 168
Messages
2 085 907
Membres
103 029
dernier inscrit
ndembi sylver