web-dev-qa-db-fra.com

Supprimer tous les éléments d'une ComboBox?

Comment puis-je supprimer par programme tous les éléments d'une liste déroulante dans VBA?

14
sooprise

Malheureusement, vous devez supprimer chacun individuellement:

       For i = 1 To ListBox1.ListCount

           'Remove an item from the ListBox using ListBox1.RemoveItem 
       Next i

Mise à jour - Je ne sais pas pourquoi ma réponse n'incluait pas la solution complète:

For i = ListBox1.ListCount - 1 to 0 Step - 1 
        ListBox1.RemoveItem i 
Next i 
24

Code Psuedo à venir (mis à jour avec le code réel):

Do While ComboBox1.ListCount > 0
    ComboBox1.RemoveItem (0)
Loop

En gros, lorsque vous avez des éléments, supprimez le premier élément de la liste déroulante. Une fois que tous les éléments ont été supprimés (compte = 0), votre boîte est vide.

Méthode 2: encore mieux

ComboBox1.Clear
27
Tommy

Le moyen le plus simple:

Combobox1.RowSource = ""  'Clear the list
Combobox1.Clear           'Clear the selected text
8
Hendry Halim

Vous pouvez utiliser la méthode ControlFormat:

ComboBox1.ControlFormat.RemoveAllItems
5
David

Meilleur moyen:

Combobox1.items.clear();
4
Mr_Hmp

Pour Access VBA, qui ne fournit pas de méthode .clear sur les listes déroulantes de formulaires utilisateur, cette solution fonctionne parfaitement pour moi:

   If cbxCombobox.ListCount > 0 Then
        For remloop = (cbxCombobox.ListCount - 1) To 0 Step -1
            cbxCombobox.RemoveItem (remloop)
        Next remloop
   End If
0
Tim Wray

Dans Access 2013, je viens de tester ceci:

While ComboBox1.ListCount > 0
    ComboBox1.RemoveItem 0
Wend

Il est intéressant de noter que si vous définissez la liste des éléments dans Propriétés, celle-ci n'est pas perdue lorsque vous quittez le mode Formulaire et revenez en mode Création.

0
Pat Harkin