Liste selection multiple

calagan

XLDnaute Nouveau
Bonjour,
Je viens de m'inscrire sur ce forum pour essayer de trouver une solution à mon pb que je n'arrive pas à résoudre tout seul.
J'ai lu pas mal de posts sur ce sujet mais rien ne correspond à ce que je veux faire.
Je cherche simplement à créer une liste déroulante, associée à des cellules, mais permettant de faire des selections multiples et non pas une seule selection comme le propose "Données / Validation". Cette selection se ferait au moyen de "cases à cocher" et le résultat serait affiché dans la cellule en séparant les valeurs selectionnées par des ",".
Je voudrais aussi pouvoir revenir sur la cellule pour "déselectionner" une valeur.
Je joins une petit fichier qui vous permettra de mieux comprendre.
HELP SVP, aidez moi à répondre à mon besoin.:(
 

Pièces jointes

  • Liste selection multiple.xls
    20.5 KB · Affichages: 740
  • Liste selection multiple.xls
    20.5 KB · Affichages: 721
  • Liste selection multiple.xls
    20.5 KB · Affichages: 706

calagan

XLDnaute Nouveau
Re : Liste selection multiple

Bonjour,
Je viens de m'inscrire sur ce forum pour essayer de trouver une solution à mon pb que je n'arrive pas à résoudre tout seul.
J'ai lu pas mal de posts sur ce sujet mais rien ne correspond à ce que je veux faire.
Je cherche simplement à créer une liste déroulante, associée à des cellules, mais permettant de faire des selections multiples et non pas une seule selection comme le propose "Données / Validation". Cette selection se ferait au moyen de "cases à cocher" et le résultat serait affiché dans la cellule en séparant les valeurs selectionnées par des ",".
Je voudrais aussi pouvoir revenir sur la cellule pour "déselectionner" une valeur.
Je joins une petit fichier qui vous permettra de mieux comprendre.
HELP SVP, aidez moi à répondre à mon besoin.:(

Personne ne peut me venir en aide ? :(
 

SergiO

XLDnaute Accro
Re : Liste selection multiple

Bonjour Calagan,

Voici un essai.
Ouverture de la boite de dialogue par double clic sur la cellule à modifier.

@+
 

Pièces jointes

  • Liste selection multiple-1.zip
    13.9 KB · Affichages: 2 468
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste selection multiple

Voir PJ

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([B4:B8], Target) Is Nothing And Target.Count = 1 Then
If Target <> "" Then
Application.EnableEvents = False
p = InStr(Target.Offset(0, -1), Target.Value)
If p > 0 Then
Target.Offset(0, -1) = Left(Target.Offset(0, -1), p - 1) & _
Mid(Target.Offset(0, -1), p + Len(Target.Value) + 1)
Else
If Target.Offset(0, -1) <> "" Then
Target.Offset(0, -1) = Target.Offset(0, -1) & "," & Target.Value
Else
Target.Offset(0, -1) = Target.Value
End If
End If
Target.Value = Target.Offset(0, -1)
Application.EnableEvents = True
End If
End If
End Sub

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVChoixMult.xls

Avec formulaire


Choix multiples

Code:
Private Sub UserForm_Initialize()
  ListBox1.MultiSelect = fmMultiSelectMulti
  ListBox1.List = [phase].Value
  a = Split(ActiveCell, ",")
  If UBound(a) > 0 Then
    For i = 0 To Me.ListBox1.ListCount - 1
      If Not IsError(Application.Match(Me.ListBox1.List(i), a, 0)) Then Me.ListBox1.Selected(i) = True
    Next i
  End If
End Sub

Private Sub CommandButton1_Click()
  For i = 0 To Me.ListBox1.ListCount - 1
   If Me.ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.List(i) & ","
  Next i
  ActiveCell = Left(temp, Len(temp) - 1)
 Unload Me
End Sub

JB
 

Pièces jointes

  • ListeSelectionMultiple2.xls
    27.5 KB · Affichages: 983
  • DVChoixMultiListBoxForm.xls
    55 KB · Affichages: 540
  • DVChoixMultiListBoxForm.xls
    55 KB · Affichages: 575
  • DVChoixMultiListBoxForm.xls
    55 KB · Affichages: 603
Dernière édition:

calagan

XLDnaute Nouveau
Re : Liste selection multiple

Voir PJ

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([B4:B8], Target) Is Nothing And Target.Count = 1 Then
If Target <> "" Then
Application.EnableEvents = False
p = InStr(Target.Offset(0, -1), Target.Value)
If p > 0 Then
Target.Offset(0, -1) = Left(Target.Offset(0, -1), p - 1) & _
Mid(Target.Offset(0, -1), p + Len(Target.Value) + 1)
Else
If Target.Offset(0, -1) <> "" Then
Target.Offset(0, -1) = Target.Offset(0, -1) & "," & Target.Value
Else
Target.Offset(0, -1) = Target.Value
End If
End If
Target.Value = Target.Offset(0, -1)
Application.EnableEvents = True
End If
End If
End Sub

JB

Merci BOISGONTIER
Ce que tu m'as envoyé répond assez bien à ce que je veux faire. Dommage simplement que l'on ne vois pas ce qui est déjà selectionné lorsqu'on clique sur la liste. Sinon, il y aurait aussi des petites améliorations à apporter pour que les virgules ne se cumulent pas lorsqu'on "selectionne" puis "déselectionne" une même valeur.
 

@urelie

XLDnaute Junior
Re : Liste selection multiple

Bonsoir Sergio,

Comment faire pour adapter votre fichier à une autre fichier. J'ai réussi à ajouter des cases à cocher dans l'userfom1. j'ai ajouté un module et fais un copier coller du votre. J'ai fait un copié coller de votre VBA (au niveau de la feuille) dans mon VBA au niveau de ma feuille) et rien ne se passe. HELP PLEASE, je suis perdue
 

@urelie

XLDnaute Junior
Re : Liste selection multiple

Merci Sergio, mais j'ai réussi à bidouiller (eh oui quand on n'y connait rien on bidouille)
Ma question etait est ce que l'on peut en plus rajouter un texte libre dans la selection multiple. j'ai rajouté une selection Autres puis mis un champs de texte mais cela n'apparait pas.. et le je ne sais pas comment bidouiller. HELP
Merci d'avance
Cordialement
 

@urelie

XLDnaute Junior
Re : Liste selection multiple

Bonjour et Merci beaucoup. Hier j'ai rencontré un autre problème. j'ai voulu avoir plusieurs Userform sur une meme feuille, j'ai fait des copier coller au niveau du VBA (en modifiant userform1 par UF2 (pas si bete que cela tout de meme). et malheureusement cela ne fonctionne pas. J'ai fait plusieurs essais, de differentes facons mais rien à faire.. Si tu pouvais encore m'aider.
J'aurai plusieurs UF à avoir sur la meme feuille.
Merci d'avance

Cordialement
 

jeremyfoin

XLDnaute Nouveau
Re : Liste selection multiple

Bonjour SergiO et tout le monde,

L'exemple de SergiO correspond exactement à ce que je cherche, à quelques détails près :

Est-il possible qu'à la place de phase 1 phase 2...phase 5 dans la boite de dialogue, apparaisse une liste de noms (assez conséquente : une quarantaine de noms) sélectionnée dans une autre liste ?

Pour ne rien vous cacher : j'ai une liste de personnes qui participent chacun à quelques groupes de travail parmi une quarantaine, et je voudrais avoir pour chaque personne, une case indiquant les groupes de travail où ils participent (ce qui me permettra aussi de pouvoir trier par groupe de travail).

Si cela est possible, ça me changerait la vie au boulot...

Sinon merci quand même pour toutes vos réponses !

A+,
 

Discussions similaires

Réponses
15
Affichages
557
Réponses
3
Affichages
172
Compte Supprimé 979
C
Réponses
8
Affichages
167

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin