Il te suffit de trier le tableau et de tester ligne à ligne si deux lignes sont identiques
OU
faire deux boucles imbriquées : l'une qui lit, l'autre qui parcourt toutes les autres lignes pour tester les doublons.
Salut, il faut que tu construise ta procédure en 2 étapes
Avant les étapes créer une variable disponible à travers les fonctions et sub-r de ta form
Private Toto() as string
Ensuite créer une fontion qui va vérifier le contenu de ton tableau Toto enfin de voir si l'info est déjà enregistrée
Private function CheckRef(byval Ref as String) as Boolean
'ici une boucle qui parcours ton tableau et qui retourne True si Ref à été trouvé dans le tableau et false dans le cas contraire
end function
puis créer la sub-r principale de ta vérif
Sub CheckTable
'ici une boucle qui parcours toutes les lignes du tableau et qui vérifie si la ligne en cours est présente dans toto ou pas
'si elle y est alors tu passe à la suivante, dans le cas contraire tu ajoute cette ref au tableau toto
'puis une fois la boucle finie tu fait : len(toto) ou toto.lenght je sais plus ^^ bref ça te retourne le nombre d'élément enregistrer
une simple collection, avec la clé, les données en doublons ne s'ajoutent pas.
Un petit on error resume next avant l'ajout dans la collection, on error goto 0 et c'est fini.
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
On Error Resume Next
' l'ajout d'un doublon provoque
une erreur, on occulte l'erreur,
' l'ajout du
doublon ne se fait pas et la routine continue ;)
For i = LBound(sTableau) To UBound(sTableau)
cCollection.Add sTableau(i), CStr(sTableau(i))
Next i
For i = 1 To cCollection.Count
Debug.Print cCollection.Item(i)
Next i
Unload Me
End Sub
--Mortalino--
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Salut, s'il s'agit d'un tableau en mémoire, je pense que DARKSIDIOUS a donné la meilleure réponse possible.
Quoique, à mon avis, le meilleur des contrôles de doublons aurait dû se faire au niveau du remplissage du tableau et non pas au moment de son utilisation.
Je sais qu'une collection est plus lourde qu'un tableau, mais s'il y a un tri de données sur les doublons à faire en tableau, 2 boucles pour le tableau, c'est trop long, surtout si t'as des milliers de données à traiter.
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino > je persiste et signe : il est sûrement moins long de contrôler les doublons au moment du remplissage du tableau (ou de la collection) qu'au moment des différentes utilisations. Reste à savoir comment ce tableau (ou cette collection) est rempli(e).
une variante de l' idée de DARKSIDIOUX,
si ce n' est la même...
'------------------------------------------------
Function Compte_Sans_Doublon() As integer
Dim uB as integer
uB=UBound(T)
if uB=0 Then
Compte_Sans_Doublon=0
ElseIf uB=1 Then
Compte_Sans_Doublon=1
Else
uB=uB-1
Dim Temp() As String
Dim i as Integr, Dim sText As string
For i=1 To uB
sText=T(i)
Redim Preserve Temp(i)
Temp(i)=sText
Do While sText=T(i+1)
i=i+1
Loop
Next
Compte_Sans_Doublon=UBound(Temp)
End If
End Function
'------------------------------------------------
MonCompte=Compte_Sans_Doublon
'------------------------------------------------
j' espère que je ne me suis pas perdu !