اذهب الي المحتوي
أوفيسنا

خطاء عملية التحويل فى الفورم


الردود الموصى بها


	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

تم تعديل بواسطه mahmoud nasr alhasany
رابط هذا التعليق
شارك

السلام عليكم

بتجربة هذا الكود يوجد الملاحظات التالية 

 

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 فيه اسم المخزن 

 

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information