Private Sub Worksheet_Change(ByVal Target As Range)
Dim S As Worksheet 'déclare la variable S (onglet Source)
Dim TV As Variant 'déclare la variable TV (Tableau des valeurs)
Dim DL As Long 'déclare la variable DL ()
Dim TS() As Variant 'déclare la variable TS (Tableau des Séries)
Dim DC As Long 'déclare la variable DC (Date Cherchée)
Dim D As Long 'déclare la variable D (Date)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
If Target.Address <> "$F$2" Then Exit Sub 'si le changement a lieu ailleurs qu'en F2, sort de la procédure
Me.Range("C4:C" & Application.Rows.Count).ClearContents 'efface d'éventuelles anciennes recherches
Set S = Worksheets("Source") 'défin it l'onglet S
TV = S.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
DC = CLng(DateSerial(Year(Target.Value), Month(Target.Value), Day(Target.Value))) 'définit la date cherchée (convertie en entier long)
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
D = CLng(DateSerial(Year(TV(I, 1)), Month(TV(I, 1)), Day(TV(I, 1)))) 'définit la date D de la boucle (convertie en entier long)
If DC = D Then 'condition : si les deux date sont identiques
ReDim Preserve TS(J) 'redimensionne le tableau des séries TS (J lignes)
TS(J) = TV(I, 2) 'décupère dans la ligne J de TS le numéro de série ligne I colonne 2 de TV
J = J + 1 'incrémente J
End If
Next I
'si le nombre d'éléments trouvés est supérieur à 0, rencoie dans C4 redimensionnée le tableau TS ransposé
If J > 0 Then Me.Range("C4").Resize(UBound(TS), 1).Value = Application.Transpose(TS)
End Sub