Liste déroulante à choix multiples seulement sur une cellule

Bonjour à tous,
voila mon problème, j'ai un classeur excel avec pas mal de feuilles, dans l'une des feuilles j'ai des menus déroulants :

- une case avec un menu déroulant pour sélectionner un chiffre de 1 à 10

- plusieurs cases avec un autre menu déroulant pour sélectionner oui ou non.

Je voudrais pouvoir faire un choix multiples seulement sur les chiffres par exemple sélectionner 3,4,6 sans que dans les autres menus déroulants oui/non on puisse sélectionner oui et non mais seulement oui ou non.

C'est le problème que j'ai, en faisant un clic droit sur l'onglet et "Visualiser le code" j'ai entré un code qui me permet de choisir plusieurs chiffres mais on peut également oui et non dans les autres menus déroulants. Voyez-vous ce que je pourrais corriger à mon code pour que seule la cellule des chiffres (F43) soit à choix multiple :

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 2019/11/13
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, xRng) Is Nothing Then
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or _
                   InStr(1, xValue1, ", " & xValue2) Or _
                   InStr(1, xValue1, xValue2 & ",") Then
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & ", " & xValue2
                End If
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

Bonjour,

Un fichier EXCEL anonymisé permettrait aux intervenants de répondre plus précisément à ta question.

Slts

Bonjour,

votre problème vient de cette ligne : Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)

xRng prend en compte TOUTES les cellules qui contienne une validation de donnée, donc avec l'instruction INTERSECT le code vérifie s'il y a eu changement dans une cellule une de ces cellules et lance la procédure de liste de choix multiple.

Pour remédier à votre souci il suffit de "figer" xRng aux seules cellules où ce choix est possible, donc si vos cellules avec le choix numérique est en colonne D de la ligne 2 à la ligne 20 alors corrigez le code ainsi : Set xRng = Range("D2:D20")

Mais cette instruction peut varier si votre plage est "dynamique", voir mieux si c'est une colonne d'un tableau structuré.

@ bientôt

LouReeD

Merci beaucoup, ça fonctionne, trop fort

Bonsoir,

merci pour votre retour et remerciement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "liste deroulante choix multiples seulement"