Menu

Choix unique dans combobox multi colonnes [Résolu]

pyrus2047 66 Messages postés lundi 3 juillet 2017Date d'inscription 9 mai 2018 Dernière intervention - 5 févr. 2018 à 09:42 - Dernière réponse : pyrus2047 66 Messages postés lundi 3 juillet 2017Date d'inscription 9 mai 2018 Dernière intervention
- 6 févr. 2018 à 20:37
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


Afficher la suite 

Votre réponse

10 réponses

cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscription 19 mai 2018 Dernière intervention - Modifié par cs_Le Pivert le 5/02/2018 à 11:40
0
Utile
Bonjour,

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

http://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




pyrus2047 66 Messages postés lundi 3 juillet 2017Date d'inscription 9 mai 2018 Dernière intervention - 5 févr. 2018 à 13:27
Re merci
ca ne fonctionne pas la combobox ne ce charge pas
Commenter la réponse de cs_Le Pivert
cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscription 19 mai 2018 Dernière intervention - 5 févr. 2018 à 13:38
0
Utile
Quel est ton code pour charger la ComboBox?
pyrus2047 66 Messages postés lundi 3 juillet 2017Date d'inscription 9 mai 2018 Dernière intervention - 6 févr. 2018 à 10:17
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
cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscription 19 mai 2018 Dernière intervention - 6 févr. 2018 à 10:32
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
pyrus2047 66 Messages postés lundi 3 juillet 2017Date d'inscription 9 mai 2018 Dernière intervention - 6 févr. 2018 à 15:39
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
cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscription 19 mai 2018 Dernière intervention - 6 févr. 2018 à 17:10
Voilà un exemple:

https://www.cjoint.com/c/HBgqic6AcqQ

Quand tu ne sais pas tu sélectionnes le nom Textcolumn et tu appuies sur F1 tu auras la solution

Petite erreur de colonne, change dans les 2 sub:

If TextBox1 > 3 Then Exit Sub


en

If TextBox1 > 4 Then Exit Sub


@+ Le Pivert
pyrus2047 66 Messages postés lundi 3 juillet 2017Date d'inscription 9 mai 2018 Dernière intervention > cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscription 19 mai 2018 Dernière intervention - 6 févr. 2018 à 20:37
Re
merci a tous
Commenter la réponse de cs_Le Pivert