مشكور اخي الطريقة التي استخدمتها انك نسخت بداية الجدول ونهاية الجدول في ورقة الطباعة وجعلتها ثابتة اليس كذلك
وانك قمت بتسمية نطاق
لكن ياريت تفسرلي هذا الجزء من الكود X = ((ws2.Cells(2, 24) - 1) * 3) + 10
Set srng = ws2.Range("a9:v38")
srng.Clear
Set srng2 = ws.Cells(X, 1).Resize(29, 22)