Désactiver les cellules sur une autre feuille

J'ai 2 feuilles principales et une sous-feuille.

MainSheet a un drop down menu oui / non. Si l'user sélectionne oui, les cellules de sous-class doivent être activées et s'il sélectionne aucune "cellule doit être désactivée".

En outre, si les users sélectionnent "non" et essaie de cliquer sur les cellules désactivées msg doit être affiché en disant "click OK pour activer les cellules" et la valeur dans la list déroulante devrait passer à "oui" sur la feuille principale.

Fonction ci-dessous sur la fiche principale

If Intersect(Target, Range("G11")) Is Nothing Then Exit Sub Application.EnableEvents = False Select Case (Target.Value) Case "YES" Call Notify Case "NO" Call Notify Exit Sub End Select Application.EnableEvents = True 

Au-dessous de la fonction, j'ai utilisé un module.

 Public Sub Notify() If ActiveSheet.ProtectContents And Not mMessageDisplayed Then mMessageDisplayed = True If MsgBox("Cells are locked on current sheet, press ok to Unlock", vbOKCancel + vbInformation) = vbOK Then ThisWorkbook.Worksheets("MAIN").Range("G11") = "YES" With ThisWorkbook.Sheets("Subsheet") .Range("E13:E14").Locked = False End With Else ThisWorkbook.Worksheets("MAIN").Range("G11") = "NO" With ThisWorkbook.Sheets("Subsheet") .Range("E13:E14").Locked = True End With End If End If End Sub 

Fonction ci-dessous sur SubSheet

 Private mMessageDisplayed As Boolean Private Sub Worksheet_Activate() Notify End Sub 

Les fonctions fonctionnent. La seule préoccupation est … Je reçois l'invite du message même lorsque l'user a déjà sélectionné "Oui". L'intention est d'get l'invite msg seulement s'il a sélectionné non et vient à la sous-section et essaie de l'éditer.