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

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


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





أريد ربط 3 listbox كل واحدة بشيت مختلف

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



05-05-2020 03:03 صباحا
memo20067
عضو
معلومات الكاتب ▼
تاريخ الإنضمام : 03-05-2020
رقم العضوية : 19079
المشاركات : 5
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 13-9-1988
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 20
موقعي : زيارة موقعي
 offline 

السلام عليكم ورحمة الله وبركاته
بعد الصلاة والسلام على سيدنا محمد أشرف الخلق.

في ملف مرفق للمثال علي ما اريد وهو كالأتي:
  • يوجد بالملف userform الخاصة بعمل فاتورة واضافتها فى شيت الفواتير وفي اليوزرفورم ده 3 listbox أول واحده عاوز يظهر فيها أسماء الأصناف فقط من شيت الأصناف وعند الضغط على اسم صنف يظهر في ال textbox الخاص بالصنف والtextbox الخاص بالعدد عند كتابة عدد الصنف وأضغط على زر إضافة يتم إضافة إسم الصنف والعدد إلى listbox3 مع إمكانية جلب سعر الصنف المحدد وضربه فى العدد واظهار الناتج فى العمود الثالث لل listbox نفسها؛ أما listbox3 محتاج يظهر فيها تواريخ الفواتير السابقة عند اختيار اسم المورد فى combobox وعند الضغط على تاريخ الفاتورة يعرضلي بيانات الفاتورة فى listbox3.
وجزاكم الله خيراً 
 
 
  اختبار.zip   تحميل zip مرات التحميل :(4)
الحجم :(37.242) KB


05-05-2020 10:14 صباحا
مشاهدة مشاركة منفردة [1]
YasserKhalil
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10444
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 24
يتابعهم : 1
يتابعونه : 535
قوة السمعة : 36522
عدد الإجابات: 254
 offline 
look/images/icons/i1.gif أريد ربط 3 listbox كل واحدة بشيت مختلف
وعليكم السلام أخي الكريم (.........)
يرجى مراعاة أن يكون الشرح والوصف بمسميات الإكسيل ولغة الإكسيل ، فأنا أو غيري قد لا نفهم طبيعة عملك ، ولكن نجتمع سوياً في فهم لغة الإكسيل (ورقة عمل - نطاق - خلية - فورم كذا - تكست بوكس 1 - ليست بوكس 2 وهكذا)

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

أعتذرإن كنت قد أطلت عليك ، ولكني أحببت أن أنوه لتلك النقاط

>> في الملف المرفق يوجد 3 يوزر فورم ، والفورم المطلوب العمل عليه هو الفورم المسمى Invoice ولن أقول فورم الفواتير (إنما أسمي الفورم باسمه لتتضح الصورة للأعضاء الذي يريدون متابعة الموضوع) ، يوجد ListBox1 ، والمطلوب تعبئة الليست بوكس بالأصناف الموجودة في ورقة العمل Items في العمود الثاني ، وعند النقر عليها وتحديدها يتم وضع اسم الصنف في TextBox1 ويتم وضع العدد الكلي في TextBox2

>> إليك الكود التالي الذي يقوم بالمطلوب السابق

Dim wsItems As Worksheet

Private Sub UserForm_Initialize()
    Dim lr As Long
    Set wsItems = ThisWorkbook.Worksheets("Items")
    lr = wsItems.Cells(Rows.Count, 2).End(xlUp).Row
    With Me.ListBox1
        .ColumnCount = 2
        .ColumnWidths = "150,0"
        .List = wsItems.Range("B3:C" & lr).Value
    End With
End Sub

Private Sub ListBox1_Click()
    Dim i As Long
    With Me.ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                TextBox2.Value = .List(i, 0)
                TextBox3.Value = .List(i, 1)
                Exit For
            End If
        Next i
    End With
End Sub


>> شرح الكود:
أول سطر بالكود في أول موديول الفورم Invoice هو جملة Option Explicit وتستخدم لإجبار المبرمج على استخدام المتغيرات والإعلان عنها بشكل صحيح ، وهذه عادة جيدة يجب أن تتعود عليها.

في السطر الثاني يتم الإعلان عن متغير wsItems ليشير إلى ورقة العمل Items التي بها الأصناف وقد جعلت المتغير في أول الموديول ليكون عام أي يتم تعيين قيمة للمتغير مرة واحدة عند بدء تشغيل الفورم ، ويظل محتفظ بقيمته لاستخدامه في إجراءات فرعية أخرى.

الجزء الأول من الكود خاص ببدء تشغيل الفورم حيث يتم تعيين قيمة للمتغير wsItems ليشير لورقة العمل Items ثم معرفة رقم آخر صف به بيانات اعتماداً على العمود الثاني وتخزين الرقم في متغير باسم lr ، ثم يتم ضبط بعض الخصائص لليست بوكس وهنا عدد الأعمدة 2 ثم عرض الأعمدة 150 وصفر ، والصفر هنا لأخفاء العمود الثاني ، ليظهر فقط العمود الأول الخاص بالأصناف أما عمود العدد الكلي فمخفي ولكن نحتاجه فيما بعد ليظهر لنا في الـ TextBox2
وأخيراً يتم تعبئة الليس بوكس بالأصناف والعدد الكلي من ورقة العمل المسماة Items

الجزء الثاني في الكود يخص التعامل عند النقر في الـ ListBox1 ، فعند اختيار صنف يتم عمل حلقة تكرارية على الأصناف الموجودة في الليست بوكس ، فإذا كان العنصر محدداً يتم التعامل معه بهذا الشكل:
يتم وضع قيمة اسم الصنف الموجودة في العمود الأول بالليست بوكس داخل التكست بوكس رقم 1 (اسم الصنف)
يتم وضع قيمة العدد الكلي الموجودة في العمود الثاني بالليست بوكس داخل التكست بوكس رقم 2 (العدد الكلي) .. وهو العمود المخفي والذي عرضه يساوي صفر

ytxxp_HQY4SdLsJd
 
 
 





الكلمات الدلالية
أريد ، listbox ، واحدة ، بشيت ، مختلف ،


 










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

الساعة الآن 12:10 صباحا