Public Function SupervisionProcessCheckIn(MaPlage As Range)
    
    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 Valeur <> "" Then
                    If (Not (InStr(1, Ligne, Valeur, vbBinaryCompare) > 0)) Then
                        Ligne = Ligne & ("[" & Valeur & "]")
                        NombreDeValeursUniques = NombreDeValeursUniques + 1
                        ValeursUniques(NombreDeValeursUniques) = Valeur
                    Else
                    End If
                Else
                End If
        Next Compteur
    End If
    
    'résultat final
    ValeursUniquesDansPlage = NombreDeValeursUniques
    Exit Function
    
ValeursUniquesDansPlageErreur:
    'si une erreur s'est produite...
    ValeursUniquesDansPlage = CVErr(xlErrValue)
End Function

Sub ExempleValeursUniquesDansColonne()

    On Error GoTo TestErreur
    Dim MaPlage As Range
    Dim ValeursUniques As Double
    
    Set MaPlage = ActiveSheet.Range("O2:O200") 'le calcul se fera dans toute la colonne "O" - attention à ne pas oublier le "Set"
    ValeursUniques = ValeursUniquesDansPlage(MaPlage) 'appel de la fonction "ValeursUniquesDansPlage"
    
    MsgBox "Le Nombre d'agent(s) dédié(s) est :  " & ValeursUniques & " agent(s)" 'affiche le nombre des valeurs uniques dans la plage des cellules

    MsgBox "les IDS sont"
Dim d As Object, v, k%, n%, i%
    'k =  'numéro colonne concernée
    'n =  'ligne où se termine la suite de valeurs
    Set d = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        For i = 2 To n
            d(.Cells(i, k).Value) = "x"
        Next i
    End With
    v = d.keys
    For i = LBound(v) To UBound(v)
        ' v(i) = CInt(v(i))
        MsgBox v(i)
    Next i
End Sub








-------------------------------------------------------------------------------------------------------------------------------------------


---------------------------------------------------------------------------------------------


Sub essai()
    Dim d As Object, v, k%, n%, i%
    'k =  'numéro colonne concernée
    'n =  'ligne où se termine la suite de valeurs
    Set d = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        For i = 2 To n
            d(.Cells(i, k).Value) = "x"
        Next i
    End With
    v = d.keys
    For i = LBound(v) To UBound(v)
        ' v(i) = CInt(v(i))
        MsgBox v(i)
    Next i
End Sub


MsgBox "Leurs IDs sont..."

