اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

الإخوة الكرام، هل هناك طريقة لترتيب قائمة أعلام فيها مثلا (محمد، علي، أبو شهبة، أم سلمة، ابن عباس) بحيث أتجاهل كلمة (أبو)، (أم)، (ابن) في الترتيب، فيأتي مثلا (أبو شهبة) في حرف (الشين) ، و(أم سلمة) في حرف (السين)، و(ابن عباس) في حرف (العين)؟

قام بنشر

السلام عليكم

اعتقد المطلوب سيكون اسهل كثيرا فى الاكسيل

و هناك بالفعل عدة مواضيع تطرقت الي تقسيم و الي ترتيب الاسماء بقسم الاكسيل ، فاستخدم خاصية البحث للوصول لها

قام بنشر

جزاكم الله خيرا أستاذ محمد على ردكم، لكني عملت هذا الماكرو، ونفع والحمد لله:

Sub ترتيبأعلام()
'
' ترتيبأعلام Macro
'
'
 Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Font.Color = wdColorRed
    With Selection.Find
        .Text = "^pابن "
        .Replacement.Text = "^pابن* "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^pأبو "
        .Replacement.Text = "^pأبو* "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^pأم "
        .Replacement.Text = "^pأم* "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        
     With Selection.Find
        .Text = "^pبنو "
        .Replacement.Text = "^pبنو* "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
         End With
    
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Font.Color = wdColorAutomatic
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = "^p*"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.WholeStory
    WordBasic.TextToTable ConvertFrom:=3, NumColumns:=2, NumRows:=11, _
        InitialColWidth:=wdAutoPosition, Format:=0, Apply:=1184, AutoFit:=0, _
        SetDefault:=0, Word8:=0, Style:="شبكة جدول"
    Selection.Sort ExcludeHeader:=False, FieldNumber:="عمود 2", SortFieldType _
        :=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, FieldNumber2 _
        :="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
        wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
        wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
        wdSortSeparateByCommas, SortColumn:=False, CaseSensitive:=False, _
        LanguageID:=wdArabicEgypt, SubFieldNumber:="فقرات", SubFieldNumber2:= _
        "فقرات", SubFieldNumber3:="فقرات"
    Selection.Sort BidiSort:=False, IgnoreThe:=True, IgnoreKashida:=False, _
        IgnoreDiacritics:=False, IgnoreHe:=False
    Selection.Rows.ConvertToText Separator:=wdSeparateByDefaultListSeparator, _
        NestedTables:=True
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "*"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
       
    End With
   
    Selection.Find.Execute Replace:=wdReplaceAll
   Selection.MoveUp Unit:=wdLine, Count:=1
End Sub

 

 

 

قام بنشر

جميل انك وصلت الي مبتغاك 😄

ما فهمته من الكود انك اعتمدت الاستبدال ثم بعد ذلك الترتيب لبيانات موجودة فى جدول معين ، و لم يتم ترتيبها كما هي

يرجى ارفاق ملف يه مثال مبسط للتطبيق لنجربه حيث يعتمد الجزء الثاني من الكود على بيانات الجدول

قام بنشر

هذا نموذج للقائمة اليمين قبل الترتيب، والأخرى بعد الترتيب، ونلاحظ فيها أن الكلمات المطلوب عدم اعتبارها في الترتيب ملونة باللون الأحمر:

محمد بن علي

أحمد بن محمد

أحمد بن محمد

أبو أسيد

سعيد بن المسيب

داود بن محمد

أبو أسيد

أم رويم

أم رويم

سعيد بن المسيب

ابن عباس

بنو سلمة

ابن شهاب

أم سلمة

بنو سلمة

ابن شهاب

أم هانئ

أبو صالح

بنو ضبة

بنو ضبة

داود بن محمد

ابن عباس

أبو صالح

محمد بن علي

أم سلمة

أم هانئ

قام بنشر (معدل)

الفكرة ببساطة: - أني حولت كل الكلمات المطلوبة الموجودة في بداية الفقرة إلى اللون الأحمر وجعلت بعدها *

                       - جعلت كل فقرة تلقائي قبلها *

                       - وبهذا أصبحت القائمة عبارة عن مقطعين يصلحان أن يكونا جدولا عند اعتبار علامة الجدولة هي (*)

                       - ظللت النص كله وحولت النص إلى جدول مع علامة الجدولة (*)

                       - فأصبح عندي عمودان أحدهما فيه (أبو، أم، ابن، بنو) والعمود الثاني فيه بقية الاسم الذي أوله هذه الكلمات، مع الكلمات الأخرى التي لا تبدأ بـ(أبو، أم، ابن، بنو)

                       - رتبت الجدول على العمود الثاني، وبهذا لم تدخل الكلمات المطلوبة في الترتيب.

                       - حولت مرة أخرى الجول إلى نص، فتكونت القائمة على الترتيب المطلوب.

ملحوظة: لا بد أن تكون علامة الجدولة المخزنة (*) لأن الورد قد يكون مخزنا فيه علامة أخرى، وهنا الماكرو لن يشتغل على الوجه المطلوب.

             كما يجب أن نجعل في أول الملف (إنتر) حتى تكون علامة فقرة.

تم تعديل بواسطه أبو عاصم المصري
  • 2 months later...
قام بنشر

السلام عليكم ورحمة الله وبركاته

يعطيك العافية على هذا الجهد الطيب، نسخت الكود وعند تشغيله لوَّن (أبو، ابن، بنو...) بالأحمر (مرفق)، وتم وضع نقطتان بآخر الفقرة.

لاطلاعكم لطفاً

Capture.JPG

  • 2 weeks later...
قام بنشر
في ‏٢٩‏/‏٠٢‏/‏٢٠٢٠ at 20:41, محمد طاهر said:

السلام عليكم

اعتقد المطلوب سيكون اسهل كثيرا فى الاكسيل

و هناك بالفعل عدة مواضيع تطرقت الي تقسيم و الي ترتيب الاسماء بقسم الاكسيل ، فاستخدم خاصية البحث للوصول لها

وعليكم السلام ورحمة الله وبركاته

ممكن نستفيد عن كيفية ترتيب الأسماء وتجاوز (أبو، ابن، بنو....)

مع الشكر

رمضان كريم

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