Creer menu deroulant avec choix multiple

Résolu
Guesline -  
 Guesline -
Bonjour,

je voudrais créer un menu avec choix multiple sur excel. J'ai trouvé une façon de faire avec VBA dans une case mais quand je glisse dans les autres cases ça marche pas. Pouvez vous m'aider s'il vous plait. est ce que je dois le faire pour chaque case, j'ai une colonne de 200 informations :o ?

Voici mes codes

Private Sub Worksheet_Change(ByVal Target As Range)

'Code by Sumit Bansal from www.trumpexcel.com
' To Select Multiple Items from a Drop Down List in Excel

Dim Oldvalue As String
Dim Newvalue As String

On Error GoTo Exitsub
If Target.Address = "$R$5" Then
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
    Else: If Target.Value = "" Then GoTo Exitsub Else
        Application.EnableEvents = False
        Newvalue = Target.Value
        Application.Undo
        Oldvalue = Target.Value
        If Oldvalue = "" Then
            Target.Value = Newvalue
        Else
            Target.Value = Oldvalue & ", " & Newvalue
        End If
    End If
End If
Application.EnableEvents = True

Exitsub:
Application.EnableEvents = True

End Sub


Déjà un grand Merci !

A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
remplacez cette ligne:
If Target.Address = "$R$5" Then

par celle-ci en remplacant R10 par Rxx, xx etant la ligne de votre derniere validation de liste
If Not Application.Intersect(Target, Range("R5:R10")) Is Nothing Then


To Select Multiple Items from a Drop Down List in Excel
Ce code permet de mettre plusieurs choix sur la meme ligne!!!!
0
Guesline
 
Super ça a marché. Mille merci.

Comme je voulais utiliser cette même option dans d'autre colonne de la même feuille Excel, je sais pas comment ajouter les autres colonnes dans la formule. je vois pas ou créer d'autre fichier sur VBA dans une même feuille. j’ai aussi essaye d'ajouter (Range("A5: A30") dans la phrase que tu m'as donné juste après Range("R5:R10") genre comme ça :
If Not Application.Intersect(Target, Range("R5:R10"), Range("A5: A30") ) Is Nothing Then
Ça ne marche pas.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Guesline
 
Bonjour,

Separer les plages(ou cellules) par une virgules

If Not Application.Intersect(Target, Range("R5:R10,A5: A30")) Is Nothing Then
0
Guesline > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Super ça marche. Merci vous êtes Génial.

:)
0