OVH Cloud OVH Cloud

trier un tableau sans doublons ?

2 réponses
Avatar
gus
En vba quelqu'un serait t'il comment l'on peut trier un=20
tableau de fa=E7on a faire disparaitre les doublons ?

Pour une plage de donn=E9es , j'utilise la fonction=20
advancedfilter et l'option UNIQUE=3Dtrue, mais pour un=20
tableau je ne sais pas comment faire.
Mon tableau est declare comme ceci et ne contient que des=20
noms .
Dim tableau(1000)

merci pour vos solutions

2 réponses

Avatar
François Picalausa
"gus" a écrit dans le message de
news:0eed01c3a9f6$d00c1e90$
En vba quelqu'un serait t'il comment l'on peut trier un
tableau de façon a faire disparaitre les doublons ?

Pour une plage de données , j'utilise la fonction
advancedfilter et l'option UNIQUE=true, mais pour un
tableau je ne sais pas comment faire.
Mon tableau est declare comme ceci et ne contient que des
noms .
Dim tableau(1000)



Bonjour/soir,

Déjà si ton tableau ne contient que des noms et donc, uniquement des chaines
de caractères, tu devrais le déclarer comme
Dim tableau(1000) As String

pour vérifier qu'il n'y ait pas de doublons, tu pourrais faire quelquechose
comme ceci:
Dim tableau(1000) As String, i As Long, j As Long, lngjStart As Long

tableau(0) = "Jean"
tableau(1) = "Pierre"
tableau(2) = "André"
tableau(3) = "Jean"

For i = 0 To 1000
'on pourrait utiliser lbound(tableau) to ubound(tableau)
'dans ce cas, prévoir à stoquer les nobmres dans des variables
'pour éviter que lbound et ubound ne doivent être exécutées à chaque
fois
lngjStart = i + 1
For j = lngjStart To 1000
If tableau(i) = tableau(j) And tableau(j) <> "" Then
tableau(j) = "" 'ici, éliminer le nom de la liste
'on pourrait déplacer les noms, redimensionner la liste, ...
End If
Next j
Next i

Debug.Print tableau(0), tableau(1), tableau(2), tableau(3)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
Avatar
Parfait, tout a fait ce qu'il me fallait.
Je modifie juste le code pour qu'il me suprime les
doublons.
Merci , cela va me permettre de simplifier pas mal de
chose.

-----Message d'origine-----
"gus" a écrit dans


le message de
news:0eed01c3a9f6$d00c1e90$
En vba quelqu'un serait t'il comment l'on peut trier un
tableau de façon a faire disparaitre les doublons ?

Pour une plage de données , j'utilise la fonction
advancedfilter et l'option UNIQUE=true, mais pour un
tableau je ne sais pas comment faire.
Mon tableau est declare comme ceci et ne contient que




des
noms .
Dim tableau(1000)



Bonjour/soir,

Déjà si ton tableau ne contient que des noms et donc,


uniquement des chaines
de caractères, tu devrais le déclarer comme
Dim tableau(1000) As String

pour vérifier qu'il n'y ait pas de doublons, tu pourrais


faire quelquechose
comme ceci:
Dim tableau(1000) As String, i As Long, j As Long,


lngjStart As Long

tableau(0) = "Jean"
tableau(1) = "Pierre"
tableau(2) = "André"
tableau(3) = "Jean"

For i = 0 To 1000
'on pourrait utiliser lbound(tableau) to ubound


(tableau)
'dans ce cas, prévoir à stoquer les nobmres dans des


variables
'pour éviter que lbound et ubound ne doivent être


exécutées à chaque
fois
lngjStart = i + 1
For j = lngjStart To 1000
If tableau(i) = tableau(j) And tableau(j)


<> "" Then
tableau(j) = "" 'ici, éliminer le nom de


la liste
'on pourrait déplacer les noms,


redimensionner la liste, ...
End If
Next j
Next i

Debug.Print tableau(0), tableau(1), tableau(2),


tableau(3)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


.