Verrouiller une cellule excel

Résolu
Titi32600 Messages postés 92 Statut Membre -  
Titi32600 Messages postés 92 Statut Membre -
Bonjour à tous,

Comment puis je interdire l’accès à une cellule excel, en fonction d'une donnée d'une autre cellule.

Explication

Je souhaiterais interdire l’écriture dans la cellule A1, si ma cellule A2 = NON

et permettre l’écriture dans ma cellule A1, si A2=OUI.

En même temps, je souhaiterais griser ma cellule A1 quand elle est bloquée.

je pensais à du VBA, mais je suis un peu limité.

Merci à tous

24 réponses

  • 1
  • 2
Résumé de la discussion

Le point central dans Excel est d'interdire l'écriture dans la cellule A1 lorsque A2 vaut NON et de la permettre lorsque A2 vaut OUI, avec A1 visuellement bloquée.
Des solutions basées sur VBA dans Excel ont été proposées, notamment un état actif selon A2, avec déprotection/protection de la feuille et verrouillage/déverrouillage de A1.
Une version Worksheet_Change a été proposée, s'appuyant sur A2, avec un mot de passe constant et des options pour basculer A1 entre verrouillé et déverrouillé selon OUI ou NON.
En pratique, il faut aussi déverrouiller les cellules concernées et coordonner le mot de passe, ce qui peut s'étendre à d'autres plages comme G7:G47 ou AC7:AE46.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Pas besoin de VBA pour cela,
    s'il s'agit que de la cellule A1, il faut utiliser deux syntaxes
    la première pour bloquer la cellule A1 si A2 contient OUI
    sélectionne A1 et Validation de données, onglet Option dans Autoriser sélectionne Personnalisée la formule est
    =A2="OUI"

    ensuite pour griser A1 sélectionne cette cellule et Mise en forme conditionnelle
    Nouvelle règle, la formule est
    =A2<>"OUI"

    format/Remplissage sélectionne la couleur souhaitée

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      salut Mike-31

      je viens d'essayer ta formule pour bloquer A1, mais la cellule A2 reste accessible à l’écriture, malgré le oui dans A1

      en revanche, pour ce qui est de griser la cellule, ok ca marche.

      merci encore

      titi32600
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    dans ta demande il s'agissait de bloquer A1 si A2 contenait NON tu n'as jamais parlé de bloquer A2
    alors que veux tu faire exactement
    bloquer A1 ou A2 ou les deux ?

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      re

      désolé, faute de frappe

      il est toujours question de bloquer en écriture la cellule A1 si la cellule A2=NON.

      la cellule A2 reste bien sur toujours accessible

      titi32600
      0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    et bien ma formule est bonne, il faut que tu actives ta cellule A1 et Validation de données et la formule est bien
    =A2="OUI"
    ou encore
    =A2<>"NON"
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      oui ça y est, effectivement il est impossible de valider la cellule A1, si A2=NON.

      tu vas croire que je suis pénible,

      mais je souhaiterais, ne pas avoir accès à la cellule A1 si A2=NON
      titi32600
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors la oui il faut passer par du VBA
    il faut que les cellules dans lesquelles tu souhaites accéder soit déverrouillées et que ta feuille soit protégée et éventuellement avec un mot de passe si c'est le cas quel est ce mot de passe et y a t il d'autre cellules concernées ou uniquement A1
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      Re

      Pas de problème pour déverrouiller les cellules qui doivent être accessibles, et protéger la feuille par le mot de passe "pwd"

      dans ma feuille actuelle, il y aura plusieurs cellules de concernés

      cellules G7:G47

      cellules AC7:AE46

      merci encore

      titi32600
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors déverrouille au moins la cellule A2, protège ta feuille avec le mot de passe, puis clic droit sur l'onglet de ta feuille/Visualiser le code
    et colle ce code dans la grande partie vide du Visual Basic

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Range("A2") = "OUI" Then
    ActiveSheet.Unprotect Password:="pwd"
    Range("A1").Locked = False
    Else
    Range("A1").Locked = True
    ActiveSheet.Protect Password:="pwd"
    ActiveSheet.Protect Password:="pwd", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    End If
    End Sub

    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      Re

      Merci Mike

      ça fonctionne très bien
      0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors je passe le statut de la discussion en résolu
    0
  8. Titi32600 Messages postés 92 Statut Membre 2
     
    re

    je reviens vers toi, pour avoir une petite modif

    toute ma feuille est protégée par un mot de passe en ce moment c'est "pwd"

    quand je tape dans A2 "OUI", toute ma feuille se déverrouille.

    je souhaiterais, que seule la cellule A2 soit accessibles, mais que le reste de ma feuille reste verrouillées.

    et que si j'inscris dans A1, "NON", la cellule A2 se verrouille à nouveau

    titi32600
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    remplace le code dans le Visual par celui ci
    Const Mot_pas As Variant = "pwd"

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Range("A2") = "OUI" Then
    ActiveSheet.Unprotect Password:=Mot_pas
    Range("A1").Locked = False
    ActiveSheet.Protect Password:=Mot_pas, DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    Else
    Range("A1").Locked = True
    ActiveSheet.Protect Password:=Mot_pas, DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    End If
    End Sub

    j'ai ajouté en début de code cette ligne
    Const Mot_pas As Variant = "pwd" comme cela tu n'auras qu'a changer le mot de passe uniquement dans cette ligne et le code s'adaptera.
    Attention, si tu changes le mot de passe, la première fois il faudra soit reprotéger ta feuille manuellement avec le nouveau mot de passe ou au moins la déprotéger feuille avant d'intervenir sur la cellule A2, ensuite le cycle reprendra
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      merci encore mike

      cela fonctionne, mais une fois sur deux, quand je tape OUI, je reverrouille ma cellule

      A1, et ensuite si j'inscris NON, dans la cellule A2, j'ai toujours la possibilité d'agir sur A1
      0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    si tu saisis OUI en A2 la cellule en A1 est bien verrouillée

    si tu ressaisis Non la cellule A1 est accessible, c'est ce que j'avais compris maintenant que veux tu faire, une fois que tu saisis OUI en A2 tu veux verrouiller A1 et A2 !
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      suis ok avec toi,

      en saisissant OUI en A2, la cellule A1 est verrouillée

      en saisissant NON en A2, la cellule A1 est déverrouillée,

      mais si je ressaisis OUI en A2, la cellule A1, une fois sur deux reste déverrouillée
      0
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors regarde comme cela
    Const Mot_pas As Variant = "pwd"

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Range("A2") = "OUI" Then
    ActiveSheet.Unprotect Password:=Mot_pas
    Range("A1").Locked = False
    ActiveSheet.Protect Password:=Mot_pas, DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    ElseIf Range("A2") = "NON" Then
    ActiveSheet.Unprotect Password:=Mot_pas
    Range("A1").Locked = True
    ActiveSheet.Protect Password:=Mot_pas, DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    End If
    End Sub
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      non je suis desolé, mais avec moi, ca ne marche pas.

      comment puisje t'envoyer mon exemple de feuille excel
      0
  12. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    clic sur ce lien
    https://www.cjoint.com/
    puis sur Parcourir pour sélectionner ton fichier
    sur Créer le lien
    colle dans ta réponse le lien généré
    0
  13. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    a part la mise en forme conditionnelle que tu n'avais pas mis en place, le fichier fonctionne bien
    https://www.cjoint.com/c/FAcosGPHX1j
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      re

      ici j'ai des probleme pour le faire fonctionner correctement

      je vais chercher le pourquoi du comment

      en attendant, merci encore de tes conseils

      titi32600
      0
  14. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Que se passe t il, à quel niveau ça ne marche pas
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      J'ai essayé plusieurs méthodes, mais sans changer le code que tu m'as donné.

      J'ai mis un mot de passe différent pour protéger la feuille que celui enregistré dans le code.

      la cellule A1 une fois sur deux, reste active, malgré le OUI dans A2

      J'ai mis le même mot de passe pour protéger la feuille, que celui inscrit dans le code,

      la cellule A1 une fois sur deux reste active malgré le OUI dans A2, quelque fois, elle reste verrouillée, que ce soit OUI ou NON

      J'utilise excel 2013

      titi32600
      0
  15. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    dans un premier temps teste mon dernier fichier que je t'ai posté post 21 sans rien changer
    https://www.cjoint.com/c/FAcosGPHX1j
    et dit moi si c'est pareil
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      pour le moment, quand je telecharge ton ficher, à l'ouverture, j'ai une suite ascii, mais pas de feuille excel
      0
  16. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    il fallait le dire tout de suite, tu dois certainement utiliser Mozilla firefox comme navigateur, mais cela n'est pas un problème
    télécharge ce fichier enregistré dans un format 2003, on verra plus tard le format
    https://www.cjoint.com/c/FAcucvo73hj

    teste le et reviens rendre compte
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      meme probleme

      la feuille est vérouillée par le mot de passe du code,
      mais que je tape OUI ou NON dans A2, la cellule A1 reste inaccessible
      0
  17. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors le problème est ailleurs quelle version Excel As tu !

    si tu as Excel 2007 ou supérieur et as tu l'onglet Développeur dans le Ruban Excel, il est juste après l'onglet Révision Affichage !

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      salut Mike

      je suis sur excel 2013, et oui j'ai l’onglet DEVELOPPEUR
      0
  18. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors ouvre mon dernier fichier, ensuite clic sur l'onglet développeur, puis module Code puis sur sécurité des macros coche la dernière proposition Activer toutes les macros (non recommandé .......
    enregistrer, ferme le fichier et ouvre le à nouveau et accepte les macros, teste le fichier et reviens rendre compte

    pour la sécurité des macros je t'expliquerai plus tard pour relever la sécurité
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      J'avais déjà activé toutes les macros
      j'avais meme approuvé l’accès au modèle VBA

      mais toujours le meme résultat
      0
  19. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,
    Bizarre,
    sur une feuille crée un bouton activex (onglet Développeur/module Contrôles/Insérer/crée un bouton activex
    et colle ce code à
    Private Sub CommandButton1_Click()
    If [B5].Interior.ColorIndex = xlNone Then
    [B5].Interior.ColorIndex = 3
    ElseIf [B5].Interior.ColorIndex = 3 Then
    [B5].Interior.ColorIndex = 4
    ElseIf [B5].Interior.ColorIndex = 4 Then
    [B5].Interior.ColorIndex = 3
    End If
    End Sub

    clic plusieurs fois sur le bouton et dis mois ce qui se passe à chaque clic
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      ok bouton réalisé

      à chaque clic, la cellule B5, passe de vert à rouge
      0
  20. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    je comprends de moins en moins ton problème

    dans les propriétés de ta feuille (clic droit sur l'onglet/visualiser le code) supprime tous les codes et colle celui ci
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A2]) Is Nothing Then
    Call test
    End If
    End Sub

    crée un module (dans le visual basic clic sur Insertion/Module)
    dans le module colle ce code
    Const Mot_pas As Variant = "pwd"

    Sub test()
    On Error Resume Next
    If Range("A2") = "OUI" Then
    ActiveSheet.Unprotect Password:=Mot_pas
    Range("A1").Locked = False
    ActiveSheet.Protect Password:=Mot_pas, DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    ElseIf Range("A2") = "NON" Then
    ActiveSheet.Unprotect Password:=Mot_pas
    Range("A1").Locked = True
    ActiveSheet.Protect Password:=Mot_pas, DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    End If
    End Sub


    teste ta cellule si en A2 tu as OUI A1 est accessible, si tu saisis NON A1 doit être verrouillée
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      je suis désolé, mais on a le même résultat.

      cellule A1 non accessible avec cellule A2 sur OUI ou sur NON

      je teste plein de possibilité, mais a chaque fois meme resultat
      0
  21. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    je n'y comprends plus rien, je teste également mon code dans tous les sens et aucun problème si OUI en A2 la cellule A1 est accessible et si NON en A2 la cellule A1 est verrouillée

    télécharge mon fichier et sans rien changer teste la cellule A2
    https://www.cjoint.com/c/FAdj5WeAzAj
    0
    1. Titi32600 Messages postés 92 Statut Membre 2
       
      Fichier téléchargé

      Sans rien toucher, je teste la cellule A2 avec OUI ou NON

      meme resultat, la cellule A1 reste verrouillée
      0
    2. Titi32600 Messages postés 92 Statut Membre 2
       
      non même résultat

      j'ai même essayé avec excel 2007, et j’obtiens aussi le même résultat qu'avec 2013
      0
    3. Titi32600 Messages postés 92 Statut Membre 2
       
      mais, moi la cellule A2, était toujours deverrouillée, sinon, quand la feuille est en mode protection, je ne pourrais pas y avoir accès
      0
    4. Titi32600 Messages postés 92 Statut Membre 2
       
      oui c'est ce que j'avais depuis le début, cellule A2 avec la case vérrouillée, décochée.

      sinon, je n'aurais pas pu changer le OUI ou le NON
      0
    5. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      Alors je sais plus quel conseil te donner
      0
  • 1
  • 2