Public Function ValeursUniquesDansPlage(MaPlage As Range)
'par: https://excel-malin.com
On Error GoTo ValeursUniquesDansPlageErreur
'définition de variables
Dim N As Long
Dim Compteur As Long
Dim Ligne As String
Dim Valeur As String
Dim NombreDeValeursUniques As Long
Dim ValeursUniques() As String
'valeurs par défaut
N = 0
Compteur = 0
Ligne = ""
Valeur = ""
NombreDeValeursUniques = 0
N = MaPlage.Count
ReDim ValeursUniques(0 To N)
'itération dans la Plage
If (N > 0) Then
For Compteur = 1 To N
Valeur = CStr(MaPlage.Cells(Compteur).Value)
If (Not (InStr(1, Ligne, Valeur, vbBinaryCompare) > 0)) Then
Ligne = Ligne & ("[" & Valeur & "]")
NombreDeValeursUniques = NombreDeValeursUniques + 1
ValeursUniques(NombreDeValeursUniques) = Valeur
End If
Next Compteur
End If
'résultat final
ValeursUniquesDansPlage = NombreDeValeursUniques
Exit Function
ValeursUniquesDansPlageErreur:
MsgBox "Une erreur s'est produite..."
ValeursUniquesDansPlage = 0
End Function