Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim da As Date 'déclare la variable da (DAte)
Dim dm As Date 'déclare la variable dm (Date Minimum)
With ActiveSheet
If Target.Address <> "$B$1" Then Exit Sub 'si le double clic a lieu ailleurs qu'en B1, sort de la procédure
Cancel = True 'évite le mode édition lié au double-clic
Set pl = .Range("A1:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage pl
dm = Application.WorksheetFunction.Max(pl) 'définit la variable dm (ici, date maximum)
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
If cel.Value >= Date Then
da = cel.Value 'si la valeur de la cellule est supérieure à la date d'aujoud'hui, définit la variable da (valeur de la cellule)
If da < dm Then dm = cel.Value 'si la valeur de da est inférieure à la variable dm alors redéfinit la variable dm (valeur de la cellule)
End If
Next cel 'prochaine cellule de la boucle
Target.Value = dm 'affiche dm
End With
End Sub