Mot de passe VBA de protection d'un onglet qui ne s'enregistre pas

Bonjour à tous,
j'ai un problème bizarre sur un sujet tout simple.

j'ai un code pour protéger des onglets avec mot de passe :

Dans un module :

Sub Macro_protection()
  Dim Motdepasse As String
  Motdepasse = "taratata"
  If ActiveSheet.Protect = False Then
    ActiveSheet.Protect Password:=Motdepasse
    MsgBox (Motdepasse)
  End If
End Sub

Dans chaque feuille :

Private Sub Worksheet_Activate()
  'Vérifier si la feuille est protégée  
  Call Macro_protection
End Sub

Edit modo : merci de mettre le code entre balises avec le bouton </>

A l'issue de ma macro, ma page est bien protégée mais sans mot de passe...

La msgbox m'affiche bien mon "password"

Quelqu'un a t'il une idée ?

Bonjour,

Comme ça ça fonctionne mieux

Sub Macro_protection()
Dim Motdepasse As String
Motdepasse = "taratata"
If ActiveSheet.ProtectContents = False Then
    ActiveSheet.Protect Password:=Motdepasse
    MsgBox (Motdepasse)
End If
End Sub

Je n'ai cependant pas l'explication, je n'arrive pas à m'imaginer la valeur de la propriété Protect, pas sûr qu'elle soit Booleenne.

Cdlt,

Edit : Mais je suis d'accord avec 78chris (que je salue), le test ne me semble pas utile étant donné qu'il ne renvoie pas d'erreur, vous pouvez protéger quelque soit le statut de protection de la feuille.

Bonjour

Test inutile

Sub Macro_protection()
  Dim Motdepasse As String
  Motdepasse = "taratata"
  ActiveSheet.Protect Password:=Motdepasse
  MsgBox (Motdepasse)
End Sub

ça marche ... Mais je ne comprends pas pourquoi ?
En quoi le test empêchait il l'enregistrement du mot de passe ?
merci en tous les cas !!!

Bonjour,

Après vérification Protect est une méthode et non une propriété, elle ne renvoie donc pas true ou false car elle agit sur la feuille contrairement à protectcontent.

Cdlt,

Rechercher des sujets similaires à "mot passe vba protection onglet qui enregistre pas"