إليك أخي الكريم رفيع شرح مبسط للكود
Sub TestThis()
'هذا السطر لتعريف المتغير من النوع نطاق ، واسمه Cell
Dim Cell As Range
'هذا السطر يقوم بمسح محتويات النطاق المراد وضع النتائج به
[O6:P100].ClearContents
'بداية حلقة تكرارية للعمود الذي به الصنف المراد تصفيته أو المراد استخراج النتائج من خلاله
'بداية هذا النطاق هو الخلية L6
'نهاية النطاق يتم تحديدها من خلال الأكواد لمعرفة آخر خلية بها بيانات في هذا العمود
For Each Cell In Range("L6:L" & Range("L" & Rows.Count).End(xlUp).Row)
'يتم وضع شرط ألا تكون قيمة الخلية في هذا النطاق المشار إليه في السطر السابق ألا تكون قيمة الخلية تساوي فراغ أو صفر
If Not Cell.Value = "" And Not Cell.Value = 0 Then
'إذا تحقق الشرط وكانت الخلية لا تساوي فراغ ولا تساوي صفر يقوم بنسخ الخلية والخلية المجاورة باستخدام Reszie
Cell.Resize(1, 2).Copy
'هذا النطاق هو المكان الذي سيتم لصق القيم فيه
Range("O" & Rows.Count).End(3)(2).PasteSpecial xlPasteValues
'نهاية جملة الشرط
End If
'الانتقال إلى خلية جديدة
Next Cell
'إلغاء خاصية النسخ التي تم استخدامها بالكود
Application.CutCopyMode = False
'تحديد الخلية O6
[O6].Select
End Sub