Verrouiller/déverouiller cellules selon texte (case à cocher

Résolu
Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   -  
Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir toutes et tous !
Je cherche à verrouiller/déverrouiller des cellules selon leur contenu à l'aide de cases à cocher.
Je prépare le planning de mon équipe d'animateur de l'été.
Pour éviter des erreurs ou des modifications non désirées, je souhaite pouvoir verrouiller les catégories validées :
- Les vacances de l'équipe sont bien notées : je verrouille les vacances
- L'équipe des primaires est correcte : je verrouille l'équipe primaire
etc...

À l'aide de VBA, je ne sais pas comment "trouver" les cellules contenant le texte concerné (p, m, v).
Dans mon fichier, j'indique dans le gestionnaire de nom la plage concernée par la recherche : equipe
Mais après je sèche sur la manière d'opérer :/

Si quelqu'un pouvait m'aider pour un bouton, ce serait cool :)

Merci à vous !

https://www.cjoint.com/c/LClr3YiRycs

Configuration: Excel 2016


--
Bien à vous,
Naï
ps: je surveille tous mes sujets non résolus, si solution vous avez, je la lirais à coup sûr :)

8 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Une facon de faire: https://www.cjoint.com/c/LCmhSFZf7Mf
    Code VBA ThisWorkbook, Feuil1.
    Click Checkbox: code fait pour Vacances mais test pour toutes, donc a vous de completer
    0
    1. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
       
      Bonjour et merci ! :)
      C'est exactement ce que je cherchais à faire !
      Comment indiquer "texte contenant xx" dans :
      If cel = "c" Then


      Merci ! :-)
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Comment indiquer "texte contenant xx" dans :
    Peu importe le texte(C,P,MV) ou ????
    0
  3. Nai
     
    Plutôt un mot donné (ou une cellule) :
    If cel = "test" Then

    ou
    If cel = "Feuil2!A12" Then

    De sorte que toutes les cellules contenant ce mot soit verrouillées : "test dir", "test truc", "test encore"
    0
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Et il sortira de quel chapeau ce mot?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nai
     
    Dans cet exemple : https://www.cjoint.com/c/LCrp6EIivcS
    L'idée c'est d'indiquer en B2 le mot devant être contenu dans les cellules à verrouiller.
    Je m'attendais à ce qu'il suffise de remplacer le = par quelque chose qui ne voudrait pas dire "est", mais "contient" ^^
    Je me sers de ta proposition sur un autre fichier, où le verrouillage des cellules doit s'appliquer sur des cellules ne contenant pas exactement le terme indiqué dans la macro (v, m, p, c) mais une partie ^^
    Donc pas de chapeau (ou alors, au pire, directement dans la macro (le terme n'étant pas amené à changer)) :-D
    0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Le verrouillage des cellules en partant du contenu d'une cellule se fait sans probleme.

    https://www.cjoint.com/c/LCrqEpfvpLf
    0
  8. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
     
    Merci pour ta réponse ! Ca fonctionne parfaitement !
    Cependant, je souhaite utiliser des checkbox (au moins 3 termes différents à verrouiller) pour bloquer les cellules.
    Et là je m'arrache les cheveux :(

    J'ai bien tenter ceci :
    Sub Chck_marsac_Click(ByVal Target As Range)
        With Worksheets("Feuil1")
            Set Plage = .Range("accueils")
            For Each cel In Plage
        If Target.Count > 1 Then Exit Sub
        
        If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
            Set Plage = Range("accueils")
            x = ""
            For Each cel In Plage
                If cel Like Range("A1") & "*" Then
                    cel.Locked = True
                    Else
                End If
            Next
        End If
            Next
        End With
    End Sub
    

    Mais je n'ai pas compris à quoi sert
    ByVal Target As Range

    Je pense que je mélange deux méthodes, mais ne comprends pas comment utiliser l'une d'elle correctement :/

    Merci, encore, de l'aide apporté ici ! :-)

    le fichier en question : https://www.cjoint.com/c/LDvoKOuDDiS
    0
  9. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Fichier modifie pour vos trois checkbox verrouillage/deverrouillage: https://www.cjoint.com/c/LDvprSr0vnf
    0
    1. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
       
      Magnifique ! Je jetterai un oeil plus en détail pour comprendre l'affaire !
      Merci ! :-)
      0