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

كومبكس1 يستدعي كومبكس2 وهكذا الى اربعة كومبكس


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

جزاكم الله خيراً أخي الحبيب رجب على هذا الحل الرائع

إليك حل آخر إثراءً للموضوع

ضع الكود التالي في حدث الفورم

Private Sub UserForm_Initialize()
    Dim Rng As Range
    Dim Dn As Range
    Dim Dic As Object
    With Sheets("Sheet1")
        Set Rng = .Range(.Range("C6"), .Range("C" & Rows.Count).End(xlUp))
    End With
    Set Dic = CreateObject("Scripting.Dictionary")
    Dic.CompareMode = vbTextCompare
    For Each Dn In Rng: Dic(Dn.Value) = Empty: Next
    ComboBox1.List = Application.Transpose(Dic.keys)
End Sub

Private Sub ComboBox1_Click()
    Call cValues(ComboBox1.Value, ComboBox2, 4) '4 Is Column Number
End Sub

Private Sub ComboBox2_Click()
    Call cValues(ComboBox2.Value, ComboBox3, 5) '5 Is Column Number
End Sub

Sub cValues(Txt As String, Obj As Object, Col As Integer)
    Dim Dn As Range
    Dim Rng As Range
    Dim Dic As Object

    Obj.Clear
    With Sheets("Sheet1")
        Set Rng = .Range(.Cells(6, Col), .Cells(Rows.Count, Col).End(xlUp))
    End With

    Set Dic = CreateObject("Scripting.Dictionary")
    Dic.CompareMode = 1

    For Each Dn In Rng
        If Dn.Offset(, -1).Value = Txt Then
            If Not Dic.exists(Dn.Value) Then
                Dic(Dn.Value) = Empty
            End If
        End If
    Next Dn
    Obj.List = Application.Transpose(Dic.keys)
End Sub

قمت بإعادة تسمية الكومبوبوكس .. بدلاً من Sanf استخدمت الاسم الافتراضي ComboBox1 وبدلاً من Nawa استخدمت ComboBox2 والثالث جعلته بدلاً من ComboBox1 جعلته ComboBox3 .. كما قمت بإزالة الـ Row Source  لأول كومبوبوكس ..

تم الاستغناء عن الأكواد في حدث ورقة العمل .. فقط الكود في حدث الفورم هو الذي يقوم بالمهمة كاملة إن شاء الله

أرجو أن يكون الملف مقبول لديكم

تقبل تحياتي

 

Dependent ComboBox On UserForm YasserKhalil.rar

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

8 ساعات مضت, كاسر الامواج said:

تكملة

 

في 2/15/2016 at 01:13, كاسر الامواج said:

اممتاز جدأ جزاك الله خير لم يكتمل الاجراء  حيث لم يستدعى العمود F  في TextBox_mycode

السلام عليكم ارجو تكملة 

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

السلام عليكم

أخى الحبيب / ياسر خليل

أخى الفاضل / كاسر الأمواج

بالنسبة للكود الرائع الخاص بأخى الحبيب ياسر

فيه نقطة واحدة وهى انه عند الاختيار من ComboBox2 يضع فى ComboBox3 كل الخلايا من العمود E  التى تقابل الاختيار

الموجود للـ ComboBox2  ( وليكن مستشفيات )  مثلا  بغض النظر عن الاختيار الموجود فى ComboBox1 الخاص باسم المحافظة

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

وذلك بسبب الكود cValues

ولذلك عملت تعديل بسيط على الكود الرائع وسميته  cValuesR  لتدارك تلك النقطة الخاصة بـ ComboBox3

Sub cValuesR(Txt1 As String, Txt2 As String, Obj As Object, Col As Integer)
Dim Dn As Range
    Dim Rng As Range
    Dim Dic As Object

    Obj.Clear
    With Sheets("Sheet1")
        Set Rng = .Range(.Cells(6, Col), .Cells(Rows.Count, Col).End(xlUp))
    End With

    Set Dic = CreateObject("Scripting.Dictionary")
    Dic.CompareMode = 1

    For Each Dn In Rng
        If Dn.Offset(, -1).Value = Txt1 And Dn.Offset(, -2).Value = Txt2 Then
            If Not Dic.exists(Dn.Value) Then
                Dic(Dn.Value) = Empty
            End If
        End If
    Next Dn
    Obj.List = Application.Transpose(Dic.keys)
End Sub

 

 

 

Dependent ComboBox On UserForm YasserKhalil.rar

تم تعديل بواسطه رجب جاويش
  • Like 3
رابط هذا التعليق
شارك

بارك الله فيك وجزاك الله كل خير أخي ومعلمي المتميز رجب جاويش

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

تقبل وافر تقديري واحترامي

 

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

أخى الحبيب /  ياسر خليل

جزاك الله كل خير على هذه الكلمات الطيبة

ورفع الله قدرك لهذا التواضع

فنحن جميعا فى المنتدى نتعلم من ابداعك الذى لا ينقطع يوميا

 

 

 

 

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

السلام عليكم

 استاذنا الحبيب / ياسر خليل            ربنا يكرمك   .. ابداع مستمر  :clapping:

تحياتى للاستاذ القدير / رجب جاويش

اخى الكريم انصحك بتفقد الرابط التالى حيث يتناول شرح الكود المستخدم    .. تقبلوا مرورى وتحياتى

http://www.officena.net/ib/topic/63175-تعديل-في-الأكواد-تعبئة-الكومبو-بقيم-فريدة-باستخدام-scriptingdictionary/?_fromLogout=1

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information