Question sur code de protection d'une macro

Bonjour a tous,

Premierement, bravo pour le nouveau fofo, il est tres beau.

ma question porte sur un code que j'ai trouvé sur plusieurs fofo. ce code permets de proteger et deproteger les modules depuis une macro (activée par un bouton d'une feuille)

Le code de deverouillage marche tres bien (cela evite que ma macro plante avec le message " execution impossible si pas verouillé")

le deverouillage est immediat.

Par contre, mon soucis porte sur le code de protection.

Il fonctionne mais n'est efficace (apres enregistrement) qu'a la reouverture du classeur .

je m'explique : une fois la macro executée (deprotegé...fait sont taf....), avec un alt+f11, on a acces au code.

j'aimerais que la reprotection bloque l'ouverture des modules (comme quand on le fait a la main)

voici le code :

Sub TestUnprotect()
 UnprotectVBProject Workbooks("zz-tps-gamme.xlsm"), "toto"
 SendKeys "{NUMLOCK}"
 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:=2578, recursive:=True).Execute
 End Sub

'************************************

Sub TestProtect()
ProtectVBProject Workbooks("zz-tps-gamme.xlsm"), "toto"
SendKeys "{NUMLOCK}"
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:=2578, recursive:=True).Execute

  WB.Save

  'SendKeys "{NUMLOCK}"
End Sub

Merci de votre aide

Bonjour,

Si tu le permets ... un petit conseil ...

Il faut vraiment éviter le plus possible de bricoler avec VBE ...

Il faut sytématiquement prévoir le RESET ...

Et surtout fais tous tes tests avec des doubles de tes fichiers ...

Pour obtenir ce que tu souhaites ... il y a plusieurs choses à interdire:

il faut aussi interdire l'accès à l'éditeur Alt F11 ...

il faut bloquer l'accès aux Commandbars ...

Dès que j'ai un moment, je vais rechercher ce fichier dans mes archives ...

Salut james007,

tu peux te permettre, j'écoute tjs ceux qui savent J'essaie d'apprendre le vba sur le tas, avec des exemples et des bouquins (si au passage vous connaissez des livres biens).

Effectivement, je gartouille pas mal petit bout de code par ptt bout sur des copies de fichier, ça j'ai bon

Je te remercie pour ton aide. A te lire.

Cdt

Sb

Bonjour,

En toute honnêteté ... je n'ai pas eu le temps de reprendre mon disque dur de suavegarde pour faire des recherches ...

Mais ... je dois te redire qu'il serait vraiment souhaitable que tu recherches un autre moyen pour arriver à tes fins ...

donc ... sans avoir à bloquer VBE ...

J'v regarder si je trouve une solution au message «impossible d'exécuter si protégé»

Bonjour,

j'ai retrouvé ceci dans mes archives.

A utiliser avec précaution.

J'espère que cela pourra t'aider.

Cdlt.

Bonjour Jean Eric,

Merci, je vais essayer.

Cdt

Sb

Bonjour,

Pour être utile le code de Jean-Eric doit être placé dans Workbook_Open() ou dans Worksheet_Activate() ...

Rechercher des sujets similaires à "question code protection macro"