السلام عليكم و رحمة الله وبركاته
اخي تعتمد فكرة الكود على تسمية النطاقات
INPUT =Sheet1!$A$1:$F$8
ORDER =Sheet2!$G$1:$H$2
OUTPUT =Sheet2!$E$4:$J$25
نطاق المدخلات
نطاق الشرط
نطاق المخرجات
وتوضع تسمية هذه النطاقات في الكود التالي
Range("input").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"ORDER"), CopyToRange:=Range("output"), Unique:=False
هذه كامل الفكرة
ولها ملحقات في طريقة التعامل مع الكود
مثلا
اذا ادخلت في الإسم مح*
وضغط بحث تظهر لك كل الأسماء التي تبدأ بـ مح مثل محمد / محمود وهكذا