mahmoud nasr alhasany قام بنشر أغسطس 8 قام بنشر أغسطس 8 (معدل) Private Sub CommandButton1_Click() Dim i As Integer Dim item As String Dim qty1 As Integer, qty2 As Integer Dim stock1 As Integer, stock2 As Integer Dim multiplier As Integer ' تحقق من التحديد في ListBox1 If ListBox1.ListIndex = -1 Then MsgBox "Please select an item from ListBox1.", vbExclamation Exit Sub End If ' الحصول على القيم من ListBox1 وTextBox1 item = ListBox1.Value qty1 = Val(ListBox1.Column(1)) stock1 = Val(ListBox1.Column(2)) multiplier = Val(TextBox1.Value) 'ابحث عن العنصر في ListBox2 For i = 0 To ListBox2.ListCount - 1 If ListBox2.List(i) = item Then qty2 = Val(ListBox2.Column(1)) stock2 = Val(ListBox2.Column(2)) Exit For End If Next i ' تحقق من العثور على العنصر في ListBox2 If i = ListBox2.ListCount Then MsgBox "Item not found in ListBox2.", vbExclamation Exit Sub End If ' حساب الكميات والمخزونات الجديدة qty2 = qty2 - (qty1 * multiplier) stock2 = stock2 - (stock1 * multiplier) ' ضمان القيم غير السلبية If qty2 < 0 Or stock2 < 0 Then MsgBox "Insufficient quantity or stock in ListBox2.", vbExclamation Exit Sub End If ' Update ListBox2 ListBox2.List(i, 1) = qty2 ListBox2.List(i, 2) = stock2 End Sub مالخطاء فى هذا الكود الشرح داخل ملف العمل انها عملية تحويل كمية بين المخازن من LISTBOX1 TO LISTBOX2 تحويل الكمية بين المخازن.xlsm تم تعديل أغسطس 8 بواسطه mahmoud nasr alhasany
أسامة البراوى قام بنشر أغسطس 12 قام بنشر أغسطس 12 السلام عليكم بتجربة هذا الكود يوجد الملاحظات التالية 1- فى الجزء الاول وعند البحث عى البند فى الليست 2.. يجب توجيه الاختيار فى حالة تحقق الشرط الى السطر المطلوب فى الليست For i = 0 To ListBox2.ListCount - 1 If ListBox2.List(i) = item Then ' يجب توجيه الاختيار فى حالة تحقق الشرط الى السطر المطلوب فى الليست ListBox2.ListIndex = i qty2 = Val(ListBox2.Column(1)) stock2 = Val(ListBox2.Column(2)) Exit For End If Next i 2- بعد الانتهاء من عملياتك الحسابية ولتحديث list2 يجب تحديث القيم فى الجدول المصدر الذى استعملته فى خاصية rowsource وهو Table2 ,ويمكنك عن طريق استبدال الكود الموجود ListBox2.List(i, 1) = qty2 بالكود التالى Range("Table2").Cells(i + 1, 2) = qty2 أخيرا انت محتاج تراجع المعادلات اللى انت بتستخدمها ومحتويات ال listbox لان العمود اللى انت بتحسب منه قيمة stock1 و stock2 فيه اسم المخزن
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.