Listbox à choix multiple sur VBA

rprrlt

XLDnaute Nouveau
Bonjour,

J'ai un petit problème.

J'ai utilisé cette macro pour faire une listbox à choix multiple qui va mettre toutes les valeurs sélectionnées, séparées par des points-virule dans une cellule.
Néanmoins, j'aurais besoin de sélectionner ces mêmes données mais que les valeurs qui seront affichées dans la cellule spécifiée soient celles de la colonne à droite de celle contenant les données. En gros dans la colonne C, j'ai une liste de noms, qui vont apparaitre dans la zone de liste à choix multiples et dans la colonne D les adresses emails correspondantes. Je voudrais donc sélectionner les noms et avoir dans une cellule les adresses mails, séparées par des points-virgules.

Un exemple vaut mieux qu'un discours, vous trouverez ici Ce lien n'existe plus mon classeur. Pour l'instant, je sélectionne les noms et ce sont les noms qui s'affichent dans la cellule cible.

Une âme charitable pourra m'aider ?

Encore merci d'avance !!!

R.
 

Dull

XLDnaute Barbatruc
Re : Listbox à choix multiple sur VBA

Salut rprrlt, et Bienvenue, Cher Pierre:), le Forum

Juste pour saluer PierreJean :) et lui même étant déconnecté je te joint son Fichier décompressé. Sur Ci-Joint.com ... les fichiers n'y sont consultables seulement pendant 15 Jours...

Bonne Journée
 

Pièces jointes

  • listboxchoixmultiple.xls
    61.5 KB · Affichages: 1 296
  • listboxchoixmultiple.xls
    61.5 KB · Affichages: 1 415
  • listboxchoixmultiple.xls
    61.5 KB · Affichages: 1 489
Dernière édition:

rprrlt

XLDnaute Nouveau
Re : Listbox à choix multiple sur VBA

Bonjour Pierrejean, bonjour Dull,

Merci beaucoup pour votre aide et votre réactivité.
Néanmoins, j'ai une léger souci, j'ai un message d'erreur overflow lorsque je vais au-delà des 255 valeurs, donc au niveau de la ligne 256.
Comment pourrions-nous résoudre ce problème ?

Encore merci pour tout !!!

Bonne journée,

R.
 

La braise

XLDnaute Occasionnel
Re : Listbox à choix multiple sur VBA

Bonjour pierrejean , le fil,

Pierrejean, je me permets de te poser une question sur ton code.

Dans l'UF, dans Private Sub UserForm_Initialize()
après avoir rempli la listbox avec les valeurs souhaitées (boucle additem), tu indiques un code que je ne comprends pas :(

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i

Peux-tu si tu as 5 minutes l'expliquer ?

D'avance merci.
 

Pierrot93

XLDnaute Barbatruc
Re : Listbox à choix multiple sur VBA

Bonjour,

Bonjour pierrejean , le fil,

Pierrejean, je me permets de te poser une question sur ton code.

Dans l'UF, dans Private Sub UserForm_Initialize()
après avoir rempli la listbox avec les valeurs souhaitées (boucle additem), tu indiques un code que je ne comprends pas :(

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i

Peux-tu si tu as 5 minutes l'expliquer ?

D'avance merci.

en l'absence de PierreJean:) que salue, à priori cette boucle permet de désélectionner tous les items de la listbox...

bonne journée
@+
 

La braise

XLDnaute Occasionnel
Re : Listbox à choix multiple sur VBA

merci pour ta réponse.
Je vois bien que le code déselectionne les items séletionnés!!!

la question est pourquoi ?car la ligne de code d'avant load les items dans la listbox et donc aucun n'est matériellement sélectionné.
d'où ma question pourquoi les désélectionner???

merci d'avance.
 

pierrejean

XLDnaute Barbatruc
Re : Listbox à choix multiple sur VBA

Re

Salut Pierrot :) :)

Le code est en fait generique et peut eventuellement etre utilisé par un autre code intervenant alors que l'userform est toujours activé

De même on peut, si ce n'est jamais le cas , supprimer

ListBox1.Clear
 

fmaurice54

XLDnaute Nouveau

Si...

XLDnaute Barbatruc
Re : Listbox à choix multiple sur VBA

salut

S’il s’agit simplement de recopier des adresses ailleurs (cellule sélectionnée hors de la plage), tu peux avoir 2 macros très simples
VB:
Private Sub UserForm_Initialize()
  ListBox1.List = [T].Value 'Listbox à 2 colonnes
End Sub
Private Sub CommandButton1_Click()
   Dim n As Long, L As Long
   For n = 0 To ListBox1.ListCount - 1
     If ListBox1.Selected(n) Then ActiveCell(1 + L, 1) = ListBox1.List(n, 1): L = L + 1
   Next
  Unload Me
End Sub
 

Pièces jointes

  • listboxchoixmultiple.xlsm
    24.4 KB · Affichages: 157
  • listboxchoixmultiple.xlsm
    24.4 KB · Affichages: 161

Discussions similaires

Réponses
15
Affichages
556
Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 198
Messages
2 086 124
Membres
103 126
dernier inscrit
Vuagno27