XL pour MAC Liste avec choix multiple

Mosnak

XLDnaute Nouveau
Bonjour,

Je cherche depuis un petit moment comment avoir une liste avec un choix multiple mais avec la possibilité d'en sélectionner plusieurs.

Je m'explique, j'ai déjà une liste avec plusieurs choix mais je cherche a pouvoir coché plusieurs valeurs de cette liste, de sorte a pouvoir sélectionner Jardin et garage dans le même cellule par exemple.
atd3.png


Pouvez-vous m'aider ?

Merci par avance,
 
Solution
Bonsoir Mosnak, JHA,

Oui, utiliser une ListBox est une bonne solution.

Comme c'est un peu compliqué on peut simplement concaténer les entrées successives :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [M10:M627]) Is Nothing Or Target.Count > 1 Or CStr(Target(1)) = "" Then Exit Sub
Dim memorise$
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évênements
memorise = CStr(Target) 'mémorise la dernière entrée
Application.Undo 'annule l'entrée
If InStr(vbLf & Target & vbLf, vbLf & memorise & vbLf) = 0 Then
    Target = IIf(Target = "", "", Target & vbLf) & memorise 'concatène les entrées
    Target.WrapText = True 'renvoi à la ligne
    Target.EntireRow.AutoFit 'ajuste...

JHA

XLDnaute Barbatruc
Bonjour à tous,

Désolé il faut passer par VBA mais je ne sais pas faire.
Ci joint un exemple de @mapomme (que je salue)


JHA
 

job75

XLDnaute Barbatruc
Bonsoir Mosnak, JHA,

Oui, utiliser une ListBox est une bonne solution.

Comme c'est un peu compliqué on peut simplement concaténer les entrées successives :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [M10:M627]) Is Nothing Or Target.Count > 1 Or CStr(Target(1)) = "" Then Exit Sub
Dim memorise$
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évênements
memorise = CStr(Target) 'mémorise la dernière entrée
Application.Undo 'annule l'entrée
If InStr(vbLf & Target & vbLf, vbLf & memorise & vbLf) = 0 Then
    Target = IIf(Target = "", "", Target & vbLf) & memorise 'concatène les entrées
    Target.WrapText = True 'renvoi à la ligne
    Target.EntireRow.AutoFit 'ajuste la hauteur
End If
Application.EnableEvents = True 'réactive les évênements
End Sub
A+
 

Pièces jointes

  • fichier clients(1).xlsm
    43.4 KB · Affichages: 20

Statistiques des forums

Discussions
312 927
Messages
2 093 689
Membres
105 783
dernier inscrit
Maya33