Bloquer une cellule après y avoir entrée une donnée

Résolu/Fermé
bel.lor
Messages postés
3
Date d'inscription
jeudi 5 janvier 2017
Statut
Membre
Dernière intervention
6 janvier 2017
- Modifié par bel.lor le 5/01/2017 à 21:47
Mike-31
Messages postés
17957
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 mai 2022
- 6 janv. 2017 à 15:14
Bonjour,

Je ne sais pas si Excel a cette fonctionnalité. Je m'explique, dans une feuille partagée, je souhaite bloqué une cellule dès qu'un texte ou mot est écrit. Donc lorsque l'utilisateur sort de la cellule il ne peut revenir pour y apporter des changements. Est-ce possible . Merci de votre aide.

3 réponses

Mike-31
Messages postés
17957
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 mai 2022
4 947
5 janv. 2017 à 21:46
Bonsoir,

Oui c'est tout à fait possible mais en VBA uniquement si tu as quelques notions
0
bel.lor
Messages postés
3
Date d'inscription
jeudi 5 janvier 2017
Statut
Membre
Dernière intervention
6 janvier 2017

5 janv. 2017 à 21:51
J'ai quelques notions de VBA. Si tu veux bien m'expliquer comment m'y prendre je t'en serais très reconnaissante. Merci d'avoir répondu
0
Mike-31
Messages postés
17957
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 mai 2022
4 947
Modifié par Mike-31 le 5/01/2017 à 23:40
Re,

exemple tu veux contrôler la plage B6:P40
commence par sélectionner la plage B6:P40/clic droit/Format de cellule/onglet Protection/décoche Déverrouillée

ensuite il faut protéger la feuille, et pour que la déprotection ne se fasse pas d'un simple clic je te conseille la protection avec mot de passe "ATTENTION DE NE PAS L'OUBLIER"

dans le code j'ai prévu open comme mot de passe, donc soit tu changes ce mot de passe par celui utilisé lorsque tu protégeras ta feuille, soit tu protège ta feuille avec mon mot de passe open respecte également les majuscules et minuscules

clic droit sur l'onglet de ta feuille/Visualiser le code/coller le code ci dessous

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Selection, Range("B6:P40")) Is Nothing Then
If Target <> "" Or Target.Interior.ColorIndex <> xlNone Then
ActiveSheet.Unprotect Password:="open"
Target.Locked = True
ActiveSheet.Protect Password:="open"
End If
End If
End Sub

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
bel.lor
Messages postés
3
Date d'inscription
jeudi 5 janvier 2017
Statut
Membre
Dernière intervention
6 janvier 2017

6 janv. 2017 à 15:00
Super, c'est exactement ce que je cherchais. Un gros merci. Bravo pour tes connaissances en Excell,
0
Mike-31
Messages postés
17957
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 mai 2022
4 947
Modifié par Mike-31 le 6/01/2017 à 15:32
Re,

Alors je passe le statut de la discussion en résolu

dans mon code j'ai laissé trainer un contrôle qui testait la couleur de la cellule et donc inutile, supprime ce bout de code

Or Target.Interior.ColorIndex <> xlNone 

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0