Liste selection multiple VBA

  • Initiateur de la discussion Initiateur de la discussion Maud44
  • Date de début Date de début

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 !

M

Maud44

Guest
Bonjour
J'ai un problème, je n'arrive pas à mettre dans une cellule plusieurs données d'une même liste déroulante...Par exemple faire apparaitre A , B , C dans une même cellule ... en partant de la liste déroulante A, B , C ,D
Malgré les codes existants je ne comprends pas le fonctionnement du codE...
Quel code faut - il réaliser?
D'avance merci,
Cordialement,
 

Pièces jointes

Re : Liste selection multiple VBA

Bonjour Maud44,

Par exemple faire apparaitre A , B , C dans une même cellule ... en partant de la liste déroulante A, B , C ,D

Pas tout à fait limpide, mais peut-être avec cette macro :

Code:
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then Exit Sub
If Target = "" Then Exit Sub
[C3] = [C3] & IIf([C3].Text = "", "", vbLf) & Target
Rows(2).AutoFit 'ajustement de la hauteur
End Sub
Elle est à coller dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

Le fichier doit être enregistré en .xls (fichier joint) ou .xlsm.

Edit : salut Philippe, pas rafraîchi

A+
 

Pièces jointes

Dernière édition:
Re : Liste selection multiple VBA

Bonjour,
Je mets en pièces jointesle dossier pour lequel je veux réaliser la liste de sélection multiple.
je voudrais que dans la cellule E2 puisse apparaitre plusieurs agents en les sélectionnant à l'aide de la liste déroulante de la cellule. Actuellement quand on en choisit un, et que l'on veut en mettre un autre ca enlève celui sélectionner en premier.
Je voudrais que ca fasse une liste des agents en E2.

J'espère avoir été plus claire

Cordialement
 

Pièces jointes

Re : Liste selection multiple VBA

Non... Je n'ai clairement aucune connaissance... Donc archi simple ... je ne pense pas quand on découvre VBA...On me demande de faire une fichier mais VBA je ne connaissais pas avant...
Et lorsque je fais "éxecuter" ça ne retrouve pas la macro que je viens de saisir...J'ai fais le tour de l'ensemble des macro internet (exemple de choix multiple) en essayant de les adapter... sans succès...
 
Re : Liste selection multiple VBA

J'ai fait ca :
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$2" Then Exit Sub
If Target = "" Then Exit Sub
[F2] = [F3] & IIf([F3].Text = "", "", vbLf) & Target
Rows(2).AutoFit 'ajustement de la hauteur
End Sub
 
Re : Liste selection multiple VBA

Re,

Quand je fais éxécuter la macro ... elle n'existe pas alors que je l'ai créee...

où se trouve la macro créée ? si elle est dans un module, elle ne se déclenchera pas lors d'une modif faite sur le feuille

à+
Philippe

Edit: Plutôt que d'envoyer une "image", le fichier serait plus utile

Edit2: Je dois m'absenter, Job, je te laisse continuer
 
Dernière édition:
Re : Liste selection multiple VBA

OK. La macro ne doit pas être réalisée au bon endroit alors... dans ce cas ou faut il la faire.
C'est vraiment la première fois que je touche à VBA alors je ne connais pas le langage NI les bases même les plus simples...
C'est toujours pour le fichier joint précédemment " Classeur de diffusion V2".

D'avance merci,
 
Re : Liste selection multiple VBA

Re,

Voyez le fichier joint avec cette macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, Range("E2", Range("E" & Rows.Count).End(xlUp)))
If r Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les événements
For Each r In r 'si plusieurs cellules sont modifiées
  With Cells(r.Row, "G")
    If CStr(r) = "" Then
      .Value = ""
    Else
      .Value = .Text & IIf(.Text = "", "", ", ") & CStr(r)
      r = .Value
    End If
  End With
Next
Application.EnableEvents = True 'réactive les événements
End Sub
Les CStr c'est pour le cas où un petit malin entrerait une valeur d'erreur...

A+
 

Pièces jointes

Re : Liste selection multiple VBA

Re,

Pardon, la dernière ligne ne s'effaçait pas, il faut écrire :

Code:
Set r = Intersect(Target, Range("E2:E" & Rows.Count), Me.UsedRange)
La macro corrigée :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, Range("E2:E" & Rows.Count), Me.UsedRange)
If r Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les événements
For Each r In r 'si plusieurs cellules sont modifiées
  With Cells(r.Row, "G")
    If CStr(r) = "" Then
      .Value = ""
    Else
      .Value = .Text & IIf(.Text = "", "", ", ") & CStr(r)
      r = .Value
    End If
  End With
Next
Application.EnableEvents = True 'réactive les événements
End Sub

Bis repetita
: elle est à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

Fichier (2).

A+
 

Pièces jointes

Re : Liste selection multiple VBA

Re,

Des renvois à la ligne sont peut-être mieux :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, Range("E2:E" & Rows.Count), Me.UsedRange)
If r Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les événements
For Each r In r 'si plusieurs cellules sont modifiées
  With Cells(r.Row, "G")
    If CStr(r) = "" Then
      .Value = ""
    Else
      .Value = .Text & IIf(.Text = "", "", vbLf) & CStr(r)
      r = .Value
    End If
    r.EntireRow.AutoFit 'ajustement de la hauteur
  End With
Next
Application.EnableEvents = True 'réactive les événements
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : Liste selection multiple VBA

Bonsoir,
Merci beaucoup déjà pour l'aide précieuse que vous venez de m'apporter. Moi qui n'y connait rien ca m'aide énormément.
Par contre, dans le cas du dernier message lorsqu'on clique sur un agent deux fois...le nom se met deux fois dans la cellule. Cependant je voudrais qu'il disparaisse. Une sorte de "cochage" et "décochage".
Que faut-il modifier dans le code?

D'avance merci beaucoup,

Cordialement,
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
1 K
Réponses
1
Affichages
552
Retour