Valeurs multiples dans listbox !!

Herlay

XLDnaute Junior
Bonjour le Forum,

Je ne sait pas si l'intitulé de la discussion est judicieux, mais voilà mon soucis : J'ai une Combobox qui reprend une liste de données sans doublons (nom de clients), cette Combobox est associée à une autre qui contient le numéro de client., jusque là aucun problème.
Mais la liste des noms est prise sur une seule colonne, alors qu'une autre colonnes "nom2" apporte un complement d'informations.
Le code que j'utilise pour la création de la Collection est :

# For Each cel In Sheets("Données").Range("B2:b" & Sheets("Données").Range("b65536").End(xlUp).Row)
On Error Resume Next
CollecNomCli.Add cel.Value, CStr(cel.Value)
Next cel 'prochaine celluole de la boucle

For x = 1 To CollecNomCli.Count
CB_nomcli.AddItem CollecNomCli(x)
Next x 'prochain membre de la collection #

Donc des clients qui ont le meme début de nom (1ere colonne) se font chinter dans la liste.

Comment puis-je inclure dans la création de cette liste la 1ere et la 2ème colonne ??
Merci d'avance .

Herlay
 

Excel-lent

XLDnaute Barbatruc
Re : Valeurs multiples dans listbox !!

Bonsoir Herlay, le fil,

Sans ton fichier, difficile de t'aider précisement!

Mais comme tu semble maîtriser le VBA et les UserForm, si tu regarde cette discussion

Du moins plus précisément la pièce jointe.

A mon avis tu seras la comprendre et l'adapter à ton cas de figure.

Il s'agit d'exactement la même chose que toi (semble-t-il) sauf qu'au lieu d'avoir NOM1 et NOM2 il y a NOM et PRENOM.

Deux solutions y figurent : soit une zone pour chaque donnée (comme tu semble vouloir le faire), ou une seule dans laquelle les deux sont rassemblé!

Bonne soirée
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Valeurs multiples dans listbox !!

Bonjour le fil, bonjouir le forum,

Dans tous les coups décidement ce Jacques Boisgontier... J'ai essayé de mettre en pratique un de ces incroyables plans. Je galère mais je pense que ça devrait pouvoir s'adapter à ton cas. Voici son code revu pour ton cas : (je pense que la colonne Nom2 se trouve en C sinon tu adapteras l'Offset...)

Code:
Sub Macro1()
Dim sd
Dim a
Set sd = CreateObject("Scripting.dictionary")
For Each cel In Sheets("Données").Range("B2:B" & Sheets("Données").Range("B65536").End(xlUp).Row)
    If Not sd.exists(cel.Offset(0, 1).Value) Then sd.Add cel.Offset(0, 1).Value, cel.Value
Next cel
a = sd.items
UserForm1.CB_nomcli.List = a
End Sub
 

Herlay

XLDnaute Junior
Re : Valeurs multiples dans listbox !!

Bonjour le Forum,
Merci à Excel-lent et Robert pour votre aide,
Dans le fil proposé par Excel-lent (très intéressant !!) çà marche pas trop mal, mais çà ne supprime plus aucun doublon (et dans mon cas, chaque ligne est une ligne de facture).

j'ai tordu le code de Robert dans tous les sens, mais je n'ai réussi qu'à avoir dans ma listbox les noms sur 2 lignes et une erreur lors de la recherche de facture.

J'essaye d'envoyer un fichier, mais avec toute la volonté du monde il dépasse 70 Ko une fois compressé.

Pour répondre à Excel-lent, je te remercie pour les compliments sur "ma maitrîse", mais je ne suis qu'un débutant et utilisateur occasionnel, je prend des codes par ci par là, souvent sans comprendre se qu'ils font exactement

Je continue ma quête !!

Merci
Herlay
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Valeurs multiples dans listbox !!

Bonsoir le fil, bonsoir le forum,

Herlay ce que je te propose c'est de nous envoyer non pas ton fichier d'origine mais un fichier basé sur celui-ci. Juste quelques données (non confidentielles) et la même structure (non des onglets, Userform, etc...)

Comme ça on pourra te poroposer une solution qui sera ensuite simple à transposer à ton vrai classeur.
 

JPP57

XLDnaute Nouveau
Re : Valeurs multiples dans listbox !!

Bonsoir le fil, Herlay, Robert et Excel-lent,

Une petite question peut-être idiote, mais pourquoi ne pas créer la 2ème liste en même temps que la première, quand tu ajoutes une valeur à la première qui je pense se trouve en A tu prend la valeur correspondante de B pour mettre dans la seconde.

Bonne soirée et a +
 

Excel-lent

XLDnaute Barbatruc
Re : Valeurs multiples dans listbox !!

Bonsoir le fil,

Pas la peine de laisser 140 lignes de factures ;)

Ni les onglets inutiles à la résolution de ton problème actuel!

Si malgré ça, tu n'arrives toujours pas à rentrer dans les clous, une fois le fichier compressé, met ton fichier sur un site spécialisé (par exemple c.joint)

Herlay à dit:
je prend des codes par ci par là, souvent sans comprendre se qu'ils font exactement

Tu peux, lorsque cela t'arrive, envoyer ton fichier sur le forum et demander aux spécialiste d'insérer les explications dans ton code ;)

Bonne soirée
 

Herlay

XLDnaute Junior
Re : Valeurs multiples dans listbox !!

Bonsoir le fil, bonsoir le Forum, Bonsoir Robert,

Le fichier joint est le concentré du problème rencontré.

Merci

Herlay
 

Pièces jointes

  • essaiClients.zip
    25.6 KB · Affichages: 39
  • essaiClients.zip
    25.6 KB · Affichages: 35
  • essaiClients.zip
    25.6 KB · Affichages: 39

JPP57

XLDnaute Nouveau
Re : Valeurs multiples dans listbox !!

Rebonsoir,

Ci-joint une proposition de modification.

A+
 

Pièces jointes

  • essaiClients.zip
    22.3 KB · Affichages: 55
  • essaiClients.zip
    22.3 KB · Affichages: 57
  • essaiClients.zip
    22.3 KB · Affichages: 57

Herlay

XLDnaute Junior
Re : Valeurs multiples dans listbox !!

Bonjour le Forum, bonjour le Fil,

Merci à tous pour votre participation,
La solution de JPP57 est pas mal du tout, je l'ai adaptée à mon fichier en rajoutant :
CollecNomCli.Add cel.Offset(0, 1).Value & " " & cel.Offset(0, 2).Value, CStr(cel.Value)
cela permet d'afficher les deux colonnes dans la listbox.
Par contre j'ai un message d'erreur de type "380 sur la propriété ListIndex".

J'ai réussi à diminuer le fichier complet (avec tous les onglets, et Codes qui peuvent être influencer par cette liste).


Merci d'avance.
Herlay
 

Pièces jointes

  • ESSAIclients.zip
    43.4 KB · Affichages: 61
  • ESSAIclients.zip
    43.4 KB · Affichages: 62
  • ESSAIclients.zip
    43.4 KB · Affichages: 58

Herlay

XLDnaute Junior
Re : Valeurs multiples dans listbox !!

Bonjour le Forum,

Finalement j'ai résolu mon problème, non pas en alimentant la listbox avec deux colonnes, mais avec la première après une boucle sur la colonne source (genre concatenation) :
Code:
Dim nbval As Long
  nbval = Application.WorksheetFunction.CountA(Données.Range("$b:$b"))
 For I = 1 To nbval
     val = Cells(I, 2)
    val2 = Cells(I, 3)        
    val = Trim(val)
     Cells(I, 2).Select
     ActiveCell.Formula = val & "    " & val2
Next I
le resultat est se que je voulais.
Merci à tous

Herlay
 

Discussions similaires

Réponses
2
Affichages
175

Statistiques des forums

Discussions
312 469
Messages
2 088 688
Membres
103 920
dernier inscrit
jean claude