Plus d'un choix possible dans une liste déroulante

Bonjour,

J'aimerais savoir si c'est possible qu'un utilisateur fasse plus d'un choix dans la liste déroulante:

J'utilise Données -> Validation des données

S

1 2

Bonsoir,

Oui c'est possible avec une macro,

Voir exemple avec la pj

Pour voir afficher listes déroulantes activer les macros à l'ouverture du fichier

Slts

Super !

J'ai ajouté mon ListBox

Peut-on changer le fond en blanc et la couleur en noire ?

Je ne sais pas si ça se fait mais est-ce qu'on pourrait ajouter 'Autre' et qu'un champ texte apparait lorsque l'option 'Autre' est choisi ?

Merci!!

capture d ecran 2021 01 08 162805

Bonjour toutes et tous

@Catherine41

   Me.ListBox1.BorderColor = &H0&     ' noir bordure du cadre
   Me.ListBox1.BackColor = &HFFFFFF   ' blanc (fond blanc du cadre)
   Me.ListBox1.ForeColor = &H0&       ' noir (couleur de police)

et un remerciement à Boss_68 , j'aime bien ton code ^^

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A1:A20], Target) Is Nothing And Target.Count = 1 Then 'plage ou se trouve la liste déroulante A1:A20
   Me.ListBox1.MultiSelect = fmMultiSelectMulti ' Si on met fmMultiSelectSingle à la place de fmMultiSelectMulti on pourra sélectionner que 1 mot à chaque fois
   Me.ListBox1.ListStyle = fmListStyleOption
   Me.ListBox1.BorderStyle = fmBorderStyleSingle 'permet le cadre dans la liste déroulante pour l'iniber mettre l'apostrophe devant la ligne et modifier dans les propriétes
   Me.ListBox1.BorderColor = &H0&
   Me.ListBox1.BackColor = &HFFFFFF
   Me.ListBox1.ForeColor = &H0&
   Me.ListBox1.List = Sheets("Donnée").Range("A1:A5").Value ' là ou se trouve la liste sheets Donnée, plage A1:A5
    a = Split(Target, " ")
    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
    Me.ListBox1.Height = 71
    Me.ListBox1.Width = 100
    Me.ListBox1.Top = Target.Top
    Me.ListBox1.Left = Target.Left + Target.Width
    Me.ListBox1.Visible = True
  Else
      Me.ListBox1.Visible = False
  End If
End Sub
Private Sub ListBox1_Change()
 For i = 0 To Me.ListBox1.ListCount - 1
   If Me.ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.List(i) & " , "
 Next i
 ActiveCell = Trim(temp)
End Sub

Super !

J'ai ajouté mon ListBox

Peut-on changer le fond en blanc et la couleur en noire ?

Je ne sais pas si ça se fait mais est-ce qu'on pourrait ajouter 'Autre' et qu'un champ texte apparait lorsque l'option 'Autre' est choisi ?

Merci!!

capture d ecran 2021 01 08 162805

edit: pour la 2ème question je ne sais pas

Je ne sais pas si ça se fait mais est-ce qu'on pourrait ajouter 'Autre' et qu'un champ texte apparait lorsque l'option 'Autre' est choisi ?

crdlt,

André

Bonjour, catherine41 et Andre13 et au forum

@ Andre13 Merci pour la modif

@ catherine41 non je ne pense pas qu'il est possible d'ajouter 'Autre' et qu'un champ texte apparaît lorsque l'option 'Autre' est choisi. Peut-être une personne avec des connaissances plus pointues en vba serait-il capable..... alors à tous les contributeurs un challenge pour vous

Slts

Bonjour,

Est-ce que c'est possible d'enlever la permission que l'utilisateur ajoute autre chose que ce qui est écrit dans la liste:

J'ai fais un test, et l'utilisateur peut écrire autre chose…

capture d ecran 2021 01 09 154238

Hello,

Pour ajouter une zone de texte je ferai comme ceci :

R@g

Bonjour toutes et tous

merci Rag02700 ^^

en prenant ton code, j'ai mis avec une validation des données, la feuille Donnée avec un tableau et une plage nommée (Zone | par défaut: Tableau1)

Deux petits soucis:

1/ ne s'actualise pas de suite lorsque le mot est ajouté dans la listbox1

2/ le deuxième petit soucis : c'est qu'il me place le dernier mot autre ajouter de la message box, le rafraîchissement de la page ne s'effectue pas correctement, je retrouve le mot dans la liste déroulante lorsque, je rajoute un autre mot autre


Validation des données: est-il possible de mieux synchroniser avec worksheet change de la feuille modele1?

ce que j'ai effectué:

  • on ne peut pas modifier la cellule manuellement en ajoutant ou modifier un mot de la cellule (ok)
  • validation de donnée =ZONE ( à voir)

ci-joint

merci @vous toutes et tous

crdlt,

André

Hello,

Ce que l'on veut avec "autre" c'est :

Lorsque je le sélectionne on puisse indiquer du texte dans une zone de texte , que ce texte soit ajouté dans la colonne de la feuille 1 mais je veux que ma liste de depart reste celle presente en feuille 2 ?

re,

oui Rag027000, presque, lorsqu'il s'ajoute le mot, il n'est pas de suite synchro avec la liste déroulante

je me demandais si s'était faisable, j'ai regardé du côté de calculate de la feuille mais cela m'a donné rien de satisfaisant.

laisse tomber te casses pas la tête s'était juste pour savoir si s'était faisable

merci en tout cas

En fait le code en lui même ne permet pas de stocker des valeurs dans la feuille 1 qui ne sont pas présentes dans la feuille 2 (C'est pour cette raison que je l'avais ajouté).

Soit tu stockes tes valeurs "autre" dans la feuille 2 sinon faut repenser le code.

R@g

Re,

oki dac merci Rag02700 pour l'info

J'ai essayé cette idée géniale…

Est-ce que quelqu'un sait pour quelle raison ma liste déroulante est petite :
J'ai 10 raisons, j'aimerais toutes les voir comme dans ton exemple. :-)

capture d ecran 2021 01 11 122154

Hello,

surement une taille de la liste déroulante par défaut

R@g

Oui c'était ça merci

Bonjour,

Est-ce qu'on peut enlever le ? à la gauche du X ou c'est automatique avec le lien Application.InputBox ?

Merci

capture d ecran 2021 01 12 084649

Bonjour toutes et tous

@Catherine41

peut-être comme cela

ligne à modifier dans Private Sub ListBox1_Change():

Val_Autre = Application.InputBox(prompt:="Quel texte voulez-vous ajouter ? ", Type:=2)

par (voir ci-dessous)


 
   Val_Autre = InputBox("Quel texte voulez-vous ajouter ?", "Mot autre à modifier")

ou

    Val_Autre = InputBox("Quel texte voulez-vous ajouter ?", "")

ou

Val_Autre = InputBox("Quel texte voulez-vous ajouter ?", "Mot ""autre"" à modifier")

crdlt,

André


Merci de ta précieuse collaboration.

Rechercher des sujets similaires à "choix possible liste deroulante"