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

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

قام بنشر

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

في ورقة ال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

 

قام بنشر

شكرا لكم أخي الكريم ،

بعد التعديل  تغيّر نوع الخطأ - وفي مكان قبل كما الصورة المرفقة-

 

err3.png

  • أفضل إجابة
قام بنشر

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

  • Thanks 1
قام بنشر

ألف شكر لكم أخي الكريم.. أكرمكم الله بالدنيا والآخرة.

 

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

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

Important Information