Maintenant, j'y vois plus clair. donc ce que vous souhaitez faire, c'est d'appliquer les validations de données aux nouvelles dates ou toutes nouvelles entrées.
Il suffit pour cela de réappliquer les validations de données a la nouvelle plage.
Dans le module de la feuille:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Sortie
Application.EnableEvents = True
Set f1 = Sheets("Feuil1")
Set f2 = Sheets("DEROULANT")
Derlig_f1 = f1.Range("A1").End(xlDown).Row
If Not Intersect(Target, Range("E1:ZZ1, A2:A" & Derlig_f1)) Is Nothing Then Creation_Liste
Sortie:
Application.EnableEvents = True
End Sub
Dans un module standard
Public Derlig_f1 As Long
Public f1 As Worksheet, f2 As Worksheet
Sub Creation_Liste()
Dim DerCol_f1 As Long, Derlig_f2 As Long
Application.ScreenUpdating = False
DerCol_f1 = f1.Range("A1").End(xlToRight).Column
Derlig_f2 = f2.Range("A1").End(xlDown).Row
f2.Select
Range("A2:A" & Derlig_f2).Select
ActiveWorkbook.Names.Add Name:="FONCTION", RefersToR1C1:="=" & f2.Name & "!R2C1:R" & Derlig_f2 & "C1"
f1.Select
With Range(f1.Cells(3, "E"), f1.Cells(Derlig_f1, DerCol_f1)).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=FONCTION"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Cdlt