Sub MAJ()
Dim vis As Range, c As Range
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
Set vis = [F:F].SpecialCells(xlCellTypeVisible).EntireRow 'mémorise les lignes visibles
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 'si la feuille est filtrée
If Application.CountIf([A:B], "*" & vbLf & "*") Then
[A:B].Replace vbLf & "*", "", xlPart
Else
For Each c In Intersect(Range("A3:B" & Rows.Count), ActiveSheet.UsedRange).SpecialCells(xlCellTypeConstants)
c = c & vbLf & "*P" & c & "*"
With c.Characters(InStr(c, "*P")).Font
.Name = "Monotype Corsiva"
.Size = 24
End With
Next
End If
Rows("2:" & Rows.Count).AutoFit
Rows("2:" & Rows.Count).Hidden = True 'masque tout
vis.Hidden = False 'affiche les lignes mémorisées
End Sub