VBA - Macro pour verrouiller d'autres macro avant diffusion
Bonjour,
Je souhaite créer une macro (nommons-la macro0) qui, en la lançant, après avoir taper un code prédéfini, me permet de vérouiller/dévérouiller certaines macros (disons macro1, macro2, macro3) tout en en laissant d'autres actives (macro4 et macro5).
Je suis complètement novice dans ce domaine et n'ai pas de pré-code à proposer, mais dans ma tête cela me semble assez simple... :?
macro pour verrouiller d'autres macros, avec enregistrement de variable
Alors, après recherche, j'utilise plutôt cette fonction:
Ci-dessous la macro de vérouillage/dévérouillage:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
Option explicit
Dim code1, code as string
Sub verrouillage()
code1 = GetSetting("Excel", "Module_de_Code", "code_")
If Len(code1) = 0 Then 'lancement de la macro si aucun code de verrouillage n'a été rentré
code = InputBox("Entrer le code de vérouillage") 'La variable reçoit la valeur entrée dans l'InputBox pour vérouiller les macros
SaveSetting "Excel", "Module_de_Code", "code_", code
MsgBox "le code de vérouillage/dé-vérouillage est le : " & code 'rappel du code tapé
Else
code = InputBox("Entrer le code pour dé-verrouiller") 'La variable reçoit la valeur entrée dans l'InputBox pour dé-vérouiller les macros
If code = code1 Then
code = ""
SaveSetting "Excel", "Module_de_Code", "code_", code
Else
MsgBox "Mauvais code"
End If
End If
End Sub |
Et là le code pour les macors que je veux vérouiller:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Option explicit
Dim code1 as string
Sub macro1()
code1 = GetSetting("Excel", "Module_de_Code", "code_")
If Len(code1) = 0 Then 'lancement de la macro si aucun code de verrouillage n'a été rentré
'code de la macro à éxécuter
Else
MsgBox "Macro vérouillée"
End If
End sub |
Voilà, ça me semble propre et efficace :D