Code VBA pour protéger tous les onglets en même temps ne fonctionne pas

Bonjour,

J'ai récupéré ce code VBA sur internet pour verrouiller tous mes onglets en même temps. Il marche parfaitement avec excel Mac mais avec excel windows il me trouve une erreur et je ne peux plus verrouiller. je mets le mot de passe, puis je confirme et il me vient une fenêtre indiquant: erreur d'exécution 1004, erreur défénie par l'application ou par l'objet.

Je clique sur débocage et il me surligne en jaune l'erreur: s.Protect Password:=pass

Sub protect_all_sheets()

top:

pass = InputBox("password?")

repass = InputBox("Verify Password")

If Not (pass = repass) Then

MsgBox "you made a boo boo"

Goto top

End If

For i = 1 To Worksheets.Count

If Worksheets(i).ProtectContents = True Then Goto oops

Next

For Each s In ActiveWorkbook.Worksheets

s.Protect Password:=pass

Next

Exit Sub

oops: MsgBox "I think you have some sheets that are already protected

End Sub

Merci pour votre aide

Bonjour

Merci de pensez à aller cloturer votre fil ici --> https://forum.excel-pratique.com/excel/creation-de-3-conditions-avec-couleurs-dans-une-cellule-17905... en cliquant sur le petit v à droite dans le menu de votre post.

Lorsque vous postez un code veillez à utiliser les balises de codes en cliquant sur l'icone </> dans la barre de menu et en collant votre code dans la fenêtre. C'est beaucoup plus lisible pour celui qui vous répond

Sur base de l'idée ici --> https://forum.excel-pratique.com/s/goto/972571

Votre code comme ceci

Sub protect_all_sheets()
Dim s As Worksheet
Dim Message As String, Title As String
Dim pass

Message = "Saisissez le mot de passe"
Title = "Mot de passe"
pass = Application.InputBox(Message, Title)

If pass = 0 Then
    MsgBox "Vous avez annulé": End

ElseIf pass = "" Then
    MsgBox "Vous n'avez rien saisi": Call protect_all_sheets

ElseIf pass = "3579" Then
    For Each s In ActiveWorkbook.Worksheets
        s.Protect Password:=pass
    Next s

ElseIf pass <> "3579" And pass <> "" Then
    MsgBox "Mauvais mot de passe": Call protect_all_sheets
End If
End Sub

Dans ce code le mot de pass est 3579. Donc à remplacer par le votre

Le code relancera le code tant que vous n'avez pas mis le bon mot de passe

Si ok -->

Cordialement

Merci pour ce retour, je n'oublierai pas cliquer sur le bouton de clôture.

mais un c'est un truc de dingue, j'ai toujours la même erreur (et j'ai laissé le même code), je mets le le mdp 3579, et rebelote

capture

ensuite je clique sur débogage

capture 2

C'est juste un truc mais vous n'avez pas une feuille Masquée par hasard ?

c'est bon, j'ai trouvé mon erreur, merci pour l'aide

Rechercher des sujets similaires à "code vba proteger tous onglets meme temps fonctionne pas"