bonsoir,
Je comprend mieux la question...
Il n'y a pas d'autres solutions que d'énumérer les mots de passe en fonction des feuilles : Dans cet exemple (avec un classeur à 7 feuilles) les feuilles impaires ont le mot de passe "galopin"
les feuilles paires ont le mot de passe "blabla"
Sub Protege(Optional Y)
Dim PWd$
PWd1 = "galopin"
PWd2 = "blabla"
For i = 1 To Worksheets.Count
Select Case i
Case 1, 3, 5, 7: Z = PWd1
Case 2, 4, 6: Z = PWd2
End Select
With Worksheets(i)
If IsMissing(Y) Then
If .ProtectContents = False Then .Protect Z
Else
If .ProtectContents Then .Unprotect Z
End If
End With
Next
End Sub
Sub Deprotege()
Protege 0
End Sub
Nota : J'ai utilisé un Select Case pour la détermination des mots de passe car c'est la méthode qui donne le plus de souplesse avec un grand nombre de feuilles.
Nota2: Les select case avec N° d'index étant parfois sujet à problèmes il serait préférable de faire un select case de ce type :
Select Case Worksheets(i).Name
Case "Feuil1", "Feuil3", "Feuil5", "Feuil7": Z = PWd1
Case "Feuil2", "Feuil4", "Feuil6": Z = PWd2
End Select
Le reste sans changement...
Bien sur on peut envisager des tas de variantes... Mais cela est surtout en fonction du contexte (Nombre de feuilles, Nombres d'utilisateurs différents...)
A+