XL 2013 mot de passe excel dynamique

titooooo

XLDnaute Occasionnel
bonjour

ma demande me semble simple

je dispose de classeur excel avec des macros

je veut les protéger par un mot de passe dynamique
exemple le mot de passe c'est l'heure en chiffre

si je veut exécuter mes macro a 20:26 le mot de passe serait 2026


es ce possible
 

CB60

XLDnaute Barbatruc
Bonsoir
J'avais fais cela, il y a quelques années.
Je peux te proposer cette macro à adapter pour ton cas, elle crée un nouveau mot de passe qui change tous les jours, et cela en fonction du jour de l'ouverture du fichier, donc aujourd'hui le mot de passe est "7407" et demain se sera "8619", il te suffit de prendre la variable "VAR_E" comme mot de passe.
Code:
Sub TestMdP()
Var1 = Mid((CDate(Now)), 1, 1)
Var2 = Mid((CDate(Now)), 2, 1)
Var3 = Mid((CDate(Now)), 4, 1)
Var4 = Mid((CDate(Now)), 5, 1)
Var5 = Application.WorksheetFunction.Small(Array(Var1 * 1, Var2 * 1, Var3 * 1, Var4 * 1), 1)
Var6 = Application.WorksheetFunction.Small(Array(Var1 * 1, Var2 * 1, Var3 * 1, Var4 * 1), 2)
Var7 = Application.WorksheetFunction.Small(Array(Var1 * 1, Var2 * 1, Var3 * 1, Var4 * 1), 3)
Var8 = Application.WorksheetFunction.Small(Array(Var1 * 1, Var2 * 1, Var3 * 1, Var4 * 1), 4)
var9 = Right(Application.WorksheetFunction.Max(Var1, Var2, Var3, Var4), 1)
var10 = Right(var9 + 1, 1)
var11 = Right(var9 + 2, 1)
var12 = Right(var9 + 3, 1)
VarA = Right(Var1 + Var5 + var9, 1)
VarB = Right(Var2 + Var6 + var10, 1)
VarC = Right(Var3 + Var7 + var11, 1)
VarD = Right(Var4 + Var8 + var12, 1)
VAR_E = VarA & VarB & VarC & VarD

MsgBox VAR_E
End Sub

EDIT,
J'ai modifié le fichier, j'ai adapté la macro à un USF, pour tester il suffit de cliquer sur la feuil2, un USF s'ouvre et pour pouvoir travailler sur cette feuille il faut mettre le bon MdP, sinon on revient sur la feuil1
 

Pièces jointes

  • CREATION mdp.xls
    3.8 MB · Affichages: 16
Dernière édition:

Softmama

XLDnaute Accro
Bonjour,

Une autre approche. Une fonction qui à chaque lancement de macros sensibles (mamacro1 et mamacro2 dans cet exemple) demande le mot de passe correspondant à l'heure en cours. mamacro3 et mamacro4 peuvent être lancées sans restrictions :

VB:
Sub mamacro1()
  If MDP_ok <> 1 Then MsgBox "mdp incorrect": Exit Sub
  MsgBox "Je peux lancer la macro1"
End Sub

Sub mamacro2()
  If MDP_ok <> 1 Then MsgBox "mdp incorrect": Exit Sub
  MsgBox "Je peux lancer la macro2 car tu as donné le bon mdp"
End Sub

Sub mamacro3()
  MsgBox "Je peux lancer la macro3 sans besoin de mdp"
End Sub

Sub mamacro4()
  MsgBox "Je peux lancer la macro4 sans besoin de mdp"
End Sub

Function MDP_ok()
a = InputBox("Mot de Passe du moment ?", "Sécurité")
If a = Split(Split(CDate(Now))(1), ":")(0) & Split(Split(CDate(Now))(1), ":")(1) Then MDP_ok = 1
End Function
 

Discussions similaires

Réponses
5
Affichages
367
Compte Supprimé 979
C