1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Function getValues(Color As String)
Dim Values As Range
Dim Pos, CountOf As Long, t()
With Range("t_Valeurs").ListObject.Sort
.SortFields.Clear
.SortFields.Add Range("t_Valeurs[Couleur]")
.SortFields.Add Range("t_Valeurs[Valeur]")
.Apply
End With
CountOf = Application.CountIfs(Range("t_Valeurs[Couleur]"), Color)
If CountOf > 0 Then
Pos = Application.Match(Color, Range("t_Valeurs[Couleur]"), 0)
Set Values = Range("t_Valeurs[Valeur]")(Pos).Resize(CountOf)
If Values.Cells.Count = 1 Then
ReDim t(1 To 1, 1 To 1)
t(1, 1) = Values.Value
Else
t = Values.Value
End If
getValues = t
Erase t
End If
End Function |