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

كود للتصحيح


Jasmin
إذهب إلى أفضل إجابة Solved by AbuuAhmed,

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

السلام عليكم إخوتي الكرام، أرسل لكم ملف على أمل تصحيح الكود 🙂

في ورقة الTransaction

المفترض بعدما أختار الItemcode وو من ثمّ نوع العمليّة أن ينتظر الكميّة Quantity
(لا يجب أن بشغّل الماكرو حتى قبل)
وعندما أختار الQuantity  المفترض يشتغل الماكرو وينفّذ التالي فاذا كان نوع العملية Transaction Type
Sell فينقص الكميّة واذا return يزيد الquantity الكميّة على الstock الأصلي
ويضعها في نفس الورقة بخانة الNew Stock

ويبدّل الكميّة  في ورقة الITems2023 (اسمها fo بالماكرو) في خانة الCurrent Quantity in Stock ..شكرا كثيرا لكم.

Invoices-j3.xlsm

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

مجرد  فضول  اختي  الكريمة  لماذا العمود   F  في  الورقة Transaction   البعض قيم  مدخلة  يدويا  والبعض  يحتوي  على  معادلات 

هل  يتم  ادخال  الارقام  يدويا  ام  يتم  جلبها  بواسطة  المعادلات ؟

 

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

تعديل جزئي فقط ، وإذا توفر لدي وقت واصلت معك.
 

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Cells.CountLarge > 1 Then Exit Sub
        If .Count > 1 Then Exit Sub
        
       'If .Row >  2 And .Column = 7 Then
        If .Row >= 2 And .Column = 8 Then
            Application.EnableEvents = False
            
            Set fo = Sheets("Items2023")
            If Range("B" & .Row) <> "" And Range("F" & .Row) <> "" Then
                ln = WorksheetFunction.Match(.Offset(0, -5), fo.Range("C:C"), 0)
                x = fo.Cells(ln, 5) 'Stok initial sur la feuille OldStock2021-2022
                Cells(.Row, 6) = x                          'Stock initial
                Cells(.Row, 18) = "Locked"

                s = IIf(.Offset(0, -1) = "Sell", -1, 1)     'sens du mouvement = 1 pour retour,-1 pour vente
                Cells(.Row, 12) = .Value * s + x            'Stock final
                fo.Range("E" & ln) = .Value * s + x         'Nouveau stock mis à jour
                Range("A" & .Row) = Date                    'ou = Now si on veut l'horodate
            Else
                MsgBox "Saisies incomplètes.", 16
                Exit Sub
            End If
        End If
        
        Application.EnableEvents = True
    End With
End Sub

والتغيير في هذا السطر:
 

       'If .Row >  2 And .Column = 7 Then
        If .Row >= 2 And .Column = 8 Then

 

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

  • أفضل إجابة

تعديلات عديدة ممكن توضيحها في وقت آخر.
الآن يمكنكم تبديل الأعمدة "العواميد" للفاتورة فقط دون مشاكل إن شاء الله ، أما عند تبديل أسماء الأعمدة فيجب عليكم تبديلها أيضا في الماكرو.  موفقين.
Invoices-j3_03.xlsm

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

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

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

Important Information