Microsoft 365 Remplir une ComboBox à 3 colonnes avec les données d'un TS

  • Initiateur de la discussion Initiateur de la discussion NONO14
  • 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 !

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,
Voilà, j'ai une Combo ("Cbx_Salarié") dans un formulaire (UfGestTemps) et je souhaiterai l'alimenter avec les 3 premières colonnes d'un TS ("t_Noms") qui se trouve dans la feuille "Liste_agents". J'ai réussi à mettre la 1ère colonne, mais je n'arrive pas à insérer les 2 autres. La colonne 1 est le code de l'agent, la colonne 2 le NOM et la colonne 3 le Prénom.
Pouvez-vous m'aider s'il vous plaît ?
Voici le début du code et mon fichier
VB:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False

'Chargement des différents contrôles du formulaire
'On vide la ComboBox Cbx_Salarié
    Me.Cbx_Salarié.Clear

'On la remplie à nouveau avec le TS "t_Noms" de la feuille "Liste_agents"
    With Sheets("Liste_agents").ListObjects("t_Noms")
        For I = 1 To .ListRows.Count
            Me.Cbx_Salarié.AddItem .DataBodyRange(I, 1)
        Next I
    End With
 

Pièces jointes

Solution
Hello
@ChTi160 : 7 colonnes?? pourquoi faire??

tout ca me parait bien compliqué pour pas grand chose
un combo avec UNE colonne (utilisation originelle d'un combo==> sinon, on utilise un listbox)

VB:
'On vide la ComboBox Cbx_Salarié
    Me.Cbx_Salarié.Clear
    'On la remplie à nouveau avec le TS "t_Noms" de la feuille "Liste_agents"
    With Me.Cbx_Salarié
        .ColumnCount = 1
        For I = 1 To Tbl.ListRows.Count
            .AddItem Tbl.DataBodyRange(I, 2).Value & " " & Tbl.DataBodyRange(I, 3).Value & " " & Tbl.DataBodyRange(I, 1).Value 'on concatène les colonnes 
        Next I
    End With
Bonjour à tous,
Voili voilou un exemple de ComboBox multi-colonnes, pour lesquelles non seulement on affiche toutes les colonnes (UserForm seulement, pas encore Active X) mais où en plus on ajoute des titres en appelant simplement des fonctions qui font tout le boulot.
 

Pièces jointes

Re
Ce n'est qu'une interprétation !
dans laquelle j'ai l'indication de "Monsieur" ou "Madame" par exemple
il suffit de modifier la procédure pour n'avoir que 4 Lol
un peu comme ça ! Lol
VB:
  With .Cbx_Salarié
       .ColumnCount = 4
       .ColumnWidths = "225;0;0;0" 'Une Colonne Visible              
               For Lgn = 1 To UBound(TabTemp, 1)
                    .AddItem TabTemp(Lgn, 2) & " " & TabTemp(Lgn, 3) & " " & TabTemp(Lgn, 4) 'données affichées concaténées "Code agent","Nom",Prénom"
                    .List(.ListCount - 1, 1) = TabTemp(Lgn, 1) 'Code agent
                    .List(.ListCount - 1, 2) = TabTemp(Lgn, 2) 'Nom
                    .List(.ListCount - 1, 3) = TabTemp(Lgn, 3) 'Prénom       
                    .List(.ListCount - 1, 4) = Lgn                     'Ligne Source
               Next Lgn
            End With
jean marie
 
Bonjour,

Histoire de parasiter ce sujet, je reposte un fichier qui inclut cette fois l'affichage des toutes les colonnes en ComboBox Active X. Dans ce cas, je n'ai pas réussi à afficher les Labels en premier plan sur le texte de la ComboBox sans sortir de la ComboBox malgré toutes sortes d'essais pendant des heures.
 

Pièces jointes

- 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

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
8
Affichages
895
Retour