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

XL 2013 [Résolu] ComboBox avec plusieurs colonnes - Aide pour identification

Citronflexe

XLDnaute Junior
Bonjour à tous,

Je m'excuse d'avance, je ne peux pas joindre le fichier en question...

Lors d'un précédent post, on m'a orienté vers l'utilisation d'une ComboBox.

Les faits sont les suivants :
  • J'ai un tableau avec des lignes identifiées par un numéro unique qui se trouve en colonne B
  • Dans un UserForm, j'ai deux ComboBox qui reprennent les valeurs des numéros en colonne B, afin de pouvoir sélectionner la ligne qui correspond à chacune des valeurs choisies
  • Cela marche parfaitement dans ces conditions
Le code pour chercher les valeurs dans la colonne B :
Code:
Private Sub UserForm_Initialize()
For n = 7 To Range("B" & Rows.Count).End(xlUp).Row
   Liste = Liste & Range("B" & n) & ";"
Next
Me.ComboBox1.List = Split(Left(Liste, Len(Liste) - 1), ";")
Me.ComboBox2.List = Split(Left(Liste, Len(Liste) - 1), ";")

Le code pour identifier la ligne qui va bien :
Code:
Set c = Range("B:B").Find(Me.ComboBox2, LookIn:=xlValues, lookat:=xlWhole)
e = c.Row

Set f = Range("B:B").Find(Me.ComboBox1, LookIn:=xlValues, lookat:=xlWhole)
g = f.Row

Et donc je récupère les variables e et g qui correspondent aux numéro de lignes qui me servent pour après.


J'aimerais maintenant ajouter dans l'affichage de la ComboBox les valeurs d'autres cellules, en plus, pour une meilleure compréhension.
Du coup ça j'y arrive, en remplaçant Liste dans le premier code :
Code:
Liste = Liste & Range("B" & n) & " / " & Range("D" & n) & " (" & Range("E" & n) & ")" & ";"
Ca marche, dans la ComboBox il y a bien les valeurs que je souhaite voir apparaître..

Mais après ca ne marche plus.. parce que dans le deuxième code, Set c = et Set f = vont chercher une valeur qui n'est plus le numéro de ligne unique identifié en B...


Comment adapter le code pour n'aller chercher que le numéro en colonne B, tout en gardant les infos des colonnes B, D et E dans la ComboBox ?

Désolé pour le pavé, et merci d'avance,


Cordialement,

Bruno
 

pierrejean

XLDnaute Barbatruc
Bonjour Bruno

A tester:
Set c = Range("B:B").Find(split(Me.ComboBox2,"/")(0), LookIn:=xlValues, lookat:=xlWhole)
e = c.Row

Set f = Range("B:B").Find(split(Me.ComboBox1,"/")(0), LookIn:=xlValues, lookat:=xlWhole)
g = f.Row

Tu comprendras que je ne garantisse pas ! vu que je n'ai pas plus le courage que toi pour créer un fichier exemple !!!!
 

Citronflexe

XLDnaute Junior
Bonjour @pierrejean ,

Merci de ta réponse

Ca m'a renvoyé le même message d'erreur qu'avec ce que j'avais essayé : "Erreur d'exécution 91: Variable objet ou variable de bloc With non définie"

Je me suis débrouillé pour faire un fichier exemple, en effet ce sera plus pratique pour tout le monde! J'espère n'avoir rien oublié dedans.



Bruno
 

Pièces jointes

  • Classeur1.xlsm
    32.4 KB · Affichages: 44

Citronflexe

XLDnaute Junior
Re,

J'ai bien regardé la formule que tu avais proposé, en fait c'était bien ça l'idée, simplement qu'il fallait split après " / " et non pas "/" ...
un espace qui chamboule tout !!
Merci beaucoup du coup !

Bruno
 

Discussions similaires

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