Function Tirage(Valeurs As Range, Exclus As Range) As Variant
Application.Volatile
Dim Tablo()
Dim C As Range
ReDim Tablo(0)
' création de la liste des valeurs tirables
For Each C In Valeurs.Cells
If IsError(Application.Match(C.Value, Exclus, 0)) Then
ReDim Preserve Tablo(UBound(Tablo) + 1)
Tablo(UBound(Tablo)) = C.Value
End If
Next C
If UBound(Tablo) = LBound(Tablo) Then
Tirage = "Pas de tirage possible!"
Else
Tirage = Tablo(Int((UBound(Tablo) * Rnd) + 1))
End If
End Function