Bonjour,
A tester :
Sub Test()
Dim Plage As Range
Dim PlgJour As Range
Dim CelJour As Range
Dim Cel As Range
Dim Tbl() As String
Dim I As Long
Dim Adr As String
'défini la plage sur la feuille "Feuille 2" en colonne A à partir de A1
With Worksheets("Feuille 2"): Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
'défini la plage sur la feuille "Feuill 1" en colonne A à partir de A3 et ne récupère que les cellules visible
With Worksheets("Feuille 1"): Set PlgJour = Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp)).Cells.SpecialCells(xlCellTypeVisible): End With
'effectue une recherche partielle du jour et stocke dans un tableau
For Each CelJour In PlgJour
Set Cel = Plage.Find(CelJour.Value, , xlValues, xlPart)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
I = I + 1: ReDim Preserve Tbl(1 To I)
Tbl(I) = Cel.Value
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next CelJour
'les résultats dans la feuille "Résultat"
If Not (Not Tbl) Then
For I = 1 To UBound(Tbl)
Worksheets("Résultat").Cells(I, 1).Value = Tbl(I)
Next I
End If
End Sub