[visual basic] problème de Combobox

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

5 réponses

  1. 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.

    1. 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.
      1. 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. ^^
        1. 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.
          1. 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 !