بسم الله الرحمن الرحيم
ترتيب أوراق العمل على أساس قيمة الخلية
اهلا بكم متابعى موقع عالم الاوفيس
ورد الينا سؤال من احد الاصدقاء يقول انة يريد فرز اوراق
العمل حسب اعلى قيمة مبيعات عندة للمناديب
بحيث ان اكبر قينة مبيعات للمندوب يكون هو اول شيت Sheets والاصغر بعدة وهكذا الى اقل قيمة يكون اخر شيت
فقد حاول ان ينفذ هذة الفكرة يدويا اخذ وقت كبير ومجهود ايضا كبير
فبالتالى لابد من ايجاد طريقة من خلال مكتبة اكواد اكسيل
Excel VBA لعمل هذة الطريقة
قدمت اكواد سابقة و طرقًا كثية يمكنك من خلالها فرز أوراق العمل في المصنف
الخاص بك استنادًا إلى اسم ورقة العمل. ماذا لو كنت تريد فرز أوراق العمل بناءً على
قيمة في خلية معينة من كل ورقة عمل Excel Sheets ،
مع ذلك؟ على سبيل المثال ، قد يكون لديك سلسلة من أوراق العمل التي تشترك في نفس التخطيط العام ، وتريد ترتيب أوراق العمل بناءً على القيمة الموجودة في الخلية B32 لكل ورقة عمل ( Sheet) .
الطريقة الوحيدة للتعامل مع هذا هي باستخدام كود VBA ماكرو. يحتاج
الكود الماكرو إلى التنقل خلال كل ورقة عمل
في المصنف ، من خلال فحص الخلية الرئيسية (B32 ) في
كل ورقة عمل من خلال حلقة تكرارية لمعرفة كيفية
مقارنتها.
إذا كانت قيمة الخلية
اكبر من ورقة العمل الحالية ، فيمكن عندئذٍ
نقل ورقة العمل التي تحتوي على القيمة الأقل.
لاحظ استخدام طريقة النقل ، والتي تقوم بالحركة الفعلية لأوراق
العمل. لا تهم أسماء أوراق العمل ، فموضعها فقط يعتمد على القيمة الموجودة في الخلية
B32 في كل ورقة عمل.
من خلال الكود التالى
Sub SortsheetsByCell()
Dim i As Integer
Dim j As Integer
For i = 1 To Worksheets.Count
For j = i To Worksheets.Count
If Worksheets(j).Range("H7") > Worksheets(i).Range("H7") Then
Worksheets(j).Move
Before:=Worksheets(i)
End If
Next
Next
End Sub