Verrouiller une cellule excel
Résolu
Titi32600
Messages postés
87
Date d'inscription
Statut
Membre
Dernière intervention
-
Titi32600 Messages postés 87 Date d'inscription Statut Membre Dernière intervention -
Titi32600 Messages postés 87 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Verrouiller une cellule excel
- Verrouiller cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Déplacer une colonne excel - Guide
24 réponses
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
ensuite pour griser A1 sélectionne cette cellule et Mise en forme conditionnelle
Nouvelle règle, la formule est
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.
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.
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.
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.
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"
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"
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
Re,
remplace le code dans le Visual par celui ci
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
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
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 !
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 !
Re,
alors regarde comme cela
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
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é
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é
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
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
Re,
Que se passe t il, à quel niveau ça ne marche pas
Que se passe t il, à quel niveau ça ne marche pas
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
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
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.
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.
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
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
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.
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.
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.
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.
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
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
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
crée un module (dans le visual basic clic sur Insertion/Module)
dans le module colle ce code
teste ta cellule si en A2 tu as OUI A1 est accessible, si tu saisis NON A1 doit être verrouillée
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
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
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
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