Help : 3 Macros "simples" à faire fonctionner

lazaz -  
 lazaz -
Bonjour,

Je rencontre un problème. j'ai réalisé trois boutons de chois "niveau 1", 2 et 3.
Selon le choix de l'utilisateur cela bloque certaines colonnes.
le problème est que mon fichier ne fonctionne pas bien.
Quand je l'exécute il fonctionne mais uniquement pour le niveau sur lequel il a été exécuté et les autres ne sont pas actifs.
J'espère etre claire.
Par exemple j'exécute le niveau 1. Les colonnes autres que B sont bloquées quand je coche la case "niveau 1. Mais si je change et que je coche la case "niveau 2", ce sont toujours les colonnes de la colonne B qui sont accessibles..
Help ! (c'est ma première utilisation des macros... soyez indulgents ^^)

Voici ce que j'ai :

Sub niveau1()
With ActiveSheet
.Unprotect
.Cells.Locked = True
End With
Set rng = ActiveSheet.Range("B24:B71")
rng.Locked = False
ActiveSheet.Protect
End Sub

Sub niveau2()
With ActiveSheet
.Unprotect
.Cells.Locked = True
End With
Set rng = ActiveSheet.Range("D24:D71")
rng.Locked = False
ActiveSheet.Protect
End Sub

Sub niveau3()
With ActiveSheet
.Unprotect
.Cells.Locked = True
End With
Set rng = ActiveSheet.Range("F24:F71")
rng.Locked = False
ActiveSheet.Protect DrawingObjects:=True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

3 réponses

  1. Maurice
     
    Bonjour

    ton SelectionChange est vide ?
    et en plus il doit se trouver dans la feuille et pas dans un module
    et ta macro dans un Module
    A+
    Maurice
    0
    1. lazaz
       
      Heu Maurice, je ne comprends pas... Peux-tu expliquer davantage ?
      C'est ma première macro, pour laquelle j'ai eu bcp d'aide...
      0
  2. Maurice
     
    bonjour
    redonne ton model car tu a changer pas mal de chose
    A+
    Maurice
    0
    1. lazaz
       
      Début de la conversation si tu veux comprendre plus : https://forums.commentcamarche.net/forum/affich-31580405-help-cocher-une-cellule-engendre-blocage-certaines-cellules
      ----
      Ce que j'ai aujourd'hui :
      .................

      Public rng As Range
      ---
      Sub niveau1()
      With ActiveSheet
      .Unprotect
      .Cells.Locked = True
      End With
      Set rng = ActiveSheet.Range("B24:B71")
      rng.Locked = False
      ActiveSheet.Protect
      End Sub
      ----
      Sub niveau2()
      With ActiveSheet
      .Unprotect
      .Cells.Locked = True
      End With
      Set rng = ActiveSheet.Range("D24:D71")
      rng.Locked = False
      ActiveSheet.Protect
      End Sub
      ----
      Sub niveau3()
      With ActiveSheet
      .Unprotect
      .Cells.Locked = True
      End With
      Set rng = ActiveSheet.Range("F24:F71")
      rng.Locked = False
      ActiveSheet.Protect DrawingObjects:=True
      End Sub
      ----


      Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      End Sub
      0
    2. lazaz
       
      http://cjoint.com/?EBulDcC3L7e

      Mon document simplifié.
      0
  3. Maurice
     
    Bonjour
    Voila les modif
    regarde bien bon courage

    http://cjoint.com/?3Bum4dmRv0U

    A+
    Maurice
    0
    1. lazaz
       
      Merci ! C'est parfait :)
      0
    2. lazaz
       
      Nouvelle question.

      Si en plus de mon fichier tel que fait précédemment je souahite avoir une condition.
      Du type : "si la case B43 est remplie alors rendre innaccessible la case B44", comment faire ??
      0