[visual basic] problème de Combobox

john -  
 john -
Bonjour,

je suis en train de lister des extensions de fichiers pour les mettre dans des combobox.Pour cela, j'utilise :

macombo.AddItem Right(fichier, 3) ( ex : doc , pdf ... )

Mais le problème c'est que j'utilise une boucle pour toutes les ajouter et j'en ai en double , tripple...

Comment faire pour les avoir une fois uniquement ?

Merci
A voir également:

5 réponses

Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
salut john,

une solution serait de tout stocker dans un tableau, de trier ce tableau, puis de le parcourir pour en enlever tous les doublons. Ensuite seulement, tu fais ComboBox.AddItem avec les éléments de ce tableau.

0
john
 
Merci de ta réponse.

Ce que j'étais en train de faire, puisque j'ai une boucle qui liste les extensions, à l'intérieur je faisais :

mavariable = Right(fichier, 3)
If macombo.Text <> mavariable Then 'si l'extension existe pas, je l'ajoute
macombo.AddItem (mavariable)
End If

Mais il compare uniquement la première valeur de la combo qui est : " " donc il ajoute quand même.
Il faudrait que je puisse comparer avec ce qu'il y a dans la combo.Comment faire ?

Merci.
0
jpcheck Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
comme kobaya te l'a dit, il faut d'abord faire une liste de toute les extensions que tu veux mettre, puis les filtrer, pour supprimer les doublons, et seulement après tu ajoutes automatiquement chaque extension depuis la liste filtrée, donc une seule fois. ^^
0
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
Sub RemplirComboSansDoublons()
    Dim rngCell     As Range
    Dim intNbItem   As Integer
    Dim blnFlag     As Boolean
    
    blnFlag = False
    For Each rngCell In Range("A1").CurrentRegion.Cells
        For intNbItem = 0 To ComboBox1.ListCount - 1
            If rngCell.Value = ComboBox1.List(intNbItem) Then
                blnFlag = True
                Exit For
            End If
        Next
        If Not blnFlag Then
            ComboBox1.AddItem rngCell.Value
        End If
    Next
End Sub


Ca vaut peut-être le coup de comparer la rapidité de ce code avec la solution que je t'avais décrite auparavant. De plus, ici les éléments ne sont pas triés.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
john
 
Merci pour vos réponses.

En m'aidant de ce que tu proposais kobaya, j'ai réussi en changeant certaines choses à supprimer mes doublons !!
Je n'ai pas tester la méthode des tableaux ( enfin si, mais jamais réussi à faire fonctionner... ) Je m'emmêler dans les boucles..

Bref merci à ceux qui se sont penchés sur mon problème !
0