Macro pour protéger une étendue de feuille

nemotri Messages postés 179 Statut Membre -  
nemotri Messages postés 179 Statut Membre -
Bonjour,

Voilà je souhaiterai créer une macro qui me permette de protéger ou d'oter la protection (sans mot de passe) sur une étendue de feuille.

Voilà ce que j'ai tenté sans succès :

Sub Portéger_feuilles () 'macro pour protéger
Sheets ("Nom de la première feuille de l'étendue":"Nom de la dernière feuille de l'étendue").Select
Selection.Protect
End Sub


Quelle procédure dois-je utiliser ?

3 réponses

  1. m@rina Messages postés 27616 Date d'inscription   Statut Modérateur Dernière intervention   11 563
     
    Bonjour,

    Il me semble que les méthodes Protect et Unprotect ne peuvent s'affecter qu'à un seul objet.
    Il faut donc faire une boucle :

    Sub proteger()
    Dim feuilles, feuille
    feuilles = Array(1, 2, 5)  'choisir les feuilles à protéger
    For Each feuille In ActiveWorkbook.Sheets(feuilles)
    feuille.Protect
    Next
    End Sub


    m@rina
    0
    1. nemotri Messages postés 179 Statut Membre 35
       
      Ok,
      merci de ton aide, je vais esayer ça quand j'aurai un petit moment.

      nemotri.
      0
    2. nemotri Messages postés 179 Statut Membre 35
       
      Bonsoir m@rina,


      Etant donné que mon étendue de feuille à protéger (ou "déprotéger") est importante, est que je peux marquer après par exemple : Array (2 to 65)

      Merci.
      0
  2. m@rina Messages postés 27616 Date d'inscription   Statut Modérateur Dernière intervention   11 563
     
    Bonjour,

    Tu ne peux pas mettre Array x to y.
    Il faut faire une ou plusieurs boucles de type :

    For feuille = 2 To 30
    ActiveWorkbook.Sheets(feuille).Protect
    Next


    Si tes feuilles à protéger ont un point commun, par exemple le nom, tu pourrais faire :

    For Each feuille In ActiveWorkbook.Sheets
    If Left(feuille.Name, 4) = "toto" Then
    feuille.Protect
    End If
    Next


    m@rina

    0
  3. nemotri Messages postés 179 Statut Membre 35
     
    Bonsoir,

    Je déterra un peu mon vieux post pour une petite précision.
    J'arrive bien à faire fonctionner une macro pour protéger ou déprotéger une étendue de feuille seulement j'aimerai modifier les critères de la protéction. En effet, j'aimerai protéger les feuilles mais qu'àprès la protection activée on puisse sélectionner les cellules déverrouillées et modifier le formet des cellules.

    Mais je ne sais pas comment faire. Il semble que par défaut les critères sélectionner les cellules vérouillées et sélectionner des cellules déverrouillées soient activés. Comment changer ça ?

    Merci d'avance.
    0