أكاديمية الصقر للتدريب

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
هانى على لا تميز خلال هذه الفترة-- لا تميز خلال هذه الفترة YasserKhalil الترقيم بشرط معين اكسيل اسئله واجابات


أهلا وسهلا بك زائرنا الكريم في أكاديمية الصقر للتدريب، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .





انشاء قوائم كومبوبوكس معتمده على بعضها لكن على قائمة واحدة فقط

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


موضوع مغلق


08-03-2022 11:19 صباحا
احمد شريف
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-10-2019
رقم العضوية : 15301
المشاركات : 85
الجنس : ذكر
تاريخ الميلاد : 5-2-1973
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 105
 offline 

السلام عليكم الاستاذة الكرام 

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

توضيح المقصود من ذلك   ... الثلاث قوائم هم 

 line

ship

port

 اريد ان تعتمد ال ship , port بيانتها من ال line

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

البيانات الخاصة ب الخط الملاحى و السفن والموانئ موجودة فى شيت 3 

 من العمود c الى العمود i خاص بالقوائم المنسدلة العادية 

 ومن العمود k الى u هو قابل للامتداد اكثر من u لآضافة ملاحية اخرى اى مطاطية خاص بالكومبوكس الذى أنشاته فى اليوزر فورم

 نجحت فى تنفيذ قائمة واحدة فقط تعتمد على ال قائمة line وهى ship  ...والاخرى لم استطع تنفذيها وهى قائمة port وتستمد بيانتها من قائمة line ايضا

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

 مرفق ملف العمل  لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب
 
 
  ساحة-الصادر.xlsm   تحميل xlsm مرات التحميل :(5)
الحجم :(70.043) KB



أفضل إجابة مقدمة من hassona229 وهي:
وعليكم السلام ورحمة الله وبركاته 
عدل اسم الكومبوبوكس الخاص بال line
الى combobox1
وال ship وال port
Combobox2 و combobox3
وال
size وال type
combobox4 و Combobox5

ثم ضع هذا الكود في اليوزرفورم

Dim AData, BData, wsSource As Worksheet, ComboBoxData
Private Sub UserForm_Initialize()
    Dim S As String, I As Long, SS As String
    Set wsSource = ThisWorkbook.Worksheets("SHIP")
    AData = wsSource.Range("E3:F" & wsSource.Cells(Rows.Count, 5).End(xlUp).Row).Value
    AData = Application.Index(AData, Evaluate("ROW(1:" & UBound(AData, 1) & ")"), [{1,2}])
    BData = wsSource.Range("H3:I" & wsSource.Cells(Rows.Count, 8).End(xlUp).Row).Value
    BData = Application.Index(BData, Evaluate("ROW(1:" & UBound(BData, 1) & ")"), [{1,2}])
    For I = 1 To UBound(AData)
        If InStr(S & ",", "," & AData(I, 1) & ",") = 0 Then S = S & "," & AData(I, 1)
    Next I
    For I = 1 To UBound(BData)
        If InStr(SS & ",", "," & BData(I, 1) & ",") = 0 Then SS = SS & "," & BData(I, 1)
    Next I
    For I = 1 To 5
        Controls("ComboBox" & I).Clear
    Next I
    With Controls("ComboBox1")
        .List = Split(Mid(S, 2), ",")
        .ListIndex = -1
    End With
    ComboBox4.List = wsSource.Range("K3:K" & wsSource.Cells(Rows.Count, 11).End(xlUp).Row).Value
    ComboBox5.List = wsSource.Range("L3:L" & wsSource.Cells(Rows.Count, 12).End(xlUp).Row).Value
End Sub

Private Sub ComboBox1_Change()
    Dim n As Long
    For n = 2 To 3
        Controls("ComboBox" & n).Clear
    Next n
    For n = 4 To 5
        Controls("ComboBox" & n).Value = ""
    Next n
    Call HandleComboBox(1)
    Call HandleComboBox(2)
End Sub
Private Sub HandleComboBox(I As Long)
    If Controls("ComboBox" & 1).ListIndex > -1 Then
        Dim S As String, II As Long, M As Long
        ComboBoxData = IIf(I = 1, AData, BData)
        For M = 1 To UBound(ComboBoxData)
            For II = 1 To 1
                If ComboBoxData(M, II) <> Controls("ComboBox" & II).Value Then Exit For
            Next II
            If II = 1 + 1 And InStr(S & ",", "," & ComboBoxData(M, II) & ",") = 0 Then S = S & "," & ComboBoxData(M, II)
        Next M
        Controls("ComboBox" & I + 1).List = Split(Mid(S, 2), ",")
    End If
End Sub

 
عرض الإجابة




10-03-2022 06:40 مساء
مشاهدة مشاركة منفردة [1]
hassona229
مشرف عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2018
رقم العضوية : 9257
المشاركات : 798
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-9-1980
يتابعهم : 0
يتابعونه : 10
قوة السمعة : 4030
عدد الإجابات: 110
 offline 
look/images/icons/i1.gif انشاء قوائم كومبوبوكس معتمده على بعضها لكن على قائمة واحدة فقط
وعليكم السلام ورحمة الله وبركاته 
عدل اسم الكومبوبوكس الخاص بال line
الى combobox1
وال ship وال port
Combobox2 و combobox3
وال
size وال type
combobox4 و Combobox5

ثم ضع هذا الكود في اليوزرفورم

Dim AData, BData, wsSource As Worksheet, ComboBoxData
Private Sub UserForm_Initialize()
    Dim S As String, I As Long, SS As String
    Set wsSource = ThisWorkbook.Worksheets("SHIP")
    AData = wsSource.Range("E3:F" & wsSource.Cells(Rows.Count, 5).End(xlUp).Row).Value
    AData = Application.Index(AData, Evaluate("ROW(1:" & UBound(AData, 1) & ")"), [{1,2}])
    BData = wsSource.Range("H3:I" & wsSource.Cells(Rows.Count, 8).End(xlUp).Row).Value
    BData = Application.Index(BData, Evaluate("ROW(1:" & UBound(BData, 1) & ")"), [{1,2}])
    For I = 1 To UBound(AData)
        If InStr(S & ",", "," & AData(I, 1) & ",") = 0 Then S = S & "," & AData(I, 1)
    Next I
    For I = 1 To UBound(BData)
        If InStr(SS & ",", "," & BData(I, 1) & ",") = 0 Then SS = SS & "," & BData(I, 1)
    Next I
    For I = 1 To 5
        Controls("ComboBox" & I).Clear
    Next I
    With Controls("ComboBox1")
        .List = Split(Mid(S, 2), ",")
        .ListIndex = -1
    End With
    ComboBox4.List = wsSource.Range("K3:K" & wsSource.Cells(Rows.Count, 11).End(xlUp).Row).Value
    ComboBox5.List = wsSource.Range("L3:L" & wsSource.Cells(Rows.Count, 12).End(xlUp).Row).Value
End Sub

Private Sub ComboBox1_Change()
    Dim n As Long
    For n = 2 To 3
        Controls("ComboBox" & n).Clear
    Next n
    For n = 4 To 5
        Controls("ComboBox" & n).Value = ""
    Next n
    Call HandleComboBox(1)
    Call HandleComboBox(2)
End Sub
Private Sub HandleComboBox(I As Long)
    If Controls("ComboBox" & 1).ListIndex > -1 Then
        Dim S As String, II As Long, M As Long
        ComboBoxData = IIf(I = 1, AData, BData)
        For M = 1 To UBound(ComboBoxData)
            For II = 1 To 1
                If ComboBoxData(M, II) <> Controls("ComboBox" & II).Value Then Exit For
            Next II
            If II = 1 + 1 And InStr(S & ",", "," & ComboBoxData(M, II) & ",") = 0 Then S = S & "," & ComboBoxData(M, II)
        Next M
        Controls("ComboBox" & I + 1).List = Split(Mid(S, 2), ",")
    End If
End Sub

 

11-03-2022 08:32 مساء
مشاهدة مشاركة منفردة [2]
احمد شريف
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-10-2019
رقم العضوية : 15301
المشاركات : 85
الجنس : ذكر
تاريخ الميلاد : 5-2-1973
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 105
 offline 
look/images/icons/i1.gif انشاء قوائم كومبوبوكس معتمده على بعضها لكن على قائمة واحدة فقط

جزاك الله كل خير استاذ حسونه على هذا الكود الرائع 



12-03-2022 11:00 صباحا
مشاهدة مشاركة منفردة [3]
hassona229
مشرف عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2018
رقم العضوية : 9257
المشاركات : 798
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-9-1980
يتابعهم : 0
يتابعونه : 10
قوة السمعة : 4030
عدد الإجابات: 110
 offline 
look/images/icons/i1.gif انشاء قوائم كومبوبوكس معتمده على بعضها لكن على قائمة واحدة فقط
الحمد لله الذي بنعمته تتم الصالحات 
الشكر موصول لصاحب الكود استاذنا الغالى ياسر خليل ابو البراء



الكلمات الدلالية
انشاء ، قوائم ، كومبوبوكس ، معتمده ، بعضها ، قائمة ، واحدة ،


 










اخلاء مسئولية: يخلى منتدى أكاديمية الصقر للتدريب مسئوليته عن اى مواضيع او مشاركات تندرج داخل الموقع ويحثكم على التواصل معنا ان كانت هناك اى إنتهاكات تتضمن اى انتهاك لحقوق الملكية الفكرية او الادبية لاى جهة - بالتواصل معنا من خلال نموذج مراسلة الإدارة .وسيتم اتخاذ الاجراءات اللازمة.
سياسة النشر: التعليقات المنشورة لا تعبر عن رأي منتدى أكاديمية الصقر للتدريب ولا نتحمل أي مسؤولية قانونية حيال ذلك ويتحمل كاتبها مسؤولية النشر.

الساعة الآن 08:31 صباحا