Choix unique dans combobox multi colonnes

Résolu
pyrus2047 Messages postés 156 Statut Membre -  
pyrus2047 Messages postés 156 Statut Membre -
Bonjour,
Bonjour,
Dans une combobox multicolonnes
je souhaite pouvoir faire un choix en ligne et en colonnes
par exemple: je choisir 75009

Nom Ville CP
Dupont Paris 75008
Durand Boulogne 92100
Martin Paris 75009
Dupond Boulogne 92100
Bisson Paris 75005

merci d'avance

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Pour ce que tu veux faire une ListBox multicolonne serait plus indiqué.
    Voir ceci:

    https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G

    Je t'ai fait le code pour la Combox, il suffit simplement de changer le nom du control.
    Là tu as les 2 manières, tu verras qu'avec la ListBox la visualisation est meilleure:

    Option Explicit
    'http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
    Private Sub CommandButton1_Click()
    If ComboBox1.ListIndex = -1 Then Exit Sub
    'If ListBox1.ListIndex = -1 Then Exit Sub
    MsgBox ComboBox1.List(ComboBox1.ListIndex, 2)
    'MsgBox ListBox1.List(ListBox1.ListIndex, 2)
    End Sub
    Private Sub UserForm_Initialize()
        Dim i As Byte, j As Byte
        
        'Définit le nombre de colonnes dans la ListBox
        ListBox1.ColumnCount = 4
        
        '---
        'Définit la largeur des colonnes d'une ListBox:
        'Par défaut, la largeur des colonnes est de 72 points
        '(72 points = 1 pouce)
        ListBox1.ColumnWidths = "50;50;50;50"
            '---
            'Il est aussi possible de définir la dimension des colonnes en centimètres
            'ListBox1.ColumnWidths = "2 cm; 1,5 cm ......"
            '---
        '---
        
        For i = 1 To 20
            'Ajoute une ligne et insère une donnée dans la colonne de gauche
            ListBox1.AddItem "Ligne" & i
            
            'Ajoute des données dans les colonnes de droite
            For j = 1 To 7
            ListBox1.List(ListBox1.ListCount - 1, j) = i & j
            Next j
            
        Next i
        
        '*************************************************************************
        
        '*****************************************************************************
        'Définit le nombre de colonnes dans la  ComboBox
        ComboBox1.ColumnCount = 4
        
        '---
        'Définit la largeur des colonnes d'une  ComboBox:
        'Par défaut, la largeur des colonnes est de 72 points
        '(72 points = 1 pouce)
        ComboBox1.ColumnWidths = "50;50;50;50"
            '---
            'Il est aussi possible de définir la dimension des colonnes en centimètres
            'ListBox1.ColumnWidths = "2 cm; 1,5 cm ......"
            '---
        '---
        
        For i = 1 To 20
            'Ajoute une ligne et insère une donnée dans la colonne de gauche
            ComboBox1.AddItem "Ligne" & i
            
            'Ajoute des données dans les colonnes de droite
            For j = 1 To 7
            ComboBox1.List(ComboBox1.ListCount - 1, j) = i & j
            Next j
            
        Next i
    End Sub
    


    0
    1. pyrus2047 Messages postés 156 Statut Membre
       
      Re merci
      ca ne fonctionne pas la combobox ne ce charge pas
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Quel est ton code pour charger la ComboBox?
    0
    1. pyrus2047 Messages postés 156 Statut Membre
       
      justement j' en ai pas
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      As-tu essayé le code que je t'ai donné pour voir la visualisation?
      Mettre une ListBox, une ComboBox et un Commandbutton dans une UserForm.
      Ensuite on verra ce que tu auras choisi!
      0
    3. pyrus2047 Messages postés 156 Statut Membre
       
      Bonjour
      cette partie ne fonctionne pas j'ai message
      impossible de définir la propriété columnwidths. le type ne corresspond pas

      Private Sub UserForm_Initialize()
      Dim i As Byte, j As Byte

      'Définit le nombre de colonnes dans la ListBox
      ListBox1.ColumnCount = 4

      '---
      'Définit la largeur des colonnes d'une ListBox:
      'Par défaut, la largeur des colonnes est de 72 points
      '(72 points = 1 pouce)
      ListBox1.ColumnWidths = "50;50;50;50"
      '---
      'Il est aussi possible de définir la dimension des colonnes en centimètres
      'ListBox1.ColumnWidths = "2 cm; 1,5 cm ......"
      '---
      '---

      For i = 1 To 20
      'Ajoute une ligne et insère une donnée dans la colonne de gauche
      ListBox1.AddItem "Ligne" & i

      'Ajoute des données dans les colonnes de droite
      For j = 1 To 7
      ListBox1.List(ListBox1.ListCount - 1, j) = i & j
      Next j

      Next i

      '*************************************************************************

      '*****************************************************************************
      'Définit le nombre de colonnes dans la ComboBox
      ComboBox1.ColumnCount = 4

      '---
      'Définit la largeur des colonnes d'une ComboBox:
      'Par défaut, la largeur des colonnes est de 72 points
      '(72 points = 1 pouce)
      ComboBox1.ColumnWidths = "50;50;50;50"
      '---
      'Il est aussi possible de définir la dimension des colonnes en centimètres
      'ListBox1.ColumnWidths = "2 cm; 1,5 cm ......"
      '---
      '---

      For i = 1 To 20
      'Ajoute une ligne et insère une donnée dans la colonne de gauche
      ComboBox1.AddItem "Ligne" & i

      'Ajoute des données dans les colonnes de droite
      For j = 1 To 7
      ComboBox1.List(ComboBox1.ListCount - 1, j) = i & j
      Next j

      Next i
      End Sub
      0
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      C'est étonnant je viens d'essayer avec une UserForm dans lequel j'ai placé une ListBox et une Combobox
      Je viens de copier le code que tu viens de donner et cela fonctionne!!!!!!!!!!

      Regarde bien si tu fais tout correctement
      0
    5. pyrus2047 Messages postés 156 Statut Membre
       
      Re ca ne veux pas
      j'ai une autre question qui pourrais résoudre mon problème
      es t'il possible pour ma combobox mètre dans la propriété Textcolumn plusieurs colonnes
      merci
      0