Affichage du contenu de la liste déroulante

Salut le forum,

je m'excuse pour mon trop de questions.

A chaque fois que je crée une liste déroulante, à la sortie, le contenu ne s'affiche pas automatiquement.

Il faut que je tape quelque chose et que je la supprime pour que le contenu de la liste s'affiche.

Comment dois-je procéder pour que le contenu s'affiche dés que je clique sur la flèche?

Merci

Bonjour,

tes demandes ne sont pas très claires,

S'agit-il de listes venant de Validation des données ?

ou d'un ComboBox sur un UserForm ?

Envoie un fichier exemple

Amicalement

Pierrot

Bonjour Cappe Pierre,

j'ai compté bien m'epliquer

C'est le même problème pour les deux cas.

Alors envoies ton fichier

Pierrot

Bonjour Cappe Pierre ,

Le voila ci-joint.

J'y ai figuré les deux cas.

Merci

43class.xlsm (21.16 Ko)

Bonjour, Mskander

A Tester et a appliquer sur ton,fichier

Amicalement

Pierrot

Merci Mr Pierre,

Mais ça n'a pas marché

Même avec votre code, quand je clique sur le comboBox les valeurs ne s'affichent pas automatiquement.

Il faut que je tape quelque chose pour qu'ils apparaissent.

As-tu testé sur le fichier que je t'ai envoyé ?

chez moi tout marche bien

sinon, envoies ton fichier

Pierrot

Bonjour à tous,

L'événement (Change) que tu as choisi pour remplir ta Combobox se déclenche quand?

Lors de la saisie d'une valeur dans ta combobox.

Fais le test, chez toi, avec le fichier transmis plus tôt, tu verras que cela fonctionne.

Test :

1- efface le 1 présent dans la combobox,

2- saisi n'importe quoi, par exemple : A,

3- clic sur la flèche d'ouverture

=> ta combobox est bien remplie...

Quel événement conviendrait mieux?

1- soit l'événement de ta combobox DropButtonClick

Private Sub ComboBox1_DropButtonClick()
ComboBox1.ColumnCount = 1
ComboBox1.Clear
Dim I As Long
For I = 1 To 12
    ComboBox1.AddItem Sheets("Liste").Range("A" & I).Value
Next I
End Sub

2- Soit un événement de ta feuille, par exemple, si tu veux que ta Combobox se remplisse à chaque changement de valeur dans la cellule A1 de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
   ComboBox1.ColumnCount = 1
    ComboBox1.Clear
    Dim I As Long
    For I = 1 To 12
        ComboBox1.AddItem Sheets("Liste").Range("A" & I).Value
    Next I
End If
End Sub

3- soit l'événement de ton classeur : SheetActivate

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Feuil1" Then
    ComboBox1.Clear
    Dim I As Long
    For I = 1 To 12
        ComboBox1.AddItem Sheets("Liste").Range("A" & I).Value
    Next I
End If
End Sub

Après, il y a plus simple pour remplir une Combobox à partir de données saisies dans une feuille.

Le plus simple est de nommer le Range contenant tes données, grâce au gestionnaire de noms du classeur. Tu nommes, par exemple, la plage de cellules Liste!A1:A12 => donnees. L'appel de remplissage de ton combobox devient alors :

ComboBox1.List = Range("donnees")

A réviser donc, pour l'interro écrite de demain :

1- les événements,

2- les méthodes de remplissage d'une combobox

Mr Pierre, oui sur votre fichier tout marche très bien mais j'ai essayé cela sur le mien rien n'a changé.

Merci beaucoup pijaku je vais essayer et vous répondre

Merci à tous

De rien.

A++

ps : n'oublies pas :

Ça marche parfaitement pijaku

Je serai prêt à l'interrogation à tout moment hh

Merciii

Rechercher des sujets similaires à "affichage contenu liste deroulante"