liste deroulante excel

emmanuel manupch

XLDnaute Nouveau
Bonjour dans un tableau et surtout dans une seule cellule, je souhaiterais mettre depuis une liste déroulante plusieurs choix direct a la ligne
exemple
liste déroulante :

patate
lys
tomate
fleur


je souhaiterais donc insérer dans la meme cellule à la ligne

lys
fleur


est ce possible ?

merci
 

chris

XLDnaute Barbatruc
Bonjour
Coucou mutzik ;)

J'ai compris mais ce n'est pas possible sans VBA.

Les listes de validation permettent la sélection d'une valeur et la sélection d'une autre remplace la première.

Même en VBA il faudra définir très précisément ce qui doit se passer quand tu veux modifier : on doit théoriquement pouvoir ajouter, enlever, remplacer une valeur par une autre...

Bref ta demande nécessite pas mal de précisions.
 

emmanuel manupch

XLDnaute Nouveau
bonjour,

mais alors là, j'ai rien compris du tout
un petit classeur exemple serait le bienvenu avec ce que tu as et ce que tu voudrais comme résultat



En fait ,

J ai une liste déroulante dans la colonne h
je sélectionne un nom par cellule
j'aimerais selectionner parfois deux noms par cellule en allant à la ligne dans la même cellule

exemple

je choisis dans ma liste poireau et gazon

ca appparait dans ma cellule

poireau
gazon
 

chris

XLDnaute Barbatruc
Re

Modifier le code ainsi
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A2:A10], Target) Is Nothing And Target.Count = 1 Then
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox1.List = Sheets("BD").Range("A2:A28").Value
    a = Split(Target, Chr(10))
    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 = 150
    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) & Chr(10)
Next i
ActiveCell = Left(temp, Len(temp) - 1)
End Sub
 

chris

XLDnaute Barbatruc
Re

La zone où la liste est active est définie dynamique (Page nommée Respons)
mais il serait plus propre se mettre la source sous forme de tableau et de gérer la colonne du tableau.
 

Pièces jointes

  • DU_MODIFIE ev.xlsm
    134.2 KB · Affichages: 56

emmanuel manupch

XLDnaute Nouveau
j ai egalement une autre problematique sur ce tableau

je cherche suivant le resultat d une cellule à mettre une année de référence dans une autre cellule

exemple

k9 trois possibilites soit inférieur à 70 soit entre 70 et 400 soit superieur à 400

mettre en n9 si k9 inferieur à 70 année n+5 si entre 71 et 400 n+3 et n+1 si superieur à 400
j aimerais egalement si possible que mes annees suivent ma date de saisie ...
si je le tape en 2017 ca m inscris 2018 ou 2020 ou ....
si saisie en 2018 ... resultat 2019 ,2021
 
Dernière édition:

chris

XLDnaute Barbatruc
Re

Ce code n'enregistre pas chaque étape mais ce qui est sélectionné dans la liste dans l'ordre de la liste (pas alpha dans ton cas).
Tenir compte de l'ordre des clics obligerait à complexifier ce code.

Ta colonne H ne peut actuellement recevoir d'autres valeurs que 1, 4, 7, 10. Faut-il modifier cette liste de valeurs ?
 

emmanuel manupch

XLDnaute Nouveau
Re

Ce code n'enregistre pas chaque étape mais ce qui est sélectionné dans la liste dans l'ordre de la liste (pas alpha dans ton cas).
Tenir compte de l'ordre des clics obligerait à complexifier ce code.

Ta colonne H ne peut actuellement recevoir d'autres valeurs que 1, 4, 7, 10. Faut-il modifier cette liste de valeurs ?



ok donc a moi de tenir compte de cela dans une autre colonne ...
non ce n est que ces valeurs la pour h et d ailleurs erreur de ma par je voulais parler de la colonne k au lieu de h9 ....
oups
 

Discussions similaires