Selection multiple dans menu déroulant

JF1000

XLDnaute Nouveau
Bonjour,

J'ai créé un menu déroulant dans Excel avec une trentaine de choix possible.
Donc là pas de soucis, mais j'aimerai pouvoir selectionner plusieurs éléments de cette liste.

Exemple de liste :

A
B
C
D
E
F
G
H

J'aimerais pouvoir selectionner : "A B G" ou "B D H" ou encore "A H C D E"

Je ne sais pas si cela est possible, merci de votre aide.
 

JCGL

XLDnaute Barbatruc
Re : Selection multiple dans menu déroulant

Bonjour à tous,

Liste fixe en B1:B13

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static Clic As Boolean
    Dim I%, S%
    Clic = Not Clic
    If Clic Then
        With Me.Shapes("Zone de liste 2")
            .Visible = True
            .Top = 0 'Target.Top
            .Left = 55 'Target.Left
        End With
    Else
        With Me.ListBoxes(1)
            For I = 1 To 26
                If .Selected(I) Then
                    S = S + 1
                   Target(1, S).Value = Me.Cells(I, 1).Value
                  .Selected(I) = False
                End If
            Next I
            .Visible = False
        End With
    End If
End Sub
A+ à tous
 

Pièces jointes

  • JC Test Liste Fixe.xls
    24 KB · Affichages: 64

jeanpierre

Nous a quitté
Repose en paix
Re : Selection multiple dans menu déroulant

Bonsoir,

"Et pour qu'il n'y ai qu'une seule case qui déclenche l'ouverture de la liste c'est possible"

Pour la position de ta liste, tu a déjà la réponse sur le post d'avant (j'en étais là hier soir, enfin jeudi soir). Ca c'est simple car il suffit de définir la position de l'objet.

Par contre, ce qui l'est moins et dans le code proposé par "X" (l'auteur du code), c'est de dire : on clique sur une seule cellule, par exemple et uniquement B1 ou une autre bien sûr et tout fonctionne.

Je n'ai pas encore trouvé comment s'affranchir de cela. Ce n'est vraiment pas simple pour le moment.

Le code bloque un peu de ce côté car on ne peut plus cliquer ici ou là sans que la liste se présente. On peut vérouiller la chose mais on perd le second clic qui permet la copie de la selection...

J'en suis là... pas plus avancé qu'avant hier...

Je vais continuer à chercher mais j'ai quelques doutes pour l'instant.

Bonne nuit.

Jean-Pierre
 
Dernière édition:

JF1000

XLDnaute Nouveau
Re : Selection multiple dans menu déroulant

merci beaucoup jeanpierre mais il ne faut pas non plus que cela vous prenne trop de temps, surtout si cela vous parait compliqué...

Mais j'ai néanmoins une petite question : est-il possible de coller le code selectionné dans une seule cellule et que chaque lettre soit séparée par une virgule par exemple ?
J'en demande beaucoup là ? :)
 

JCGL

XLDnaute Barbatruc
Re : Selection multiple dans menu déroulant

Bonjour à tous,

Beaucoup plus simple : une ListBox avec un MultiSelect dans un USF

La sélection se colle en C1 et les valeurs sont séparées par une virgule

Le code est de l'ami Dull :):)

A+ à tous
 

Pièces jointes

  • Choix Multiples ListBox dans USF.xls
    29.5 KB · Affichages: 76

JF1000

XLDnaute Nouveau
Re : Selection multiple dans menu déroulant

Alors ça c'est fort !!! Bravo à Dull et merci à toi d'avoir trouvé ça !!

Ca pourrait effectivement mieux correspondre à ce que je rechercher.
Par contre il faudrait trouver le moyen de ne pas coller les cellules toujours dans la meme cellule. Le systeme du clic et colle dans la case était génial. Mais mon dieu, ça fait plus de 10 ans que je n'ai pas pratiqué le VB... il ne me reste pas grand chose :)

Encore merci
 

JCGL

XLDnaute Barbatruc
Re : Selection multiple dans menu déroulant

Bonjour à tous,

Où veux-tu que les valeurs soient déposées ?

Trois choix possible :

Code:
Private Sub CommandButton1_Click()
Dim Chaine As String
Dim DerL As Long
DerL = Range("C65536").End(xlUp).Row + 1
Dim X As Byte
      For X = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(X) Then
                  Chaine = Chaine & ListBox1.List(X) & ","
            End If
      Next X
'Range("C1") = Trim(Chaine) [B][COLOR=DarkGreen]'Colle la sélection en C1[/COLOR][/B]
'Range("C" & DerL).Value = Trim(Chaine) [B][COLOR=DarkGreen]'Colle la sélection sur la première ligne de C[/COLOR][/B]
ActiveCell.Value = Trim(Chaine) [B][COLOR=DarkGreen]'Colle la sélection sur la cellule active[/COLOR][/B]
End Sub

A+ à tous
 

JF1000

XLDnaute Nouveau
Re : Selection multiple dans menu déroulant

Génial ! J'ai pris le 3eme choix, ça marche nickel ! MERCI

Je vais maintenant essayer d'intégrer tout cela à mon fichier.

Dernière question : il n'est pas possible de ne pas mettre de virgule après la dernière lettre ou si il n'y a qu'une seule lettre ?
Ce n'est pas très important et je ne sais pas si cela est possible.

Merci
 

Discussions similaires

Réponses
15
Affichages
483

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T