JavaScript is not enabled!...Please enable javascript in your browser

جافا سكريبت غير ممكن! ... الرجاء تفعيل الجافا سكريبت في متصفحك.

-->
الصفحة الرئيسية

اكسيل VBA | ترتيب أوراق العمل من الاكبر الى الاصغر على أساس قيمة الخلية How To Sort Sheets By A Cell Value In Excel

 

 بسم الله الرحمن الرحيم

ترتيب أوراق العمل على أساس قيمة الخلية

اهلا بكم متابعى موقع عالم الاوفيس

ورد الينا سؤال من احد الاصدقاء يقول انة يريد فرز اوراق العمل  حسب اعلى قيمة مبيعات عندة للمناديب

بحيث ان اكبر قينة مبيعات للمندوب يكون هو اول شيت  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


 

  

لتحميل ملف العمل 

الاسمبريد إلكترونيرسالة