Salut,
Je présume que tu lances parfois la macro avec le mot de passe en place et que ton code bloque sur le passage ci-dessous.
Si tu quittes Visual Basic à ce moment (ou si tu as simplement cliqué sur "Quitter" ou un mot comme ça lorsqu'il y a un message d'erreur), sans que le code soit passé par Application.EnableEvents = True, plus aucune macro ne fonctionne jusqu’à ce que tu aies quitté puis réouvert Excel (j’ai essayé de refermer uniquement le fichier puis de l’ouvrir à nouveau, mais ça ne suffit pas) ; les macros sont alors comme figées.
Afin d’éviter que ton code bloque et que tu interrompes le code en cours de route, je te conseille d’inclure à ton code l’enlèvement du mot de passe avant l’effacement de la ligne, mot de passe que tu peux remettre en place - toujours par l'intermédiaire du code - immédiatement après.
Dans ton code modifié ci-dessous, le mot de passe est eeee
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Plage As Range
Set Plage = Intersect(Target, Columns(8))
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
If Cel = "ok" Or Cel = "OK" Then
Application.EnableEvents = False
ActiveSheet.Unprotect ("eeee") ' ENLEVEMENT DU MOT DE PASSE
Rows(Cel.Row).Delete
' Insérer avant la dernière ligne pour garder la bonne zone nommée
Rows(398).Insert Shift:=xlDown
ActiveSheet.Protect ("eeee") 'REMISE EN PLACE DU MOT DE PASSE
Application.EnableEvents = True
End If
Next Cel
End Sub
A te relire.