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

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

NONO14

XLDnaute Occasionnel
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

  • GestPersonnnel (3).xlsm
    492.3 KB · Affichages: 9
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

Dudu2

XLDnaute Barbatruc
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

  • Titres des colonnes ListBox et ComboBox avec des Labels et ComboBox en affichage multicolonnes.xlsm
    67.1 KB · Affichages: 3

ChTi160

XLDnaute Barbatruc
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
 

Dudu2

XLDnaute Barbatruc
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

  • Titres des colonnes ListBox & ComboBox avec des Labels et ComboBox Multi-Colonnes UserForm & ...xlsm
    209.3 KB · Affichages: 1

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…