mahmoud nasr alhasany قام بنشر مايو 24 قام بنشر مايو 24 السلام عليكم ورحمة الله وبركاتة رجاء مساعدتى عندما اقوم بأختيار اسم المخزن يعرض كل الاصناف والاصناف المكررة بصلاحياتها المختلفة فى الليست بوكس 2 وهى خاصة باالمخزون ولاكن عندما اقوم بأختيار كود صنف معين من المفروض ان يعرض كل الصلاحيات المختلفة بهذا الصنف والغاء كل الاصناف فى الليست بوكس2 الخاصة بهذا المخزن ولاكن لايعمل ويكتفى فقط بعرض هذا الكود وذلك لخصم الكمية المتاحة للتاريخ الاقرب مع العلم يوجد كميات اخرى لهذا الصنف هذا هو الكود المفروض يعرض مايطلبه كود الصنف فقط Me.CB_Pièce If Me.ComboBox1.ListIndex = 0 Or Me.CB_Pièce.ListIndex = 0 _ Or FlgExit = True Then Exit Sub Call Charge_ListBox ' Copy of sell-the-first-quantity-.xlsm
mahmoud nasr alhasany قام بنشر مايو 25 الكاتب قام بنشر مايو 25 لو رايت الصورة المدرجة ستجدها تعرض كل الاصناف بصلاحيتها المختلفة فى المخزن فى الليست بوكس 2 المطلوب عند اختيار كود الصنف كمثال102 يعرض فقط فى الليست بوكس2 اصناف 102 بكل صلاحيتها والكمية لصرف الاقرب صلاحية لادراجها فى الليست بوكس 1 هذا هو الكود المفروض يعرض مايطلبه كود الصنف فقط Me.CB_Pièce If Me.ComboBox1.ListIndex = 0 Or Me.CB_Pièce.ListIndex = 0 _ Or FlgExit = True Then Exit Sub Call Charge_ListBox عند اختار مخزن معين يعرض كل الاصناف المتاحة بصلاحيتها فى هذا المخزن فى الليت بوكس2 وهذا الذى بالفعل تم اما عندما اختار كود الصنف معين المفرزض يعرض فى الليست بوكس2 كل الكميات بهذا الكود بصلاحيتها المختلفة وذا لم يتم الكود عبارة عن فلتر بين ComboBox1 & CB_Pièce ComboBox1 - اسم المخزن CB_Pièce -كود الصنف وشكرا Copy of sell-the-first-quantity-.xlsm تعديل ضفيف ومازالت المشكلة قائمة
محمد هشام. قام بنشر مايو 27 قام بنشر مايو 27 (معدل) في 25/5/2024 at 20:08, mahmoud nasr alhasany said: لكود عبارة عن فلتر بين ComboBox1 & CB_Pièce ComboBox1 - اسم المخزن CB_Pièce -كود الصنف صراحة لم افهم طريقة اشتغالك على الملف لاكنني حاولت فقط انشاء الكود الخاص بالفلترة ما بين العناصر المدكورة على يوزرفورم مستقل يمكنك اظافة الاكواد الخاصة بك معه او تعديله بما يناسبك Option Compare Text Dim OneRng(), Rng, rCrit1, rCrit2 Private Sub UserForm_Initialize() Set f = Sheets("Stock") OneRng = f.Range("A4:I" & f.[A65000].End(xlUp).Row).value Rng = UBound(OneRng, 2) ' اسم المخزن rCrit1 = 5 'كود الصنف rCrit2 = 1 Set d = CreateObject("Scripting.Dictionary") d("*") = "" For i = LBound(OneRng) To UBound(OneRng) d(OneRng(i, rCrit1)) = "" Next i rw = d.keys Me.ComboBox1.List = rw Me.ComboBox1.ListIndex = 0 Set d = CreateObject("Scripting.Dictionary") d("*") = "" For i = LBound(OneRng) To UBound(OneRng) d(OneRng(i, rCrit2)) = "" Next i rw = d.keys Me.CB_Pièce.List = rw Me.CB_Pièce.ListIndex = 0 End Sub Private Sub ComboBox1_click() Set d = CreateObject("Scripting.Dictionary") d("*") = "" For i = LBound(OneRng) To UBound(OneRng) If OneRng(i, rCrit1) = Me.ComboBox1 Then _ d(OneRng(i, rCrit2)) = "" Next i rw = d.keys Me.CB_Pièce.List = rw: Me.CB_Pièce.ListIndex = 0 Filtre End Sub Sub Filtre() Dim Tbl() Cpt1 = Me.ComboBox1: Cpt2 = Me.CB_Pièce N = 0 For i = 1 To UBound(OneRng) If OneRng(i, 5) Like Cpt1 And OneRng(i, 1) Like Cpt2 Then N = N + 1: ReDim Preserve Tbl(1 To Rng, 1 To N) For K = 1 To Rng: Tbl(K, N) = OneRng(i, K): Next K End If Next i If N > 0 Then Me.ListBox2.Column = Tbl Else Me.ListBox2.Clear End If If Me.ComboBox1 = "*" And _ Me.CB_Pièce = "*" Then Me.ListBox2.Clear End Sub Private Sub CB_Pièce_click() Filtre End Sub Copy of sell-the-first-quantity- V2.xlsm تم تعديل مايو 27 بواسطه محمد هشام. 2
mahmoud nasr alhasany قام بنشر مايو 27 الكاتب قام بنشر مايو 27 السلام عليكم ورحمه الله وبركاته ا/محمد هشام شكرا جزيلا أنه يعمل ولاكن أردت أن تستبدل عمود٣ لانة يرمز الى قيمة المخزون وليس الرصيد المخزون أو تضيف عمود المخزون رجاء لو سمحت
mahmoud nasr alhasany قام بنشر مايو 28 الكاتب قام بنشر مايو 28 الف شكر ا/ محمد هشام على المجهود الرائع المشكلة تأتي من تنسيق البيانات عند مقارنتها. ومن خلال تطبيق تنسيق "عدد صحيح" على البيانات المقارنة، يمكن التحقق من الحالة بشكل صحيح. سطر واحد فقط للتعديل: وهذا حل السؤال الاول الف شكر ا/ محمد هشام على المجهود الرائع ا/محمد هشام رجاء مساعدتى اولا تنسيق التاريخ فى العمود الاخير فى الليست بوكس ٢ المفروض اظهارة يكون DD/MM/YYYY اما ثانيا اريد قيمة المخزون لأدنى تاريخ فى الليست بوكس ٢ يكون فى التكست بوكس المسمى Me.stocktr واذا اخترت أعلى تاريخ بالخطاء يعطى لى تحزير بانى اخترت مخزون أعلى تاريخ وليس أدنى اكون شاكرا لك
محمد هشام. قام بنشر مايو 28 قام بنشر مايو 28 2 ساعات مضت, mahmoud nasr alhasany said: اولا تنسيق التاريخ فى العمود الاخير فى الليست بوكس ٢ المفروض اظهارة يكون DD/MM/YYYY ببساطة يمكنك اظافة السطر التالي في اخر الكود مع تعديل تنسيق التاريخ بما يناسبك 'Private Sub UserForm_Initialize() 'Code........... For i = LBound(OneRng) To UBound(OneRng): OneRng(i, 9) _ = Format(OneRng(i, 9), "dd/mm/yyyy"): Next i End sub 2 ساعات مضت, mahmoud nasr alhasany said: ريد قيمة المخزون لأدنى تاريخ فى الليست بوكس ٢ يكون فى التكست بوكس المسمى Me.stocktr واذا اخترت أعلى تاريخ بالخطاء يعطى لى تحزير بانى اخترت مخزون أعلى تاريخ وليس أدنى للاسف لا استطيع فهم طلبك ومادا تقصد بقيمة المخزون 1
mahmoud nasr alhasany قام بنشر مايو 28 الكاتب قام بنشر مايو 28 (معدل) اقصد عند الفلترا بواسطة اسم المخزن وكود الصنف كما هو موضح فى الصورة يظهر خيارين فى الليست بوكس صلاحيتين مختلفة وقيمة مخزون مختلفة لهذا المخزن وكود الصنف اريد عند الاستعلام بعد اختيار كود الصنف يظهر الرصيد تلقائى للمخزون فى خانة التكست بوكس المسمى Me.stocktr على حسب ادنى تاريخ وليس مجموع القيمة المخزونية sell-the-first-quantity- V2.xlsm تم تعديل مايو 28 بواسطه mahmoud nasr alhasany
محمد هشام. قام بنشر مايو 29 قام بنشر مايو 29 تفضل جرب هل هدا ما تقصده تم تمييز الاظافات التي قمت بتعديلها داخل الاكواد يرجى مراجعتها وتعديلها بما يناسبك sell-the-first-quantity- V3.xlsm 2
mahmoud nasr alhasany قام بنشر مايو 29 الكاتب قام بنشر مايو 29 (معدل) أنه يعمل ولاكن وجد أن قيمة المخزون يعرضها فى Me.stocktr يعمل على اخر سطر فى الليست بوكس وليس على التاريخ الأدنى اريد ربط القيمة مع التاريخ الأدنى رجاء ممكن اضافة تانية وفى حالة إذا كانت القيمة صفر مع التاريخ الأدنى يقوم بتحويل إلى التاريخ التالى كما موضح فى الصورتين sell-the-first-quantity- V3.xlsm تم تعديل مايو 29 بواسطه mahmoud nasr alhasany
محمد هشام. قام بنشر مايو 29 قام بنشر مايو 29 (معدل) تفضل تم التعديل مع اظافة اكواد جديدة اظن انك باستطاعتك تعديلها بما يناسبك للحصول على النتائج المتوقعة لانني غير متاكد من قيمة العمود 3 على الليست بوكس 1 هل تود ترحيل قيمة المخزون او الكمية اليك الكود المستخدم في حالة الرغبة بالتعديل Private Sub CommandButton1_Click() '''''اضافة البيانات الى الليست بوكس''''' Dim b As Variant, n As Byte If catetr <> "" And Me.TextBox1 <> "" Then If Quantitetr.value = Empty Then MsgBox "المرجوا ادخال الكمية": Quantitetr.SetFocus: Exit Sub ' ترتيب التيكست بوكس b = Array(Me.CB_Pièce.value, Me.catetr.value, Me.Quantitetr.value, TextBox1.value) If ListBox1.ListCount <= 0 Then ListBox1.Column = b Else ListBox1.AddItem b(0) For n = 1 To 4 ListBox1.List(ListBox1.ListCount - 1, n) = b(n) Next n End If Me.ListBox1.ColumnCount = 4 Me.ListBox1.ColumnWidths = "55;55;55;55" End If End Sub sell-the-first-quantity- V4 .xlsm تم تعديل مايو 29 بواسطه محمد هشام. 1
mahmoud nasr alhasany قام بنشر مايو 30 الكاتب قام بنشر مايو 30 (معدل) السلام عليكم ورحمة الله وبركاتة ا / محمد هشام يوجد شئ اخر رجاء مساعدتى فى اكماله اولا اريد ان اضيف فى الليست بوكس 2 القيمة السعرية للمنتج ثانيا اريد عند اختيار المخزن ثم اكود المنتج يظهر محتوى كود الصنف مع اسم الصنف والقيمة السعرية وهى اسم الصنف catetr السعر TextBox2 ثالثا واخيرا اريد عند اختيار مخزن معين فى ComboBox1 لايظهره فى هذا المخزن ComboBox2 وانما يظهر المخازن الاخرى فى ComboBox2 لعدم التعارض مع المخازن الاخرى وشكرا جزيلا لك sell-the-first-quantity- V4 .xlsm تم تعديل مايو 30 بواسطه mahmoud nasr alhasany
محمد هشام. قام بنشر مايو 31 قام بنشر مايو 31 (معدل) Option Compare Text Dim OneRng(), Rng, rCrit1, rCrit2 Public Property Get f() As Worksheet: Set f = Sheets("Stock") End Property Private Sub UserForm_Initialize() OneRng = f.Range("A4:I" & f.[A65000].End(xlUp).Row).value Rng = UBound(OneRng, 2) 'تنسيق التاريخ For i = LBound(OneRng) To UBound(OneRng): OneRng(i, 9) = Format(OneRng(i, 9), "dd/mm/yyyy"): Next i ' تنسيق عمود السعر For i = 1 To UBound(OneRng): OneRng(i, 3) = Format(OneRng(i, 3), "00.00"): Next i 'Code............ Me.ListBox2.ColumnCount = 9 Me.ListBox2.ColumnWidths = "40;55;60;60;60;0;0;0;50" End Sub عند اختيار مخزن معين فى ComboBox1 لايظهره فى هذا المخزن ComboBox2 وانما يظهر المخازن الاخرى Private Sub ComboBox1_AfterUpdate() If Me.ComboBox1 = "*" Then Me.ComboBox2 = "*" Set j = CreateObject("Scripting.Dictionary") j("*") = "" a = f.Range("E4:E" & f.[E65000].End(xlUp).Row) For i = LBound(a) To UBound(a) If (a(i, 1) <> "") And (Format(a(i, 1), "@") <> Me.ComboBox1.value) Then j(a(i, 1)) = "" Next i Me.ComboBox2.List = j.keys Set j = Nothing End Sub sell-the-first-quantity- V5.xlsm تم تعديل مايو 31 بواسطه محمد هشام. 3
mahmoud nasr alhasany قام بنشر مايو 31 الكاتب قام بنشر مايو 31 (معدل) الف شكر ا / محمد هشام انه يعمل يوجد شئ اخر رجاء مساعدتى وهو ادراج التاريخ فى TextBox1 الخاص بمخزون الكود فأنة لايعمل عندما اقم بأختيار كود الصنف ثانيا واخيرا هل يمكن عمل ترتيب الاسماء المخازن فى sort in combobox1 وشكرا جزيلا لك sell-the-first-quantity- V6.xlsm تم تعديل مايو 31 بواسطه mahmoud nasr alhasany
أفضل إجابة محمد هشام. قام بنشر مايو 31 أفضل إجابة قام بنشر مايو 31 (معدل) نظرا للطلبات الحالية اظن انه يجب علينا التعديل على اكثر من كود للحصول على النتائج المتوقعة والتعديل كالاتي : Private Sub UserForm_Initialize() 'Code''''''''' '''''''''''''' ' 4اسم المخزن 'Code'''''''''' rw = d.keys ' Sort Combobox 1 Colmun "اسم المخزن" (5) tri rw, LBound(rw), UBound(rw) Me.ComboBox1.List = rw: Me.ComboBox1.ListIndex = 0 'Code'''''''''' 'Sort listbox2 Colmun "الكود" (1) 'القيمة (OneRng, 1) 'ترمز الى رقم العمود الهدف قم بتعديلها بما يناسبك P OneRng, 1, LBound(OneRng), UBound(OneRng) End Sub '******************************** Private Sub ComboBox1_AfterUpdate() 'Code'''''''' Next i rw = j.keys tri rw, LBound(rw), UBound(rw) 'Sort Me.ComboBox2.List = rw Set j = Nothing End Sub '************************************** Sub Filtre() 'Code''''''''''''''''' f.[R2] = Cpt1: f.[S2] = Cpt2 Me.TextBox2 = Format(CStr(f.[X2]), "#,##0.00") If f.[v2] = 0 Then Me.stocktr = f.[U2]: Me.TextBox1.value = Format(f.[W2], "dd/mm/yyyy") Else _ Me.stocktr = f.[V2]: Me.TextBox1.value = Format(f.[T2], "dd/mm/yyyy") 'Code''''''''''''''''' If Me.ComboBox1 = "*" And _ Me.CB_Pièce = "*" Then _ Me.ListBox2.Clear: SubTotal = "": PriceTotal = "": LabelCont = "": TextBox1 = "" End Sub مع نسخ هده الاكواد داخل اليوزرفورم Sub tri(a, gauc, droi) 'Combobox (1-2) ترتيب تصاعدي réf = a((gauc + droi) \ 2) g = gauc: d = droi Do Do While a(g) < réf: g = g + 1: Loop Do While réf < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub '********************** Sub P(a, V, gauc, droi) 'ترتيب البيانات على الليست بوكس بشرط رقم الكود réf = a((gauc + droi) \ 2, V) g = gauc: d = droi Do Do While a(g, V) < réf: g = g + 1: Loop Do While réf < a(d, V): d = d - 1: Loop If g <= d Then For k = LBound(a, 2) To UBound(a, 2) temp = a(g, k): a(g, k) = a(d, k): a(d, k) = temp Next k g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call P(a, V, g, droi) If gauc < d Then Call P(a, V, gauc, d) End Sub اظن اننا استطعنا تنفيد طلبك خطوة بخطوة وهدا افضل بكثير من التعديل على اكواد تم انشاءها مسبقا او طلب اكثر من طلب دفعة واحدة لتستطيع فهم طريقة اشتغال ملفك ويسهل عليك التعديل عليه عند الحاجة مستقبلا sell-the-first-quantity- V7.xlsm تم تعديل يونيو 1 بواسطه محمد هشام. 2
mahmoud nasr alhasany قام بنشر يونيو 5 الكاتب قام بنشر يونيو 5 (معدل) الاستاذ المبدع هشام محمد تحية طيبة وبعد رجاء استكمال لمستك الرائعة فى هذا الكود يتم ادراج البيانات بنجاح فى باقى الشيتات سواء Entrees او Sorties ولاكن فى بعض اصناف لم يتم خصمها من المخزن الخاص بها هل هو تعارض مع تاريخ الصلاحية فلا اعرف السبب تقريبا رجاء مساعدتى فى استكمالاها تفضلا منك ملحوظة عندما يتم تحويل كمية صنف من مخزن الى مخزن اخر اذا كان المخزن الاخر لايوجد صنف مدرج بأسمة فى شيت stock فانة عند اختيار المخزن من combobox2 يستدعى userform9 لادراج المخزن والكمية لاستكمال عملية التحويل وشكرا هذا هو الملف sell-the-first-quantity- V9.xlsm تم تعديل يونيو 5 بواسطه mahmoud nasr alhasany
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.