Liste de choix différente en fonction d'une cellule

Bonjour @ tous,

En principe, je n'aime pas demander des choses ainsi des le premier sujet d'un forum mais la je galère trop et ma compétence autodidacte sur Excel est arrivée au bout. :)

Je vais essayer de faire simple pour me faire comprendre:

J'ai une cellule avec une validation des données de type "liste"

Cette liste est la suivante (c'est juste un extrais):

25-50/5-5
40/1
40/5
50/1
50/5
50/5-1
50/5-5
50-100/1
50-100/5
50-100/5-1
50-100/5-5
100/1
100/5
100/5-1
100/5-5
100-200/1
100-200/5

Par exemple, j'aimerai, lorsque je choisis la valeur "50-100/5-1" avoir comme choix dans une cellule a côté a 50/5, 100/5, 50/1 ou 100/1.

si je choisi 100/5-1 avoir le choix a 100/5 et a 100/1

et si j'écris directement 65-130/5 (qui n'existe pas dans ma liste) avoir le choix a 65/5 et 130/5.

J'espère que je suis relativement clair.

J'ai déjà essayer plein de truc, hors macro mais c'est vraiment dur pour moi d'arriver a mes fins.

J'espère pourvoir être aider au maximum

En vous remerciant par avance.

Salut NufRadio,

Un peu alambiqué mais, bon...

- 1ère liste de validation en [C1]
- 2e liste de validation en [D1] qui se construit en colonne [B:B] : elle est ici apparente pour la démo.

Question
- /1-5 => 1 À 5 ou 1 OU 5 ?

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim tSplit, tSplit1, tSplit2, iNum%, iOK%
'
Application.EnableEvents = False
'
If Not Intersect(Target, Range("C1")) Is Nothing Then
    If InStr(Target, "/") > 0 Then
        Range("D1").Value = ""
        Columns(2).Value = ""
        Range("D1").Validation.Delete
        If InStr(Target, "-") > 0 Then
            tSplit = Split(Target, "/")
            tSplit1 = Split(tSplit(0) & IIf(InStr(tSplit(0), "-") = 0, "-", ""), "-")
            tSplit2 = Split(tSplit(1) & IIf(InStr(tSplit(1), "-") = 0, "-", ""), "-")
            For x = 1 To Range("A" & Rows.Count).End(xlUp).Row
                If InStr(Range("A" & x).Value, "-") = 0 Then
                    iOK = 0
                    For y = 0 To 1
                        For Z = 0 To IIf(y = 0, UBound(tSplit1), UBound(tSplit2))
                            If IIf(y = 0, tSplit1(Z), tSplit2(Z)) <> "" Then _
                                iNum = IIf(y = 0, tSplit1(Z), tSplit2(Z)): _
                                If CInt(iNum) = CInt(Split(Range("A" & x).Value, "/")(y)) Then iOK = iOK + 1
                        Next
                    Next
                    If iOK = 2 Then Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1).Value = Range("A" & x).Value
                End If
            Next
            iNum = WorksheetFunction.CountA(Columns(2))
            If iNum = 1 Then
                [D1] = [B2]
            Else
                If iNum = 0 Then
                    [C1] = ""
                    MsgBox "Pas de données correspondantes !", vbInformation + vbOKOnly, "NufRadio - Info"
                Else
                    Range("D1").Validation.Add Type:=xlValidateList, Formula1:="=B2:B" & Range("B" & Rows.Count).End(xlUp).Row
                End If
            End If
            [D1].Select
        End If
    Else
        [C1] = ""
        MsgBox "Donnée invalide !", vbInformation + vbOKOnly, "NufRadio - Info"
    End If
End If
'
Application.EnableEvents = True
'
End Sub

- tes options 65/5 et 130/5 DOIVENT quand même, elles, être présentes dans la liste, camarade !!
- en cas d'encodage sauvage sans données correspondantes, une alerte est émise.

6nufradio.xlsm (20.83 Ko)


A+

Bonsoir !

Oula j'étais loin du compte.

Je teste cela des que je peux et je te dis.

Pour répondre à ta question c'est 1 OU 5 le "-" c'est un OU même pour 100-200 c'est 100 OU 200

Merci pour ta rapidités !

j'ai juste fait un test de ton fichier et j'ai cela :

image

Si j'ai bien compris a partir de B2 j'aurais du avoir 50/5 50/1 100/5 100/1 (peu importe l'ordre..) et pouvoir le choisir en D1?

Merci

C'est bien ce que j'obtiens sur ma machine avec le même fichier... ??

image

Je l'ai essayé avec excel 2016 (celui de mon taf), je testerai avec mon 365 perso.

Rechercher des sujets similaires à "liste choix differente fonction"