Bonsoir LamarreNorm, bonsoir le forum,
Le code ci-dessous va récupérer toutes les données du mois tapé, même si quand tu tapes 01/2087 (pour janvier 2018) et qu'il affiche 01/01/2018 (à cause du format) se seront bien toutes les lignes du mois de janvier 2018 qui seront récupérées...
Le code (remplacera celui existant) :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim fb As Worksheet, tablo, tabloR()
Dim i&, j&, k&, dd As Date, df As Date, dr As Date
If Target.Address <> "$F$3" Then Exit Sub
dd = DateSerial(Year(Target.Value), Month(Target.Value), 1)
df = DateSerial(Year(dd), Month(dd) + 1, 0)
Set fb = Sheets("Base_de_donnees")
Range("B5").CurrentRegion.Offset(1, 0).ClearContents
tablo = fb.Range("A1").CurrentRegion
For i = 3 To UBound(tablo, 1)
dr = DateSerial(Year(tablo(i, 2)), Month(tablo(i, 2)), Day(tablo(i, 2)))
If dr >= dd And dr <= df Then
k = k + 1
ReDim Preserve tabloR(1 To 6, 1 To k)
tabloR(1, k) = k
tabloR(2, k) = tablo(i, 2)
tabloR(3, k) = tablo(i, 1)
tabloR(4, k) = tablo(i, 3)
tabloR(5, k) = tablo(i, 4)
tabloR(6, k) = tablo(i, 5)
End If
Next i
If k > 0 Then Range("B6").Resize(k, 6) = Application.Transpose(tabloR)
End Sub