Suppression Doublons dans un tableau (Array)

Caponord38

XLDnaute Junior
Bonjour tout le monde,
Je suis en train de créer une macro de recherche de Communes par codes Postaux
J'ai 3 UserForm.
Un pour faire le choix du type de recherche:
Un pour la Recherche par code postal approximatif
Un pour la Recherche par noms de communes approximatif
Dans le UserForm de recherche par code postal
J'ai un tableau généré à partir d'un find et classé par ordre croissant.
Le problème est que ce tableau contient des doublons. Comment puis je faire pour supprimer les doublons?

Je vous remercie pour votre aide
A+
Caponord38
 

Temjeh

XLDnaute Accro
Supporter XLD
Re : Suppression Doublons dans un tableau (Array)

Bonjour

Déjà trouvé ici:
La liste est en col A avec doublons

Dans le userform colle ceci pour combobox1 sans doublons sur feuil1

Private Sub UserForm_Initialize() 'à l'initalisation de l'userForm
Dim p As Range 'déclare la variable p
Dim cel As Range 'déclare la variable cel
Dim tablo As New Collection 'déclare la variable tablo
Dim item As Variant 'déclare la variable item

With Sheets("feuil1")
Set p = .Range("A1:A" & .Range("A65536").End(xlUp).Row) 'définit la variable p
End With

'***********************************************************************
'remplissage sans doublons de la ComboBox1 en passant par une Collection
'***********************************************************************

'remplissage de la collection
On Error Resume Next 'gestion des erreurs
For Each cel In p 'boucle sur toutes les cellules cel de la plage p
'ajoute un membre (la valeur de la cellule cel convertie en texte) à la collection ...un doublon provoque une erreur
tablo.Add CStr(cel.Value), CStr(cel.Value)
Next cel 'prochaine cellule cel de la plage p

'remplissage de la ComboBox1
For Each item In tablo 'boucle sur tous les membres de la collection "tablo"
ComboBox1.AddItem tablo(item) 'ajoute le membre à la ComboBox1
Next item 'prochain membre de la collection

End Sub

Temjeh
 

Pièces jointes

  • Combo_Sans_Doublons.zip
    11.5 KB · Affichages: 42
Dernière édition:

Caponord38

XLDnaute Junior
Re : Suppression Doublons dans un tableau (Array)

Bonjour tout le monde et bonjour Temjeh,
J'avais dèjà vu ta réponse à un fil ultérieur mais mon problème et que je veux supprimer les doublons dans un tableau portant le doux nom TabloCodePostal afin de restituer le contenu dans un ListBox.
Merci pour les réponses
A+
Caponord38
 

Caponord38

XLDnaute Junior
Re : Suppression Doublons dans un tableau (Array)

Temjeh à dit:
Bonsoir

Ptêtre joint un fichier avec détails et les réponses vont pleuvoir

Temjeh
Bonjour Temjeh et tout le monde
Voici comme suggéré le code source
PHP:
Private Sub CommandButtonValideRecherche_Click()
Dim NombreTextBoxParCodePostal
Dim i, c, H, x, temp, G
Dim TabloCodePostal() As String
i = 0
x = 1
If Len(TextBoxParCodePostal) < 2 Then
    MsgBox "Attention le champs de recherche doit contenir au minimum 2 chiffres"
End If
If TextBoxParCodePostal.Value < 10 Or TextBoxParCodePostal.Value > 99000 Then
    MsgBox "la valeur de recherche n'est pas dans la bonne fourchette. Elle doit être comprise entre 10 et 99000"
End If

NombreTextBoxParCodePostal = TextBoxParCodePostal.Value
With Worksheets(1).Range("C2:C39175")
    Set c = .Find(NombreTextBoxParCodePostal)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            i = i + 1
            ReDim Preserve TabloCodePostal(x)
            TabloCodePostal(x) = c.Value
            If Len(TabloCodePostal(x)) = 4 Then
                TabloCodePostal(x) = 0 & TabloCodePostal(x)
            End If
            x = x + 1
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
'MsgBox "Nombre de Correspondance de la Recherche: " & i
'on trie le tableau
For G = 1 To UBound(TabloCodePostal)
    For H = 1 To UBound(TabloCodePostal)
        If TabloCodePostal(G) < TabloCodePostal(H) Then
            temp = TabloCodePostal(H)
            TabloCodePostal(H) = TabloCodePostal(G)
            TabloCodePostal(G) = temp
        End If
    Next H
Next G

ListBoxAfficheCodePostal.Visible = True
ListBoxAfficheCodePostal.List = TabloCodePostal
End Sub
Donc voici mon souhait avant l'affichage de la ListBoxAfficheCodePostal il faudrait je supprime les doublons dans le tableau à une dimension TabloCodePostal.

Merci d'avance pour vos réponses
A+
Caponord38
 

Discussions similaires

Réponses
20
Affichages
579
Réponses
16
Affichages
565

Statistiques des forums

Discussions
312 502
Messages
2 089 022
Membres
104 006
dernier inscrit
CABROL