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

Résolu/Fermé
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 - 11 mars 2022 à 18:56
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 - 7 mai 2022 à 15:15
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

A voir également:

8 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
12 mars 2022 à 08:47
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
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
14 mars 2022 à 19:58
Bonjour et merci ! :)
C'est exactement ce que je cherchais à faire !
Comment indiquer "texte contenant xx" dans :
If cel = "c" Then


Merci ! :-)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
15 mars 2022 à 06:59
Bonjour,

Comment indiquer "texte contenant xx" dans :
Peu importe le texte(C,P,MV) ou ????
0
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
17 mars 2022 à 16:23
Bonjour,

Et il sortira de quel chapeau ce mot?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
17 mars 2022 à 17:30
Re,

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

https://www.cjoint.com/c/LCrqEpfvpLf
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
21 avril 2022 à 16:38
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 avril 2022 à 17:19
Bonjour,


Fichier modifie pour vos trois checkbox verrouillage/deverrouillage: https://www.cjoint.com/c/LDvprSr0vnf
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
7 mai 2022 à 15:15
Magnifique ! Je jetterai un oeil plus en détail pour comprendre l'affaire !
Merci ! :-)
0