Bonjour,
J'ai revu la procédure VBA (à tester).
Attention à tes formules semaines et année !
Cdlt.
Sub Recherche()
Dim a, d As New Dictionary, i As Long, k As Long, Criteria1 As Long, Criteria2 As Long, Criteria3
a = Worksheets("Commande").Cells(1).CurrentRegion
With Worksheets("Résultat")
.Range("A2:A100").ClearContents
Criteria1 = .Range("B2").Value
Criteria2 = .Range("C2").Value
Criteria3 = .Range("D2").Value
End With
For i = 2 To UBound(a)
k = k + 1
If (a(i, 7) = Criteria1 Or a(i, 7) = Criteria2) And a(i, 11) = Criteria3 Then
d(a(k, 5)) = a(i, 7) & "W" & Format(a(i, 5), "00")
End If
Next
If d.Count > 1 Then
With Worksheets("Résultat")
.Range("A2").Resize(d.Count) = Application.Transpose(d.Items)
.Range("A2:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).Sort key1:=.Range("A2"), order1:=xlAscending
End With
End If
End Sub