Option Explicit
Private Sub Worksheet_Activate()
Over100
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Over100
End Sub
Private Sub Over100()
Dim Plage As Range, Cel As Range
Dim Fc As String
Dim P As Variant
On Error Resume Next
Set Plage = Me.UsedRange.Cells
Me.Tab.Color = False
Set Cel = Plage.Find("*%", , xlValues, xlWhole): Fc = ""
Do While Not Cel Is Nothing
If Fc = "" Then Fc = Cel.Address
P = Split(Cel.Text, "%")
Select Case True
Case UBound(P) > 1
Case UBound(P) = 0
Case Val(P(0)) > 100
ActiveWorkbook.Names.Add "SaveMe", RefersToR1C1:="=""" & Me.Name & """"
Me.Tab.Color = vbRed
Me.Name = "Alerte"
Exit Do
Case Not IsError([saveme])
Me.Name = [saveme]
ActiveWorkbook.Names("SaveMe").Delete
End Select
Set Cel = Plage.FindNext(Cel)
If Cel.Address = Fc Then Set Cel = Nothing
Loop
End Sub