اذهب الي المحتوي
أوفيسنا

كود ترتيب حسب القيم محددة


الردود الموصى بها

 مساء الخير شباب ..

لقد تناولت هذا الموضوع سابقا ً وتم أجابته من الأستاذ الغالي  / ياسر خليل أبو البراء  الله يجزأه الخير  

أخر كود في الرابط التالي :

http://www.officena.net/ib/topic/63049-ترتيب-الاسماء-حسب-القيم-المختارة/

-----------------------------------------------------------------------------------------------------

وسؤالي هو : هل هناك حل  لمشكلة توقف الكود ؟

 

 

تم تعديل بواسطه محمد الزريعي
رابط هذا التعليق
شارك

أخي الكريم محمد

لابد من ملف مرفق معبر عن الملف الأصلي حتى تكون النتائج صحيحة في حالة التجربة

ارفق الملف الأصلي .. لنحاول من جديد في موضوعك

رابط هذا التعليق
شارك

أخي الحبيب سليم

أخونا محمد لا يريد استخدام هذه الخاصية حيث تم معالجة الأمر من قبل في الرابط في أول الموضوع باستخدام هذه الخاصية Custom List ..

حيث أنه واجه أخطاء في حالة أن القائمة المخصصة كبيرة الحجم ..

يمكنك الإطلاع على الموضوع في الرابط الأول لمزيد من التفاصيل ..

تقبل تحياتي

images.jpg.734cb3888cc257e7b9f143158de2d

رابط هذا التعليق
شارك

بعد تحميل المرفق : ظهر خطاء من اول سطر اخي العزيز سليم

وكما قال الأستاذ القدير ياسر خليل ،، تم مناقشة  الكود سابقاً .. ولكنه يقف عند حد معين ..

أتمنى ان نجد للكود السابق حل .

تحياتي لكم

رابط هذا التعليق
شارك

أخي الكريم محمد الزريعي

الملف المرفق به أخطاء كثيرة سينتج عنها عدم الدقة في الترتيب ..

أولاً : يوجد مسافات زائدة في البيانات ..لذا أنصح أولاً أن ترفق الملف الأصلي بعد استخدام الدالة Trim لإزالة المسافات الزائدة في الملف

ببساطة في عمود بعيد عن جدول البيانات اكتب مثلاً في الخلية G5 المعادلة التالية بهذا الشكل

=TRIM(B5)

ثم اسحب المعادلة لليسار بمقدار 3 أعمدة لتشمل جميع البيانات

ثم قم بسحب المعادلات إلى آخر صف به بيانات ثم قوم بنسخ النطاق الذي به المعادلات كليك يمين ثم نسخ وروح للخلية B5 واعمل كليك يمين ثم لصق خاص ثم انسخ القيم ..

كرر نفس الكلام مع ورقة العمل المسماة h حيث يراعى أن يكون العمود الثاني والخامس اللذان سيحتويان القائمة المخصصة بدون مسافات زائدة

 

ثانياً :لابد من مراعاة أن تكون الكلمة متشابهة في الكتابة أي أن كلمة الراجحى غير كلمة الراجحي .. لاحظ آخر حرف في الكلمة ى غير ي

أفضل إرفاق ملفك الأصلي وليس ملف نموذج عن الملف الأصلي ..حيث أنني لا أدري هل سيعمل الكود مع ملفك الأصلي أم أنه ستقابلك نفس المشكلة التي قابلتك مسبقاً .. فلابد من التجربة قبل إرفاق الكود حتى لا أضيع وقتك ..

ارفق ملفك الأصلي وإذا كنت تخشى أن البيانات هامة في الملف الأصلي ابعث به في رسالة خاصة بعد أن تقوم برفعه على موقع رفع خارجي

تقبل تحياتي

images.jpg.bc14a6384b947301fc6ae0360a988

 

رابط هذا التعليق
شارك

أخي الكريم محمد الزريعي

اطلعت على الملف وما زال هناك مسافات زائدة في بعض الخلايا الخاصة بأسماء البنوك في ورقة التمويل ..

عموماً إليك الحل التالي وإن شاء الله يفي بالغرض ويؤدي المطلوب

جرب الكود وستجد أن بعض النتائج غير صحيحة بسبب أن هناك مسافة زائدة

Sub CustomSort()
    Dim Sh As Worksheet, LR As Long
    Dim ws As Worksheet
    Set Sh = Sheets("التمويل")
    Set ws = Worksheets("h")
    LR = Sh.Cells(Rows.Count, 1).End(xlUp).Row
    
    With Sh.Sort
        .SortFields.Clear
        .SortFields.Add Sh.Range("K3"), CustomOrder:=SortItems(ws.Range("R2:R13"))
        .SortFields.Add Sh.Range("R3"), CustomOrder:=SortItems(ws.Range("O2:O12"))
        .SortFields.Add Key:=Sh.Range("Q3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
        .SetRange Sh.Range("A2:T" & LR)
        .Header = xlYes
        .Apply
    End With
End Sub

Function SortItems(rngSort As Range) As String
    Dim ArrSort() As Variant
    Dim I As Long
    
    ReDim ArrSort(1 To rngSort.Rows.Count)
    For I = 1 To UBound(ArrSort)
        ArrSort(I) = rngSort(I, 1)
    Next

    SortItems = Join(ArrSort, ",")
End Function

 

تقبل تحياتي

images.jpg.3ba41d227833fd255710aa8ae5620

الملف الاصلي بكامل الاكواد.rar

  • Like 1
رابط هذا التعليق
شارك

اخي العزيز ياسر خليل .. تم تجربة الكود الجديد  ،،  فوجته يقوم بترتيب عمود البنك فقط ،،

ويتجاهل عمود وضع المعاملة ..

ويتجاهل عمود  المدة

----------------------------------------------

أين أجد المسافة الزائدة ،، هل هي المسافة بين الأعمدة أو تقصد المسافة التي توجد في اكلمات .

أذا كانت المسافة بالكلمات فأنا اخذت نسخة من وضع المعاملة الي التمويل و لم أضيف شيء جديد .

-----------------------------------------------

 

 

رابط هذا التعليق
شارك

أخي الكريم محمد الزريعي

أنا متأكد تماماً من عمل الكود بنسة 100% .. المشكلة يبدو في البيانات ..

حاولت على ملفك ووجدت شيء غريب يحدث معي ربما تكون هي المرة الأولى التي تحدث معي هذه المشكلة ..

كنت أحاول إزالة المسافات الزائدة في الخلية الواحدة في ورقة العمل h ووجدت أنها محمية (يرجى ذكر كلمة السر) .. المهم ليست المشكلة في ذلك

المشكلة عند عمل دبل كليك داخل أي خلية في الخلايا التي أريد التعديل فيها أجد محتوى الخلية يختفي .. دخلت على أكواد حدث التغيير في ورقة العمل فلم أجد شيئاً أو كوداً يتحكم بالأمر ..

قمت بإزالة الأكواد الموجودة في حدث المصنف فلربما يكون فيها ما يتحكم بالأمر وحفظت الملف ورجعت فتحته ونفس المشكلة ...

كلما حاولت التعديل أو النقر المزدوج في خلية في الورقة h تختفي القيمة في الخلية ..

برجاء إرفاق كلمة الر لمعاودة المحاولة من جديد

 

رابط هذا التعليق
شارك

ملحوظة أخرى يجب أن تتطابق البيانات في عمود المعاملة مع العمود الذي يحتوي شروط الترتيب

مثلاً افراغ غير كلمة افراغ صوري ..الأمر مختلف ...

رابط هذا التعليق
شارك

اسف اخي الكريم / ياسر .. انا نسيت ما اعطيك كلمة المرور للحماية للورقة H  راحت من بالي والرقم السري هو 120

انا نسخت وضع المعاملة كما هو من  الورقة h الي ورقة التمويل ..

رابط هذا التعليق
شارك

أخي الكريم محمد الزريعي

كما أخبرتك أن البيانات بها مسافات زائدة .. اعمل دبل كليك في بعض الخلايا ستجد أن هناك مسافات في آخر الكلمة في بعض الأحيان مما يؤثر على عمل الكود

قمت باستخدام الدالة TRIM لإزالة المسافات ..في عمود بعيد ووضعت معادلات بسيطة ثم نسخت النتائج الجديدة ووضعتها مكان البيانات القديمة .. وكذلك الحال مع نطاقات الشروط في الورقة h ...

أمر آخر في منتهى الأهمية .. لابد من إدراج جميع الشروط المطلوبة في ورقة العمل h .. ليتحقق الهدف من الكود وهو الفرز والترتيب المخصص حسب الشروط في النطاق ..

لأنني لاحظت وجود كلمة افرغ مثلا وكلمة افراغ صوري ..سيتم التعامل مع كلمة افراغ فقط لأنها مدرجة في قائمة الشروط أما كلمة افراغ صوري فلن تتعامل نغفس المعاملة ..

صححت كلمة أدخال جديد وحذفت الهمزة لتصحيح الوضع وجعتلها "ادخال جديد" كما هو الحال مع معظم الخلايا ..

عموماً لابد كما ذكرت لك من تصحيح البيانات لتحصل على نتائج منضبطة .. وإليك الملف بعد إجراء بعض عمليات التصحيح على البيانات

تقبل تحياتي

الملف الاصلي بكامل الاكواد.rar

images.jpg.3f74e3630249872ec2ccffb805fb4

 

  • Like 1
رابط هذا التعليق
شارك

الأخ الكريم ياسر خليل ..  الحل جميل جداً ،، اعمالك بصراحة ممتازة .. ( تجيبها يمين تجيبها يسار تضبط ) والمميز فيك أنك تقدم المعلومة بكل بساطة ومختصرة .

( انت مالكش حل    :clapping: )  ماشاء الله عليك ..

اشكرك جزيل الشكر .. على ما تقدمة من خير في هذا الموقع ،  وباذن الله تجد الخير امامك أينما اتجهت .. 

 

  • Like 1
رابط هذا التعليق
شارك

أخي الحبيب محمد الزريعي

الحمد لله أن تم المطلوب على خير .. ومشكور على كلماتك الرقيقة في حقي

وأنا مثلي مثلكم تماماً مجرد متعلم يسعى باجتهاد هذا كل ما في الأمر ..

بارك الله فيك وجزيت خير الجزاء ، وإلى مزيد من موضوعاتك الشيقة والممتعة والمفيدة للجميع

تقبل تحياتي

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information