Sub NommerPlageAvecDoublon()
Dim valeurCherchée$, champRecherche As Range, c As Range, P As Range
valeurCherchée = "A*"
With Sheets("BDD")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
Set champRecherche = Intersect(.Range("A3", .[A3].End(xlDown)), .UsedRange)
End With
On Error Resume Next
For Each c In champRecherche
If c Like valeurCherchée Then Set P = Union(IIf(P Is Nothing, c, P), c)
Next
ThisWorkbook.Names("Selection").Delete 'RAZ
P.Name = "Selection"
End Sub
Sub NommerPlageSansDoublon()
Dim valeurCherchée$, champRecherche As Range, d As Object, c As Range, P As Range
valeurCherchée = "A*"
With Sheets("BDD")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
Set champRecherche = Intersect(.Range("A3", .[A3].End(xlDown)), .UsedRange)
End With
Set d = CreateObject("Scripting.Dictionary")
On Error Resume Next
For Each c In champRecherche
If c Like valeurCherchée Then If Not d.exists(c.Value) Then _
d(c.Value) = "": Set P = Union(IIf(P Is Nothing, c, P), c)
Next
ThisWorkbook.Names("Selection").Delete 'RAZ
P.Name = "Selection"
End Sub