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

جمع وطرح في الليست بوكس


إذهب إلى أفضل إجابة Solved by محمد هشام.,

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

صباح الخير

يوجد مسائله أخرى اريد طرحها

 إنها عملية معقدة

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

 ما عليك فعله هو جمع وطرح الكميات حسب العمود الثاني ووضعها في العمود الأخير المميز باللون الأحمر.

 وعمليات الطرح هي (المبيعات) وعمليات الجمع هي (المشتريات).

 

 /مرتجعات المبيعات/مرتجعات الشراء)

 

 يجب أن تكون عملية الطرح والجمع عملية تدريجية

 هل عبرت عن وجهة نظري بوضوح؟ من فضلكم ساعدوني

IMG_٢٠٢٣٠٩٢٥_٠٨٤٢٣٤.jpg

sum-listbox1.xlsm

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

 

اذا الفكره الذى اريدها هل تكون شبه مستحيله لأن مرجعية الجمع والطرح مبنيه على نوع الحركه فى العمود الثانى مع الطرح والجمع  الكميه تكون فى العمود ٦ ليكون تسلسل الناتج فى العمود ٧

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

  • أفضل إجابة

اخي  ربما ليس هناك مستحيل لاكن يتعين عليك شرح المطلوب بطريقة اوضح 

تقضل لقد حاولت الاشتغال على ملفك بطريقة متقدمة نوعا ما ربما تفيدك واستخراج النتائج على التيكست بوكس لكل نوع من الحركة بالاعتماد على ما فهت منك وهو عملية الجمع والطرح تكون  بالشكل التالي 

Purchases + Sales returns - sales - Purchases returns

واي استفسار او اظافة لا تتردد في دكره سوف تكون سعداء بحصولك على النتيجة المتوقعة 

169592059117261.png

 

Dim AllData(), the_range, wsdata, Target_columns(), Dates(), wsdata2, réf() 
Function MergeArray2DVert(A, B)
   maxtab1 = UBound(A)
   Dim tbl(): ReDim tbl(1 To UBound(A) + UBound(B), 1 To UBound(A, 2))
   For I = LBound(A) To UBound(A)
     For C = 1 To UBound(A, 2): tbl(I, C) = A(I, C): Next
   Next I
   For I = 1 To UBound(B)
     For C = 1 To UBound(B, 2): tbl(maxtab1 + I, C) = B(I, C): Next
   Next I
   MergeArray2DVert = tbl
End Function
Private Sub UserForm_Initialize()
  'دمج بيانات الجداول
  Dim Tablo1, Rng_1, rng2, T
  Tablo1 = [Tableau1]: Rng_1 = [Rng_2]: rng2 = [Rng_3]: rng3 = [Rng_4]
  AllData = MergeArray2DVert(Tablo1, Rng_1)
  AllData = MergeArray2DVert(AllData, rng2)
   AllData = MergeArray2DVert(AllData, rng3)
  the_range = "Tableau1"
  
 ' For i = 1 To UBound(AllData): AllData(i, 3) = CDate(AllData(i, 3)): Next i
  Me.ListBox1.ColumnCount = 8
  wsdata = 8
  'Target_columns = Array(1, 2, 3, 4, 6, 7, 8, 11) '(Total)في انتظار توضيح فكرة عمود 
  Target_columns = Array(1, 2, 3, 4, 6, 7, 8)
 ' عمود التاريخ
For I = LBound(AllData) To UBound(AllData): AllData(I, 3) = Format(AllData(I, 3), "dd/mm/yyyy"): Next I
  'عمود الكمية
  For I = LBound(AllData) To UBound(AllData): AllData(I, 8) = Format(AllData(I, 8), "0"): Next I
  ' عمود Total
  'For I = LBound(AllData) To UBound(AllData): AllData(I, 9) = Format(AllData(I, 9), "0.0"): Next I
  
  'Combobox Product name
    Set D = CreateObject("scripting.dictionary")
  D("*") = ""
  For I = LBound(AllData) To UBound(AllData)
    D(AllData(I, 7)) = ""
  Next I
  réf = D.keys
  filtration réf, LBound(réf), UBound(réf)
  Me.ComboBox1.List = réf
 
 'Combobox Invoice type
 Set D = CreateObject("scripting.dictionary")
  D("*") = ""
  For I = LBound(AllData) To UBound(AllData)
    D(AllData(I, 2)) = ""
  Next I
  réf = D.keys
  filtration réf, LBound(réf), UBound(réf)
  Me.ComboBox5.List = réf
   
   'Combobox customer
   Set D = CreateObject("scripting.dictionary")
  D("*") = ""
  For I = LBound(AllData) To UBound(AllData)
    D(AllData(I, 4)) = ""
  Next I
  réf = D.keys
  filtration réf, LBound(réf), UBound(réf)
  Me.ComboBox4.List = réf
 'combobox التاريخ
  Set D = CreateObject("scripting.dictionary")
  ligneData = 3
  For I = LBound(AllData) To UBound(AllData)
    D(AllData(I, ligneData)) = ""
  Next I
  Dates = D.keys
  filtration Dates, LBound(Dates), UBound(Dates)
  Me.ComboBox2.List = Dates: Me.ComboBox2 = Dates(0)
  Me.ComboBox3.List = Dates: Me.ComboBox3 = Dates(UBound(Dates))
  ComboBox1.Value = "*": ComboBox4.Value = "*": ComboBox5.Value = "*"
  Titles
  ShowAllData
   On Error Resume Next
   Me.ListBox1.ColumnWidths = "60;70;80;80;30;190;70;0"
   On Error GoTo 0
   b_tout_Click
End Sub
'********************************************
Sub ShowAllData()
    Dim tbl()
 Dim F As Worksheet, B As Worksheet, S As Worksheet, D As Worksheet
 Set F = Sheet4: Set B = Sheet2: Set S = Sheet6: Set D = Sheet5
    j = Me.ComboBox1: If j = "" Then j = "*"
    A = Me.ComboBox4: If A = "" Then A = "*"
    r = Me.ComboBox5: If r = "" Then r = "*"
    début = Me.ComboBox2
    fin = Me.ComboBox3
    ligneData = 3 ' عمود التاريخ
    n = 0
    For I = LBound(AllData) To UBound(AllData)
      If AllData(I, ligneData) >= début And AllData(I, ligneData) <= fin And AllData(I, 7) Like j And AllData(I, 4) Like A And AllData(I, 2) Like r Then
        n = n + 1: ReDim Preserve tbl(1 To wsdata, 1 To n)
        C = 0
           On Error Resume Next
        For Each k In Target_columns
          C = C + 1: tbl(C, n) = AllData(I, k)
        Next
       End If
     Next I
     If n > 0 Then
       Me.ListBox1.Column = tbl
     Else
       Me.ListBox1.Clear
      
     End If
     col = ListBox1.ListCount
     Call MH
     
   Me.Total.Value = Format(Sheet4.[Q1].Value, "0.00")
   TOTAL_all.Caption = "Total Quantity" & " = " & Format(Sheet4.Range("Q2").Value, "0.000")
  F.[O1] = "*": B.[O1] = "*": S.[O1] = "*": D.[O1] = "*"
End Sub
 '********************************       
Sub MH()
Dim A As Worksheet, B As Worksheet, C As Worksheet, D As Worksheet, ws As Worksheet
Dim Rng As Range
For Each ws In ThisWorkbook.Worksheets
    Select Case ws.Name
        Case "Purchases", "sales", "Sales returns", "Purchase returns"
             Set Rng = ws.Range("O1")
             Rng.ClearContents
             
Set A = Sheet4: Set B = Sheet2: Set C = Sheet6: Set D = Sheet5
If Me.ComboBox5.Value = "Purchases" And Me.ComboBox1.Value <> "*" Then A.[N1].Value = Me.ComboBox5.Value: ws.[O1].Value = Me.ComboBox1.Value 'Else A.Range("O1").Value = Empty
If Me.ComboBox5.Value = "sales" And Me.ComboBox1.Value <> "*" Then B.[N1].Value = Me.ComboBox5.Value: ws.[O1].Value = Me.ComboBox1.Value ' Else B.Range("O1").Value = Empty
If Me.ComboBox5.Value = "Sales returns" And Me.ComboBox1.Value <> "*" Then C.[N1].Value = Me.ComboBox5.Value: ws.[O1].Value = Me.ComboBox1.Value ' Else C.Range("O1").Value = Empty
If Me.ComboBox5.Value = "Purchase returns" And Me.ComboBox1.Value <> "*" Then D.[N1].Value = Me.ComboBox5.Value: ws.[O1].Value = Me.ComboBox1.Value 'Else D.Range("O1").Value = Empty
     Me.Purchases.Value = Format(A.Range("P1").Value, "0.00")
     Me.sales.Value = Format(B.Range("P1").Value, "0.00")
     Me.Sales_returns.Value = Format(C.Range("P1").Value, "0.00")
     Me.Purchase_returns.Value = Format(D.[P1].Value, "0.00")
     Me.Total.Value = Format(A.[Q1].Value, "0.00")
     End Select
Next ws
End Sub

 

sum-Listbox3.xlsm

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information