Voilà :
Sub nommer()
Const feuilles As String = ",LHCI20,LHCI24,LHCI30"
Dim sh As Worksheet, pl As Range, pl2 As Range, n As Name, i As Long
' éventuellement nettoyer si le nombre de plages peut baisser
For Each sh In Worksheets
If InStr(feuilles, "," & sh.Name & ",") > 0 Then
With sh
For Each n In ThisWorkbook.Names
If Mid(n.Name, 1, Len(sh.Name) + 1) = sh.Name & "_" Then n.Delete
Next n
' créer
.Columns(1).AutoFilter Field:=1, Criteria1:="<>"
Set pl = .[A2].Resize(.Cells(.Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
If Not pl Is Nothing Then
For Each pl2 In pl.Areas
i = i + 1: pl2.Name = sh.Name & "_" & Format(i, "00")
Next pl2
End If
.Columns(1).AutoFilter
End With
End If
Next sh
End Sub
eric