Combobox a 2 colonne

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

P

ptitepo

Guest
Bjr,
Je souhaite que ma combobox est 2 colonnes, qye chacune fasse référence a une colonne de ma feuille excel, Et ensuite récuperé la valeur de ma colonne 2 pour continué ma macro.
Pour l'instant je n'arrive qu'a mettre les valeurs des 2 colonnes de ma feuille sur une seul colonne de ma combobox? Comment puis-je faire, voici un bout de mon code faux. Merci

Code:
    ColumnCount = 1
    For Each c In Range("K1:K" & Sheets("Gestion").Range("K65536").End(xlUp).Row)
        If c.Value <> "" Then
            ComboBox_nom.AddItem c.Value
        End If
    Next c
    ColumnCount = 2
    For Each c In Range("L1:L" & Sheets("Gestion").Range("L65536").End(xlUp).Row)
        If c.Value <> "" Then
            ComboBox_nom.AddItem c.Value
        End If
    Next c
    Me.ComboBox_nom.BoundColumn = 2
 
Re : Combobox a 2 colonne

Bonjour ptitepo

regarde le code ci dessous, en supposant que tu récupères le même nombre de lignes colonne K et L :

Code:
ComboBox_nom.ColumnCount = 2
With Sheets("Feuil1")
    ComboBox_nom.List = .Range("K1:L" & .Range("K65536").End(xlUp).Row).Value
End With

bonne journée
@+
 
Re : Combobox a 2 colonne

Merci j'ai bien les 2colonnes remplis dans ma combobox, le problème c'est que j'ai des lignes blanche. Comment je peux faire pour les supprimer, Comment je peux adapté une condition avec ta formule?
 
Re : Combobox a 2 colonne

Re

essaye comme ci dessous, en supposant que pour une même ligne, les colonnes K et L soient vides :

Code:
Dim c As Range
ComboBox_nom.List.ColumnCount = 2
With Sheets("Feuil1")
    For Each c In .Range("K1:K" & .Range("K65536").End(xlUp).Row)
        If Not IsEmpty(c.Value) Then
            With ComboBox1
                .AddItem c.Value
                .List(.ListCount - 1, 1) = c.Offset(0, 1).Value
            End With
        End If
    Next c
End With

bon après midi
@+
 
Dernière édition:
Re : Combobox a 2 colonne

Oui mes colonnes K et L sont vides à la même lignes.
J'ai tester ton code mais il ne fonctionne pas, il me met 1 message d'erreur : "objet recquis"
J'ai modifier un peu le code, mais non, tjr le même message.
Code:
            With ComboBox_nom
                .AddItem c.Value
                .List(.ListCount - 1, 1) = c.Offset(0, 1).Value
            End With
 
Re : Combobox a 2 colonne

Bon alors je ne comprend pas, j'ai le même code, mes colonnes sont rempli correctement, sauf que j'ai toujours les lignes vides qui apparaisse.
Je vien de penser a une chose... pe être un peu tard, mes case sont vide, mais il y a des formules SI dedans, qui les rendent vide. Cela y est il pour quelque chose?
 
Re : Combobox a 2 colonne

Re

oui cela a son importance, modifies comme suit :

Code:
Dim c As Range
ComboBox1.ColumnCount = 2
With Sheets("Feuil1")
    For Each c In .Range("K1:K" & .Range("K65536").End(xlUp).Row)
        If c.Value <> "" Then
            With ComboBox1
                .AddItem c.Value
                .List(.ListCount - 1, 1) = c.Offset(0, 1).Value
            End With
        End If
    Next c
End With

@+
 
Re : Combobox a 2 colonne

J'avais deja essayer avec "If c.Value <> "" Then" et ca n'avais pas marcher, mais la c'est bon.
Du coup avant j'avais " Var = Me.ComboBox_nom.Value", qui me donner la valeur de la colonne L dans une variable nommé VAR, qui me permettais de continué mon programme. Or maintenant que j'ai changer tout mon code, comment je récupere la valeur de la colonne L qu'aura choisi l'utilisateur par la combobox?
 
Re : Combobox a 2 colonne

Otan pour moi j'ai rien dit ca marche 🙂 merci beaucoup de ton aide.
Si je peux me permettre une derniere question, je voudrais juste la signification de cette ligne, si ce n'est pas trop demander. J'essaye de comprendre le code.
Code:
.List(.ListCount - 1, 1) = c.Offset(0, 1).Value
 
Re : Combobox a 2 colonne

Bonjour Ptitepo

avec un peu de retard... désolé...

".list" est la liste des entrées de ta combo, entre parenthèses le numéro de la ligne et le numéro de la colonne.

Pour déterminer le numéro de la ligne, utilisation de la propriété "listcount", qui renvoie le nombre total de lignes de la combo, et le "-1" car numéro d'index de la 1ère ligne d'un combo est 0. Le 1 qui suit, représentant la 2ème colonne de ta combo (même principe d'indexation, 1er = 0) .

En espérant avoir été clair...

bonne journée
@+
 
- 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
15
Affichages
788
Réponses
8
Affichages
390
Retour