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

عمل Combobox على الفورم مرتبة و غير مكررة


إذهب إلى أفضل إجابة Solved by ياسر خليل أبو البراء,

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

حل رائع أخى يستاهل ألف شكر

ولكن أخى اريد تطبيق ذلك على combobox واحدة وهى الخاصة ب     Customer Name  فقط 

وشكرا مرة أخرى أخى

 

 

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

أخي الغالي أحمد الشيخ (البرنس)

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

 

 

Unique Sorted Combox On UserForm V2.rar

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

بعد أذن استاذى الحبيب 

ياسر خليل

من باب اثراء الموضوع والتنوع

جرب المرفق ربما يلبى طلبك تم التطبيق فقط على Customer Name كما طلبت فى المشاركة 4

تقبل تحياتى

Customers_Form.zip

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

شكرا اخى ياسر خليل

ولكنى أريد كود Combobox الخاص ب Customer Name فقط لأنى أريد تطبيق الفكرة على ملفات أخرى

وشكرا مرة أخرى أخى

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

  • أفضل إجابة

أخي الحبيب ياسر إليك الملف التالي (لو كنت وضحت من الأول كنت لاقيت الحل من غير ما نروح للعم Jindon ...)

جرب الملف التالي واستخدامه سهل إن شاء الله

 

Unique Sorted Combox On UserForm V3.rar

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

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

بارك الله فيك وجزاك الله خير الجزاء

هل راجعت ترتيب الأسماء في ملفك ؟ الترتيب غير صحيح على ما أعتقد

تقبل تحياتي

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

بالنسبة لحل أ/الصقر ليس المطلوب 

لأنى لا أريد ترتيب البيانات نفسها ، أريد فقط ترتيب البيانات الموجودة فى الكمبوبوكسCustomer Name

و شكرا اخى ياسر خليل على حلك الرائع

ولكن لى طلب أرجو شرح الكود على السريع

وشكراً مرة أخرى

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

أخي الحبيب ياسر الشيخ

أعتذر عن التأخير في الرد حيث أنني كنت مشغول حين طلبت شرح الكود .. ونسيت بسبب الزهايمر

هذا شرح متواضع حسب فهمي البسيط للمصفوفات حيث انني لست خبيراً في التعامل مع المصفوفات

Private Sub UserForm_Initialize()
'تعريف المتغيرات
    Dim A, E
    
'مسح محتويات الكومبوبوكس
    ComboBox2.Clear
    
'[Sheet1] بدء التعامل مع ورقة العمل المسماة برمجياً
    With Sheet1
'ليحمل قيم النطاق في العمود الثاني أي أنها تعتبر مصفوفة بكل القيم في هذا النطاق [A] تعيين قيمة للمتغير
        A = .Range("B2", .Range("B" & Rows.Count).End(xlUp)).value
    End With
    
'بدء التعامل مع المصفوفات
        With CreateObject("System.Collections.ArrayList")
'[Aِ] من عناصر المصفوفة [E] عمل حلقة تكرارية لكل عنصر
            For Each E In A
'إذا كان العنصر لا يساوي فراغ ولا يوجد عنصر مماثل في المصفوفة أي يتم التعامل مع القيم الفريدة
                If (E <> "") * (Not .Contains(CStr(E))) Then
'يتم إضافة العنصر إلى المصفوفة الجديدة التي تحتوي على قيم فريدة غير مكررة
                    .Add CStr(E)
                End If
            Next
'ترتيب عناصر المصفوفة الجديدة
            .Sort
'إضافة عناصر المصفوفة الجديدة للكومبوبوكس
            ComboBox2.List = .ToArray
        End With
End Sub

تقبل تحياتي

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

الحمد لله أخي الحبيب ياسر الشيخ (البرنس) أن تم المطلوب على خير

ومشكور على إظهار الموضوع مجاب ومنتهي (هذا يريح نفسياً)

تقبل ودي وتحياتي

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

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