Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Lier ComboBox à une ListBox

  • Initiateur de la discussion Initiateur de la discussion Steeve
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Steeve

Guest
Bonjour,

J'ai sur un onglet "Liste agent" une liste d'agent avec différentes informations et sur un autre onglet "Accueil", un bouton avec le quel je voudrai supprimer un agent.
Lorsque je clique sur ce bouton "Supprimer", j'ai créé une petite fenêtre avec une ComboBox et une ListBox.
J'aimerai que dans cette ComboBox s'affiche tout les agents présents dans l'onglet "Liste agent" en sachant que cette liste peut se modifier. Et donc lorsque je sélectionne un agent, j'aimerai que dans la ListBox s'affiche les différentes informations concernant cet agent ..

J'ai cherché un peu partout sur les forums mais je n'ai pas trouvé ..
Merci d'avance !
Steeve
 

Pièces jointes

Re : Lier ComboBox à une ListBox

Bonjour.
Le principe c'est de renseigner la propriété List du ComboBox, notamment en y affectant directement un tableau de Variant tel qu'en constitue la propriété Value d'un plage. De cette façon sa propriété ListIndex contiendra le numéro-1 de la ligne dont on doit garnir la ListBox lorsqu'on sélectionnera un agent.
À +
 
Re : Lier ComboBox à une ListBox

Bonjour Dranreb,
Merci pour l'attention que tu portes à mon problème. Je ne suis pas un As de la programmation, j'ai quelques notions que j'ai acquis au fil du temps et là j'avoue que je n'ai pas très bien compris ce que tu voulais me dire .. Si tu pouvais me donner un morceau de code se serait déjà plus explicite ..
Je suis preneur si d'autres personnes à une solution pour moi 🙂
Merci d'avance !
Steeve
 
Re : Lier ComboBox à une ListBox

Il y a une autre manière d'alimenter la ComboBox: c'est de lui affecter le nom de la plage à sa propriété RowSource dans la fenêtre de propriétés. Ça implique de nommer les plages, ce qui est une excellente chose.
Moi je ne sais pas ce que vous voulez mettre ni saisir dans la ComboBox, vous ne l'avez jamais dit. Plusieurs colonnes sont possibles. Voir propriétés ColumnsCount, TextColumn, BoundColumn, et ColumnWidths.
À +
 
Dernière édition:
Re : Lier ComboBox à une ListBox

Sous VBA la touche F4 permet d'afficher la fenêtre de propriétés. Clique sur ta ComboBox et regarde ce qu'il faut y mettre. Touche F1 pour avoir de l'aide sur les différentes propriétés. Sous Excel 2003: Insersion, Noms, Définir pour donner des noms aux plages, ce qui permet ensuite des formules plus claires et des macros indépendantes de l'emplacement des plages de données qu'elles traitent.
 
Re : Lier ComboBox à une ListBox

Oh mais c'est parfait ça, je n'avais pas compris que tu me parlais de la fenêtre propriété de la ComboBox pourtant tu avais été très clair. Donc ça fonctionne parfaitement pour l'affectation de valeur dans la ComboBox, je te remercie !
Une dernière question si tu as encore du temps à m'accorder, comment je pourrais afficher le descriptif de l'agent selectionné ?
Merci d'avance !
 
Re : Lier ComboBox à une ListBox

Tu vas finir par m'envoyer bouler je pense mais j'ai testé plusieurs codes différents mais ça ne fonctionne pas. Ça me donne une erreur de syntaxe ..

Voici ce que j'ai testé (je suis débutant en vba donc on ne se moque pas ! 🙂 )

Private Sub ComboBox_Camion_Change()

ComboBox_Camion.ListIndex + 1 (Agent)

End Sub

'ComboBox_Camion = au nom de ma ComboBox
'Agent c'est la plage défini dans le gestionnaire des noms
' et le nom de ma ListBox où doit s'afficher mes données c'est ListBox_Descriptif

Merci d'avance !
 
Re : Lier ComboBox à une ListBox

je suis débutant en vba donc on ne se moque pas !
Loin de moi cette idée.
Essayez ça:
VB:
Dim L as Long
L = ComboBox_Camion.ListIndex + 1
ListBox_Descriptif.Clear
If L > 0 Then
   ListBox_Descriptif.AddItem Feuil1.[Agent].Rows(L).Value
   ListBox_Descriptif.AddItem Feuil1.[De].Rows(L).Value
   ListBox_Descriptif.AddItem Feuil1.[La].Rows(L).Value
   ListBox_Descriptif.AddItem Feuil1.[Circulation].Rows(L).Value
   End If
Avec Feuil1 le CodeName de la feuille contenant les plage Agent, De, La, Circulation.
À +
 
Re : Lier ComboBox à une ListBox

Merci pour la peine que tu te donnes, c'est très gentil.
Donc j'ai modifié à ma sauce et je l'ai mis donc dans mon fichier et ça me donne une erreur d’exécution 424 ..
Je te joins le fichier, si tu as 5 minutes cette après-midi à me consacrer ce serait sympa.

J'ai absolument besoin de cette commande pour mon projet ..
Merci d'avance ! 🙂
 

Pièces jointes

Re : Lier ComboBox à une ListBox

Bonjour,

Une autre exemple : 2 colonnes pour la liste déroulante, la seconde servant à gérer les numéros de lignes (information utilisée pour la suppression de la ligne).

Je n'ai pas jugé utile de renommer les contrôles (si peu nombreux que les risques de confusion sont réduits).
 

Pièces jointes

Re : Lier ComboBox à une ListBox

Regarde dans l'explorateur de projet cette fois, le CodeName de la feuille Excel "Liste agent" c'est Feuil39 et non pas Liste_agent.
Remarque: ça peut se changer dans la fenêtre de propriétés à la première ligne, en face de "(Name)".
FLstAgt me semblerait pas mal. En tout cas c'est le nom que je donnerais moi, mais je suis peut être tout seul dans ma tête...
En attendant, pour enrichir la chose, je propose :
VB:
Private Sub ComboBox_Agent_Change()
Dim L As Long, VL() As Variant, C As Long
L = ComboBox_Agent.ListIndex + 1
ListBox_Descriptif.Clear
If L > 0 Then
   VL = Feuil39.[Agent].Rows(L).EntireRow.Value
   For C = 1 To 9
      ListBox_Descriptif.AddItem VL(1, C)
      Next C
   End If
End Sub

Attention: j'ai eu des échos par XLDnautes selon lesquels la propriété RowSource s’accommoderait mal de plages dynamiques.
Si ça venait à se confirmer, ne plus la renseigner mais ajouter cette procédure :
VB:
Private Sub UserForm_Initialize()
ComboBox_Agent.List = Feuil39.[Agent].Value
End Sub
Personnellement je n'ai jamais pu rencontrer le problème car dans de telles applications mes plages nommées sont fixes, et je veille par programmation à ce qu'elles couvrent toujours exactement la partie effectivement utilisée.
À +
 
Re : Lier ComboBox à une ListBox

Bonjour Dranreb et Fo_rum,
J'ai fait un mixe de vos propositions et cela marche parfaitement, j'ai ce que je voulais ! 🙂
Je vous remercie énormément pour votre aide, c'est très gentil.
Bonne journée à vous.
A bientôt, Steeve.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
418
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…