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 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 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 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
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 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
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 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
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