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 = Trueet 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,