Verrouiller une celule selon le choix d'une liste déroulante

eme.fny -  
Gyrus Messages postés 3360 Statut Membre -
Bonjour,

J'ai créé une liste déroulante au sein d'une cellule, et je souhaiterais, selon le choix de la liste déroulante verrouiller( griser) une autre cellule.

Exemple : En A1 je choisis dans la liste déroulante "B", je souhaiterais que la cellule C1 se vérouille, et si je choisis "A" qu'elle se déverouille.

Je ne sais pas si je me suis bien exprimée.. J'ai fait des recherches sur internet mais à part en passant par une macro (où je ne comprends rien) je ne sais pas comment faire.

Merci d'avance :)

4 réponses

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Tu peux utiliser la Validation de donnée.
    Cette fonctionnalité te permet de verrouiller la saisie.

    Tu sélectionnes C1, puis DONNEES > Outils de données / Validation des données

    Options >
    Autoriser : Personnalisé
    Formule : =A1<>"B"

    Ensuite, si tu souhaites griser la cellule, tu peux utiliser une mise en forme conditionnelle.

    A+
    0
    1. eme.fny Messages postés 3 Statut Membre
       
      Merci de votre réponse malheuresement ça ne me verrouille pas ma cellule..
      0
      1. Gyrus Messages postés 3360 Statut Membre 526 > eme.fny Messages postés 3 Statut Membre
         
        Pour que je puisses voir les raisons de ce dysfonctionnement, il faut que tu joignes ton fichier de test.

        Pour cela :
        1)	Tu vas dans https://www.cjoint.com/ 
        2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
        3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
        4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
        en bleu souligné ; clic droit dessus et "Copier l’adresse du lien"
        5) Tu reviens dans ta discussion sur commencamarche , et dans ton message de réponse tu fais "Coller".

        A+
        0
  2. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    Bonjour eme.fny, Gyrus

    Pour Gyrus, en fait la Validation de donnée que tu proposes au post 1 empêche bien la saisie en C1 lorsque dans la cellule A1 "B" est sélectionné, mais le hic c'est que la suppression est toujours possible, donc en cas de données quelconque en C1, celle-ci ne le seront pas protégée à la suppression, à moins que je ne me trompe, alors dans ce cas mea-culpa

    Autre proposition à l'essai en vba
    https://www.cjoint.com/c/FJAmkQh5hyj
    Slts
    0
    1. eme.fny Messages postés 3 Statut Membre
       
      Bonjour,

      J'ai ouvert votre fichier, mais étant en lecture seule je ne peux pas sélectionner "A" ou "B" sur le menu déroulant.

      A votre avis, pour un tableau excel assez important, c'est mieux d'utiliser la validation des données ou une macro?

      Merci
      0
  3. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    Re

    Donc pour voir le fonctionnement il faut à l'ouverture du fichier activer les macro si non cela ne marchera pas

    Slts
    0
  4. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour The_boss_68,

    Non, tu ne trompes pas. Avec la validation de données, la saisie est impossible si A1 ="B" mais il reste possible d'effacer la valeur qui est présente en C1.

    Reste à savoir si ce type de fonctionnement correspond à l'attente de eme.fny.

    Dans le cas contraire, on peut proposer une autre solution :
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Plage_Cible As Range
    If Target.Count > 1 Then Exit Sub
    Set Plage_Cible = Range("C1", Range("C" & Rows.Count).End(xlUp))
    Application.ScreenUpdating = False
    If Not Intersect(Plage_Cible, Target) Is Nothing Then
    If Target.Offset(, -2) = "B" Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
    End If
    End If
    End Sub

    Rq : Le verrouillage s'applique aux cellules renseignées de la colonne C suivant la valeur de la cellule associée en colonne A.

    A+
    0