Dim plage As Range, d As Object 'mémorise les variables
Private Sub CommandButton1_Click() 'Valider
If Not IsDate(TextBox1) Then Exit Sub
Dim dat As Date, t, i&
dat = CDate(TextBox1)
t = plage.Columns(2)
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then t(d(.List(i)), 1) = dat
Next
End With
plage.Columns(2) = t 'restitution
End Sub
Private Sub CommandButton2_Click() 'RAZ
Dim i&
TextBox1 = ""
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = False
Next
End With
End Sub
Private Sub UserForm_Initialize()
Dim i&
TextBox1 = Date 'date du jour
Set plage = [A2:A30] 'à adapter
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To plage.Count
If plage(i) <> "" Then d(plage(i).Value) = i 'mémorise la ligne
Next
If d.Count Then ListBox1.List = d.keys
End Sub