mahmoud nasr alhasany قام بنشر أغسطس 8, 2024 قام بنشر أغسطس 8, 2024 (معدل) 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, 2024 بواسطه mahmoud nasr alhasany
أسامة البراوى قام بنشر أغسطس 12, 2024 قام بنشر أغسطس 12, 2024 السلام عليكم بتجربة هذا الكود يوجد الملاحظات التالية 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.