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

حل مشكلة فى ابجدة الأسماء الذكور أولا ـ الإناث أولا


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

أعضاء المنتدى الكرام ... السلام عليكم ورحمة الله وبركاته

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

المشكلة :  ( مرفق ملف يوضح المشكلة )

عند ( أبجدة الأسماء الذكور أولاً )  ..الكود شغال 100 %  ...

أما عند ( أبجدة الأسماء الإناث أولاً )  ..الكود شغال  ولكن تأتى الأسماء مرتبة بداية من أخر الشيت  من أسفل لأعلى وليس بداية من الخلية (  D18) كما بأبجدة الذكور

مع العلم أننى قد استخدمت نفس الكود في برامج أخرى وكان شغال 100 % ولكن هذه المرة لا أعرف سبب المشكلة

يعنى الخلاصة أريد ابجدة الأسماء سواء (الذكور أولا ) أو (الإناث أولا ) يبدأ الترتيب في الخلية (  D18)

ولكم وافر الشكر والاحترام

ترتيب التلاميذ حسب النوع.rar

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

أخي الكريم محمد الدسوقي

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

أحدهما للذكور والآخر للإناث (اكتشف بنفسك) .. والفرق بين الكودين بسيط جداً جداً حوالي حرفين (اكتشف بنفسك)

هذا هو شعار المرحلة القادمة (اكتشف بنفسك)

الكود من هنا

تقبل تحياتي

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

33 دقائق مضت, ياسر خليل أبو البراء said:

Sub Sort_Female() Dim LR As Long LR = Range("D" & Rows.Count).End(xlUp).Row Range("C18:N" & LR).Sort Key1:=Range("J18:J" & LR), Order1:=2, Header:=xlNo End Sub

شكرا للاستاذ ياسر

42 دقائق مضت, ياسر خليل أبو البراء said:

Sub Sort_Male() Dim LR As Long LR = Range("D" & Rows.Count).End(xlUp).Row Range("C18:N" & LR).Sort Key1:=Range("J18:J" & LR), Order1:=1, Header:=xlNo End Sub

شكرا للاستاذ ياسر

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

بارك الله فيك أخي الكريم اين بنها

ولكن الأرقام كما غيرتها غير صحيحة .. الرقم 1 هنا 1 في الكودين ، وهو مرتبط بالعمود الذي يتم على أساسه الترتيب

حتى إذا أردنا إضافة عمود آخر قمنا بإضافة مفتاح جديد Key2 وترتيب جديد Order2 ...

راجع حلقات افتح الباب وستكتشف بنفسك (الحلقة الثالثة عشرة)

وعشان متدورش كتير إليك الرابط التالي

من هنا

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

أستاذى ومعلمى الفاضل الأستاذ / ياسر خليل أبو البراء

كالعادة تعجز كلمات الشكر والامتنان على أن تعبر لكم على مدى شكرى وامتنانى لكم

وليس بوسعى إلا أن أدعو الله ان يزيدك من علمه الذى طالما لا تبخل به على امثالنا

وأنه من دواعى سرورى أن أكون عضوًا فى مدرستكم صرح العلم والخبراء فى هذا المجال

و جزاكم الله خيرا

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

وجزيت خيراً أخي الغالي محمد الدسوقي بمثل ما دعوت لنا

ومشكور على كلماتك الطيبة وشعورك النبيل ..

والحمد لله أن تم المطلوب على خير :fff:

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

الأخ الكريمالأستاذ / محمد الدسوقى

السلام عليكم

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

Sub Male_Abgada()
Application.ScreenUpdating = False
last = Cells(Rows.Count, "d").End(xlUp).Row
Range("C18:N" & last).Sort Key1:=Range("D18"), Order1:=xlAscending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Range("C18:N" & last).Sort Key1:=Range("J18"), Order1:=xlDescending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        Application.ScreenUpdating = True
    
Range("A1").Select

End Sub
Sub Female_Abgada()
Application.ScreenUpdating = False
last = Cells(Rows.Count, "d").End(xlUp).Row
Range("C18:N" & last).Sort Key1:=Range("D18"), Order1:=xlAscending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Range("C18:N" & last).Sort Key1:=Range("J18"), Order1:=xlAscending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        Application.ScreenUpdating = True
    
Range("A1").Select

End Sub

 

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

Sub Sort_Male()
    Dim LR As Long
    LR = Range("D" & Rows.Count).End(xlUp).Row
    Range("C18:N" & LR).Sort Key1:=Range("J18:J" & LR), Order1:=xlDescending, Header:=xlNo
End Sub
xlDescending

ارجو من الساده المحترمين وضع الرقم 1 مره ومره اخرى الرقم 2

 الرقم يؤدي نفس الكلمه 

في 9/1/2016 at 02:27, ياسر خليل أبو البراء said:

xlAscending

تساوي الرقم 1

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

أخي الكريم ابن بنها

هوناً علينا .. أعتذر عن الخطأ الذي بدر مني ، فقد رأيت الأرقام في مشاركتك بجوار كلمة Order .. وعلى هذا الأساس قمت بالرد (العتب على النظر !!)

بالفعل لديك حق ، يمكن استخدام الرقم 1 بدلاً من كلمة xlAscending ، والرقم 2 بدلاً من xlDesciending ... أي أن كلاهما يؤدي نفس الغرض

 

بارك الله فيك وجزيت خيراً على الإضافة

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

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