Comment faire plusieurs liste déroulantes à choix multiples dans Excel ?

LLL 0 Points de réputation
2026-06-10T19:12:23.92+00:00

Je tente de créer un document Excel avec plusieurs listes déroulantes à choix multiples. Je n'arrive pas à créer plus de deux listes déroulantes à choix multiples pour une feuille.

Je vais vous montrer le code qui fonctionne pour deux cellules différentes (L) et (K), mais, dès que je tente d'ajouter des listes déroulantes à choix multiple, j'ai un message d'erreur.

Voici le code qui fonctionne pour les cellules (L) et (K) mais j'aimertais ajouter d'autres cellules (N), (O) mais il y a message d'erreur qui va suivre le code :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Oldvalue As String

Dim Newvalue As String

Application.EnableEvents = True

On Error GoTo Exitsub

If Not Intersect(Target, Range("L2:L500", "K2:K500")) Is Nothing 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

            If InStr(1, Oldvalue, Newvalue & ", ") > 0 Then

               

                Target.Value = Replace(Oldvalue, Newvalue & ", ", "")

            ElseIf InStr(1, Oldvalue, ", " & Newvalue) > 0 Then

              

                Target.Value = Replace(Oldvalue, ", " & Newvalue, "")

            ElseIf InStr(1, Oldvalue, Newvalue) = 0 Then

                

                Target.Value = Oldvalue & ", " & Newvalue

            End If

        End If

    End If

End If

Application.EnableEvents = True

Exitsub:

Application.EnableEvents = True

End Sub

Le message d'erreur quand je tente d'ajouter par exemple :

If Not Intersect(Target, Range("L2:L500", "K2:K500", "M2:M500",)) Is Nothing Then

Le message d'erreur :

Image de l’utilisateur

Comment faire pour passer par-dessus ce problème ? J'ai essayé de multiplier le code, mais avec des cellules différentes, ça n'a pas fonctionné.

Merci pour toute aide,

Au plaisir,

Microsoft 365 et Office | Excel | Pour le business | Autres

Question verrouillée. Vous pouvez voter pour savoir si c’est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ou suivre la question.

0 commentaires Aucun commentaire
Réponse recommandée par le modérateur
LLL 0 Points de réputation
2026-06-10T19:43:04.5666667+00:00

Résolu :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Oldvalue As String

    Dim Newvalue As String

    Application.EnableEvents = True

    On Error GoTo Exitsub

    If Not Intersect(Target, Range("A2:Z9999")) Is Nothing 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

                If InStr(1, Oldvalue, Newvalue & ", ") > 0 Then

                  

                    Target.Value = Replace(Oldvalue, Newvalue & ", ", "")

                ElseIf InStr(1, Oldvalue, ", " & Newvalue) > 0 Then

                 

                    Target.Value = Replace(Oldvalue, ", " & Newvalue, "")

                ElseIf InStr(1, Oldvalue, Newvalue) = 0 Then

                   

                    Target.Value = Oldvalue & ", " & Newvalue

                End If

            End If

        End If

    End If

    Application.EnableEvents = True

Exitsub:

    Application.EnableEvents = True

End Sub

Cette réponse vous a-t-elle été utile?

0 commentaires Aucun commentaire

0 réponses supplémentaires

Trier par : Le plus utile