Liste déroulante selon échéance par VBA

Bonjour

Je souhaite qu'une liste déroulante soit modifiée dans ses propositions selon l'échéance d'une date.

J'ai fait cela mais, s'il n'y a pas d'erreur affichée, la cellule n'affiche pas de liste pour autant :

If Target.Column = 19 Then
                                                                'on désactive le détection des évènements
    Application.EnableEvents = False
                                                                'on récupère la ligne qui a été changé et on applique les formules
    i = Target.Row

        If Range("L" & i).Value - 60 < Date Then

            Range("W" & i).Select

                With Selection.Validation
                    .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="=Mesure"
                    .IgnoreBlank = True
                    .InCellDropdown = True
                    .InputTitle = ""
                    .ErrorTitle = ""
                    .InputMessage = ""
                    .ErrorMessage = ""
                    .ShowInput = True
                    .ShowError = True
                End With

        ElseIf Range("L" & i).Value - 60 >= Date And Range("L" & i).Value <= Date Then

            Range("W" & i).Select

                With Selection.Validation
                    .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="=ATJM_avant_18_ans"
                    .IgnoreBlank = True
                    .InCellDropdown = True
                    .InputTitle = ""
                    .ErrorTitle = ""
                    .InputMessage = ""
                    .ErrorMessage = ""
                    .ShowInput = True
                    .ShowError = True
                End With

        Else

            Range("W" & i).Select

                With Selection.Validation
                    .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="=ATJM"
                    .IgnoreBlank = True
                    .InCellDropdown = True
                    .InputTitle = ""
                    .ErrorTitle = ""
                    .InputMessage = ""
                    .ErrorMessage = ""
                    .ShowInput = True
                    .ShowError = True
                End With

        End If

End If

    Application.EnableEvents = True

et le fichier test en pièce jointe

Bonjour Theyoshi,

Commentaire édité : J'ai regardé ton fichier et ça marche... C'est juste que ça dépend de conditions qui doivent être remplies, la date en L et que le déclenchement a lieu lors d'un changement en S.

Cdlt,

Bonjour 3GB

J'ai fais l'erreur, le déclencher est en N, soit colonne 14.

Mais cela ne fonctionne pas

J'ai fait un essai avec ton fichier initial en modifiant la date de naissance sur la première ligne de manière à rentrer dans les conditions. Et je suis passé de la liste Mesure (2 choix) à la liste ATJM (4 choix) puis à nouveau à la liste mesure...

Donc ça marche mais il faut saisir quelquechose en colonne S pour avoir le déclencheur (ou en colonne N si le code est mis à jour).

En fait, la liste était en cascade, elle se change à la majorité. Je voudrais qu'elle se change deux mois avant, d'ou la VBA.

Et la ca ne fonctionne pas.

Oui, moi aussi, quand j'enlève les roues de mon vélo, il fonctionne moins bien .

A bientôt,

Rechercher des sujets similaires à "liste deroulante echeance vba"