Menu déroulant à saisies multiples

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 :(
 

myDearFriend!

XLDnaute Barbatruc
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

  • mDF_SaisiesCumuleesListValid.zip
    10.7 KB · Affichages: 26

myDearFriend!

XLDnaute Barbatruc
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,
 

myDearFriend!

XLDnaute Barbatruc
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... :eek:

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

  • mDF_SaisiesCumuleesListValid_20060124011742.zip
    12.2 KB · Affichages: 35

Discussions similaires

Réponses
15
Affichages
557

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 154
dernier inscrit
jefferson6488