Menu déroulant à saisies multiples

  • Initiateur de la discussion Initiateur de la discussion Yvon Matth
  • 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 !

Y

Yvon Matth

Guest
Bonjour,

Je sais faire un menu déroulant à partir d'une liste mais je veux pouvoir sélectionner plusieurs objets de cette liste en les séparant par exemple avec des virgules. Quelqu'un aurait-il une idée pour m'aider ?

Merci beaucoup 🙁
 
Bonsoir Yvon Matth, André, le Forum,

Avec un petit coup de pouce VBA...

Ci-joint un exemple utilisant la procédure évènementielle suivante :
Private Sub Worksheet_Change(ByVal Target As Range)
Static V
      If Not Application.Intersect(ActiveCell, Range('D22')) Is Nothing Then
            If Len(ActiveCell.Value) > 0 Then
                  Application.EnableEvents = False
                  ActiveCell.Value = IIf(Len(V) > 0, V & ',', '') & ActiveCell.Value
                  Application.EnableEvents = True
                  SendKeys '%{DOWN}'
            End If
            V = ActiveCell.Value
      End If
End Sub
Cordialement, [file name=mDF_SaisiesCumuleesListValid.zip size=10996]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_SaisiesCumuleesListValid.zip[/file]
 

Pièces jointes

Re- Yvon Matth,

A vrai dire, je ne comprends pas bien ce que tu demandes par :
J'ai étendu à une liste de cellules plus grandes mais la concaténation est mémorisée. Comment faire pour la remettre à zéro ?
Pour effacer le contenu de la cellule et repartir sur une nouvelle série à concaténer, il suffit simplement de faire Suppr (par la touche du même nom) sur la dite cellule...

Cordialement,
 
Re le fil,

Didique vient de me faire judicieusement remarquer (sur le ChatXLD) que la procédure VBA présentée plus haut ne fonctionne que sur une seule cellule et ne permet donc pas le traitement de plusieurs cellules pointant sur la même liste de validation...
Je suis d'autant plus impardonnable qu'André m'a déjà fait cette même remarque dans une proposition similaire il y a peu... 😱

Ci-joint, donc, un correctif pour tenter de pallier à cet inconvénient.

Le code est maintenant placé directement dans le module de code de l'objet ThisWorkbook afin de permettre cette gestion dans tout le classeur :
Option Explicit
Dim
V As Variant

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'myDearFriend!   - 24/01/06
Dim VF As String
      On Error Resume Next
      VF = Target.Validation.Formula1
      If VF = '=mDF' Then
            If Len(ActiveCell.Value) > 0 Then
                  Application.EnableEvents = False
                  ActiveCell.Value = IIf(Len(V) > 0, V & ',', '') & ActiveCell.Value
                  Application.EnableEvents = True
                  SendKeys '%{DOWN}'
            End If
            V = ActiveCell.Value
      End If
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
      V = ActiveCell.Value
End Sub
Cordialement, [file name=mDF_SaisiesCumuleesListValid_20060124011742.zip size=12492]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_SaisiesCumuleesListValid_20060124011742.zip[/file]
 

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

Discussions similaires

Réponses
8
Affichages
304
Réponses
4
Affichages
894
Réponses
4
Affichages
281
Réponses
43
Affichages
806
Retour