Compter le nombre d'occurences uniques dans un tableau trié ou non pouvant contenir des doublons

Contenu du snippet

Function CountArrayWithoutDouble(aArray() As  String) As  Long
    Dim aBuff() As String
    aBuff = aArray
    
    Dim i&, j&, sBuffer As String
    i = UBound(aBuff) - LBound(aBuff) + 1
    
    If i = 1 Then
        CountArrayWithoutDouble = 1
    ElseIf i = 2 Then
        CountArrayWithoutDouble = IIf(aBuff(LBound(aBuff)) = aBuff(LBound(aBuff) + 1), 1, 2)
    Else
        CountArrayWithoutDouble = 0
        For i = LBound(aBuff) To UBound(aBuff) - 1
            For j = i + 1 To UBound(aBuff)
                If (aBuff(i) = aBuff(j)) Then aBuff(j) =  vbNullChar
            Next j
        Next i
        For i = LBound(aBuff) To UBound(aBuff)
            If aBuff(i) <> vbNullChar Then  CountArrayWithoutDouble = CountArrayWithoutDouble +  1
        Next i
    End If
    
    Erase aBuff
End Function

'EXEMPLE  D'UTILISATION
Private Sub Form_Load()
    Dim sTableau(1 To 4) As String
    sTableau(1) = "proc1"
    sTableau(2) = "proc2"
    sTableau(3) = "proc1"
    sTableau(4) = "proc1"
    MsgBox CountArrayWithoutDouble(sTableau)
    Unload Me
End Sub
  

Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.