Creer menu deroulant avec choix multiple

Résolu/Fermé
Guesline - Modifié par pijaku le 17/05/2016 à 15:01
 Guesline - 17 mai 2016 à 14:55
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
14 mai 2016 à 11:27
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
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Guesline
17 mai 2016 à 06:41
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
17 mai 2016 à 14:55
Super ça marche. Merci vous êtes Génial.

:)
0