en ajoutant le code supplémentaire du fichier d'exemple de Oneida, cela ne fonctionne plus, car les deux codes rentrent en conflit....
Option Explicit
Const OK = " tu ne peux écrire que dans la cellule verte"
Const Nok = "fais un double click dans la cellule verte"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, [b9]) Is Nothing Then Range("B4") = OK
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With [E5:V32] 'plage à adapter
.Interior.Color = 0 'couleur de fond noir
.Font.ColorIndex = 1 'couleur police noire
If Not Intersect(ActiveCell, .Cells) Is Nothing Then
ActiveCell.Interior.Color = 10092543 'couleur de fond jaune pale
ActiveCell.Font.ColorIndex = xlAutomatic 'couleur police noire
End If
End With
If Not Intersect(Target, [b9]) Is Nothing Then Range("B4") = Nok
End Sub
Il y discordance entre ce que vous dites vouloir faire et le code que vous avez écrit.ce code me change la couler d'une plage de cellules en jaune pâle quand la plage E5:V32 est sélectionnée et re-devient noire quand elle n'est pas sélectionnée...
Comme je l'écris dans le post précédent, il faut un réel changement de cellule pour que l'événement SelectionChange se déclenche, un 2ème simple clic gauche dans la même cellule ne déclenche rien.(je veux dire que parfois un seul click suffit en dehors de la grande cellule noire pour la rendre noire, et parfois cela ne fonctionne pas, il faut 2 clicks....)
Il y a bien la fonction CELLULE, avec le paramètre "adresse" et sans préciser de référence mais elle ne se met à jour que lors des recalculs (nouvelle valeur dans la cellule sélectionnée ou appui sur la touche F9) et ça, ça ne va pas t'aidersi il existe une fonction qui reconnait une cellule sélectionnée...