bonsoir,
voici des commentaires additionnels
Sub aargh()
Set asd = Sheets("feuil1") 'feuille de recherche et résultats
Set wsd = Sheets("feuil1") 'base de données
dl = wsd.Cells(Rows.Count, "o").End(xlUp).Row 'nombre de lignes de données
td = wsd.Range("o3").Resize(dl - 2, 4).Value 'chargement des données dans une array vba (lignes de 4 colonnes)
With asd
fq = .Range("C3") 'fréquence
efq = .Range("F3") 'écart fréquence
de = .Range("I3") ' DE
ede = .Range("L3") ' écart DE
.Range("B16:I1000").ClearContents
ctr = 15 ' n° de ligne pour le résultat
For i = 1 To UBound(td) 'recherche des navires
If td(i, 1) > fq - efq And td(i, 1) < fq + efq Then 'fréquence dans les limites
If td(i, 2) > de - ede And td(i, 2) < de + ede Then 'DE dans les limites
ctr = ctr + 1 'nouvelle ligne résultat pour navire trouvé en ligne i
.Cells(ctr, 2) = td(i, 1) 'fréquence en ligne ctr col B
.Cells(ctr, 3) = td(i, 2) 'écriture DE en ligne ctr col C
.Cells(ctr, 4) = td(i, 3) 'écriture radar en ligne ctr col D
.Cells(ctr, 6) = td(i, 4) 'écriture navire en ligne ctr col F
End If
End If
Next i
End With
End Sub
en cas d'ajout de colonnes supplémentaires, il faut modifier l'instruction de chargement de l'array VBA et les instructions d'écriture des résultats