Liste déroulante dans userforma basé sur 2 colonnes

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

anim

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterai savoir si vous connaissez un bout de code (vba) qui me permette de mettre dans une liste déroulante (dans userform) des informations venant de deux colonnes situéent cote à cote !!!
Je sais faire pour une seul colonne mais pour deux alors là, je donne ma langue au chat.

Merci d'avance d'avoir pris du temps même si ce n'est que lire mon questionnement 🙂
 
Re : Liste déroulante dans userforma basé sur 2 colonnes

Bonsoir.
Une information assez récente pour moi m'indique que ceci fait le même travail:
VB:
With Sheets("Data")
    .Me.ComboBox1.List = .Range("A2:B" & .Range("A2").End(xlDown).Row).Value
   End With
Je ne sais pas moi, je n'ai quand même pas eu des tonnes de listes à faire et lorsque c'était à des plages que j'avais à les faire correspondre je spécifiais toujours leur noms en RowSource dans la fenêtre de propriétés.
Cordialement.
 
Dernière édition:
Re : Liste déroulante dans userforma basé sur 2 colonnes

Bonsoir à tous,

Via le menu > Insertion > Nom >Définir, tu accèdes à la boite de dialogue "Définir un nom"

Tu nommes ta liste : MaListe par exemple
Dans la zone de texte : Fait référence à : tu saisis ceci
=DECALER(MaBase!$A$2;;;NBVAL(MaBase!$A$2:$A$20);2)

Puis dans l'événement Initialize de ton Userform :

VB:
Private Sub UserForm_Initialize()
   Me.ListBox1.ColumnCount = 2
   Me.ListBox1.List = [MaListe].Value
End Sub

MaBase étant le nom de la feuille de calcul où figurent tes données à partir de A2:B2

Klin89
 
Dernière édition:
Re : Liste déroulante dans userforma basé sur 2 colonnes

@carcharodon-carcharias,
Merci ton code c' est super mais le problème c'est que les informations qui sont intégrés dans la liste déroulante (userform) doivent être cote à cote et non ligne à ligne.
De mon coté j'ai mis le cote suivant mais le souci c'est que les information dans la liste déroulant ne sont pas aligné puisque le nombre de caractère ne sont pas tous les mêmes !!:

Private Sub UserForm_Initialize()

Dim nbligne As Integer

With Sheets("Etat_Stock")
For nbligne = 3 To .Range("D65536").End(xlUp).Row
Article_Code_Interne.AddItem .Range("D" & nbligne) & .Range("E" & nbligne)
Next nbligne
End With

End Sub

Merci !
 
Re : Liste déroulante dans userforma basé sur 2 colonnes

C'est exactement ça!!! Je te remerci beaucoup ..... je le pense vraiment 🙂"

C'est vrai que ça marche mais j'aimerai bien comprendre le code parce que là je suis à l'ouest !
la solution est la finalité mais comprendre me permettrai d'en aider d'autre si je rencontre un pb similaire merci !
 
Re : Liste déroulante dans userforma basé sur 2 colonnes

Bonsoir à tous,

En partant de la proposition de CC post #5#

Dans un style plus ou moins académique :
Tu utilises une Combobox, tu te sers de la fonction Space et tu utilises une police à chasse fixe ====> Courier New

Dans l'événement Initialize de ton UserForm :

VB:
Private Sub UserForm_Initialize()
Dim I As Integer, J As Integer, Espace As Byte
With Sheets("Etat_Stock")
  For J = 3 To .Range("D3").End(xlDown).Row 'de la troisième ligne à la dernière non vide_
    Espace = 20 - Len(.Cells(J, 4).Value)
    If .Cells(J, 4) <> "" Then
      Me.Article_Code_Interne.AddItem (.Cells(J, 4).Value) & Space(Espace) & (.Cells(J, 5).Value)
    End If
  Next J
End With
End Sub
A tester
Normalement tes données se retrouveront alignées quelle que soit la longueur de leurs chaines respectives.

Klin89
 
Dernière édition:
Re : Liste déroulante dans userforma basé sur 2 colonnes

Bonsoir à tous

Slt Staple1600,

Je connais pas klin89 lol et tu entends quoi par klin89 était caché derrière Dranreb9 ... ???
😀

Je voulais juste signifier qu'il semblait que tu n'avais pas vue les propositions de klin89 et de Dranreb parce que tu ne les saluais pas ni n'évoquait leurs réponses dans ton message du 13/08 de 12h08.

C'était tout ce qu'il y avait à comprendre.
 
Re : Liste déroulante dans userforma basé sur 2 colonnes

Bonjour.
Pas sommeil...
Pour refixer les idées, parce que là je ne comprends plus où la discution s'égare, la procédure de CC, réécrite un peu plus courte:
VB:
Private Sub CommandButton1_Click()
ListBox1.List = Me.Range("A1:B" & Me.[A65536].End(xlUp).Row).Value
End Sub
Et les deux dernières lignes de l'aide sur la propriété List:
Utilisez List pour copier la totalité d'un tableau bidimensionnel de valeurs sur un contrôle. Utilisez AddItem pour charger un tableau unidimensionnel ou un élément particulier.

P.S.: Rappel: dans les propriétés de la ListBox1, ColumnCount = 2, évidemment.
À+
 
Dernière édition:
Dernière édition:
Re : Liste déroulante dans userforma basé sur 2 colonnes

Non, excuse moi Staple, c'est un mal entendu, il n'y a aucun égarement dans tes propositions.
C'est la dernière proposition de klin89 que je ne comprend pas bien.
Sa première était en effet plus courte si on ne tient pas compte par ailleurs du nom avec sa référence.
Mais pourquoi embraye-t-il ensuite sur l'ébauche du demandeur anim qui visiblement partait à ne renseigner qu'une colonne en essayant de renseigner les 2 avec un AddItem, ce qui ne va pas ?
Il y a aussi eu la proposition de CC qui n'était pas plus courte non plus... C'est un peu à partir de là que je trouve que ça s'égarait alors j'ai voulu un peu comme toi revenir à ce qui précédait.
Cordialement.
 
Dernière édition:
- 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
9
Affichages
644
Retour