XL pour MAC Liste avec choix multiple

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour