Public ValeurAE5 ' mémorise la valur de AE5 pour la restituer
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Planning Treso").Unprotect ("SC6")
Application.ScreenUpdating = False
If Target.Address <> "$AE$5" Then Exit Sub
If Not Application.Intersect(Target, Range("AE5")) Is Nothing Then
If Range("AE5") <> "9" Then
Columns("AT").EntireColumn.Visible = False ' mon souhait pour la colonne AT, elle se cache si AE5 est<> de 9 ou s'affiche si AE5 = 9
ActiveSheet.Shapes("OK").Visible = True
ret = MsgBox("Si vous changez la durée d'utilisation, le montant de l'épargne écourté sera réinitialisé ! ", vbYesNo + vbQuestion, "Excel")
If ret = vbYes Then
Range("AS17").Value = 0
Else
Range("AE5").Value = ValeurAE5 ' comme la réponse est non, on restitue la valeur initiale
End If
Else ' ici AE5=9
Columns("AT").EntireColumn.Hidden = True
ActiveSheet.Shapes("OK").Visible = False
End If
End If
Worksheets("Planning Treso").Protect ("SC6")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("AE5")) Is Nothing Then
ValeurAE5 = [AE5] ' sauvegarde AE5 pour la restituer plus tard si réponge msgbox est non.
UserForm1.Show
End If
Worksheets("Planning Treso").Protect ("SC6")
End Sub