Macro / protect un protect feuilles

morpheus92

XLDnaute Nouveau
jai cherché par tout et je n'arrive pas a trouver comment faire une macro qui;

Private Sub ProteccionClasseur_Click()

If Sheets("Calculos").Protect Then Sheets("Calculos").Unprotect
If Sheets("Plantas").Protect Then Sheets("Plantas").Unprotect

OR

If Sheets("Calculos").Unprotect Then Sheets("Calculos").Protect
If Sheets("Plantas").Unprotect Then Sheets("Plantas").Protect

End Sub


Le but c'est > 1 click à un button
et: si feuilles verouillées -> Deverouiller
si feuilles deverouillées -> verouiller

Merci!
 

Gorfael

XLDnaute Barbatruc
Re : Macro / protect un protect feuilles

Salut morpheus92 et le forum
Code:
Private Sub ProteccionClasseur_Click()

If Sheets("Calculos")..ProtectContents Then
    Sheets("Calculos")..Unprotect
Else
    Sheets("Calculos")..Protect
End If
If Sheets("Plantas")..ProtectContents Then
    Sheets("Plantas")..Unprotect
Else
    Sheets("Plantas")..Protect
End If
End Sub
Excel fait toujours ce que tu lui demande de faire (si c'est faisable) et quelques (rares) fois ce que tu veux ;)

Protect/UnProtect : instructions d'action, pas de lecture d'un état

il faut que l'action de protection/déprotection soit effectuée suivant un seul et même test, sous peine qu'un second test ne contre l'action du premier
A+
 

morpheus92

XLDnaute Nouveau
Re : Macro / protect un protect feuilles

salut gorfael, j'ai utilisé le programme que tu m'as donné et il ne marche pas, le texte se met tout en rouge.
et oui en fait j'avais compris ce que tu m'avais dit mais je ne sais pas comment le faire! je suis nouveau en excel, en fait il me faudrait trouver une foncton "goto" et "and" comme ca je pourrais faire ca;

Private Sub ProteccionClasseur_Click()

If Sheets("Calculos") or Sheets("Plantas") .Protect Then Unprotect Sheets("Calculos") and . Sheets("Plantas") else go to end

If Sheets("Calculos") or Sheets("Plantas") .Unprotect Then Protect Sheets("Calculos") and . Sheets("Plantas") else go to end



End Sub
 

gfortin9

XLDnaute Occasionnel
Re : Macro / protect un protect feuilles

Allô!

Le code de Gorfael fonctionne bien si on réduit les points, une erreur de frappe probablement.

Code:
Private Sub ProteccionClasseur_Click()
 
If Sheets("Calculos").ProtectContents Then
     Sheets("Calculos").Unprotect
 Else
     Sheets("Calculos").Protect
 End If
 If Sheets("Plantas").ProtectContents Then
     Sheets("Plantas").Unprotect
 Else
     Sheets("Plantas").Protect
 End If
 End Sub

gf
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 931
Membres
103 984
dernier inscrit
maliko67