Bonjour,
regarde le fichier joint
le code :
Sub unique()
Application.ScreenUpdating = False
Dim Uniques As Object, Cel As Range
Set Uniques = CreateObject("Scripting.Dictionary")
For Each Cel In Range("C5:O22")
If Not Uniques.Exists(Cel.Value) And Cel.Value <> "" And Cel.Value <> 0 _
Then Uniques.Add Cel.Value, Cel.Value
Next Cel
Columns(1).ClearContents
Range("A1:A" & Uniques.Count).Value = Application.Transpose(Uniques.items)
With Columns("A:A")
.Copy
.Insert Shift:=xlToRight
.Replace What:="-", Replacement:="", LookAt:=xlPart
Columns("A:B").Sort Key1:=Range("B1"), Order1:=xlAscending
.Delete Shift:=xlToLeft
End With
End Sub
Le fichier :
https://www.excel-pratique.com/~files/doc/essai_v1.xls