اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم ورحمة الله وبركاته
الساده الأعزاء المطلوب المساعده في هذا الامر
والمطلوب في هذا الشيت للخلية G3 اريدها في حال تم ادخال اي قيمة في الخلية F3  ان يتم تلقائيا خصم الرقم للقيمة المدخله وانقاصها من قيمة الخلية G3  ثم مسح او تفريغ محتوى الخلية F3

للتوضيح لنفترض ان قيمة G3 كما هو الان 300 المطلوب في حال ادخال اي قيمة او اي عدد   في الخلية F3 ان يتم انقاصه من قيم الخلية G3   
ـــ الامر الثاني وهو بالعكس للامر السابق وللتوضيح اكثر .

المطلوب ايضاً الخليه E3  حيث وهي تستمد قيمتها من ورقة1 وهي قابله للزياده في دائماً .

لنفترض كالمثال الحالي لقيمة الخلية E3 وقيمتها الان 300 المطلوب اذا ازدادت الى 350 او اي رقم اخر ان يتم تلقائيا نسخ الزياده فقط والتي تتمثل بال50 واظافته كانتج للجمع مع القيمة المتواجده  في الخلية G3  حيث يصبح 350
بإختصار المطلوب كله لناتج الخليه (G3) في حال ادخال اي قيمة في الخلية F3 يتم الانقاص بقدر الرقم المدخل فقط ثم مسح او تفريخ محتوى الخلية F2 . ... وفي حال تغيرت قيمة الخلية E3  بأي زياده لأي رقم قد يتحدث في كل مره . ان يتم اظافة هذه القيمة الى القيمه المتواجده في خلية G3 كجمع ــــــــــــــــــ وهكذا يتم العمل في الخلية G3 وفي حال اي تغيير للخلايا المذكورة

 مساعده في تحديث قيم خليه ...  الشرح والتوضيح مرفق بالملف

مساعده بتغيير محتوى قيم خليه بالجمع والنقص.xlsb

قام بنشر

للعلم مرفق كود في حدث صفحة المخزون

يعمل بشكل ما ولكن عندما تتغير قيمة الخليه E3

التي مصدرها من الورقه1 . لا يتم تحديث قيم الخليه G3

بالزياده بحسب القيم المخله الجديده للخليه E3

قام بنشر

السلام عليكم ورحمة الله وبركاته

قرأت المطلوب 3 مرات مش فاهم اي حاجة 
ولكن.....

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

وايضا كمية المنصرف نحصل عليها بالمثل من شيت المنصرف 
والرصيد هو عبارة عن ناتج جمع رصيد اول المدة + الوارد - المنصرف 
اما بالنسبة للملف المرفق من وجهة نظرى المتواضعه اذا تم التعديل باليد على كل صنف بادخال الوارد وخصم المنصرف يدويا فسيحدث خطأ

 

قام بنشر (معدل)

 

وعليكم السلام

يمكنك الاطلاع على الكود في حدث الصفحه وسوف تفهم المطلوب ؟

المطلوب فقط

اي قيمه جديده يتم ادخالها في العمود F في اي خليه

يتم نقلها كرصيد تراكمي الى الخليه G8 في شيت المخزون

 

وفي حال تم تعديل اي خليه لنفس العمود

اذا كان التعديل بزياده ؟ للتوضيح لنفترض ان الخليه التي سوف يتم تعديلها قيمتها 55 وتم تعديلها الى 67

المطلوب فقط نسخ الفارق الذي هو 12 فقط

ونقله كرصيد تراكمي فوق قيمه الخليه g8 في شيت المخزون

 

والمطلوب الثاني

اذا تم التعديل على اي خليه لنفس عمود f 

وكانت قيمتها كمثال 44 وتم تعديلها الى 31

اي ان التعديل تم بالنقص وليس بالزياده لقيمه الخليه

والمطلوب في هذه الحاله . هو ان يتم فقط خصم الفارق الذي يعتبر هو ال13 وخصمه من قيمه محتوى الخليه g8 في شيت المخزون

 

هذا كل شي وبإختصار

1 / اي قيمه يتم ادخالها بخليه فارغه بعمود f

يتم نقل القيمه واضافتها الى مجموع قينه الخليه g8

في شيت المخزون

2/ اذا تم تعديل اي خليه لنفس العمود وكان التعديل بالزياده . المطلوب نقل الفارق واضافته للخليه g8

كما تم التوضيح بالأعلى سابقا

 

3 / اذا كان التعديل فيه خصم من اي خليه المطلوب فقط 

خصم الرقم او الفارق بين قيمه الخليه قبل التعديل وبعد التعديل يتم نقل فارق الخصم فقط الى شيت المخزون الخليه g8  وتم التوضيح للمثال اعلاه

 

وشكرا لكل من تعاون

تم تعديل بواسطه اشجان بسيوني
قام بنشر

 يمكنك استخدام الكود التالي:


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim stockSheet As Worksheet
    Dim changedCell As Range
    Dim newValue As Double
    Dim oldValue As Double
    Dim diff As Double

    Set ws = ThisWorkbook.Sheets("Sheet1") ' تغيير "Sheet1" إلى اسم الورقة التي تعمل عليها
    Set stockSheet = ThisWorkbook.Sheets("Stock") ' تغيير "Stock" إلى اسم ورقة المخزون

    ' التحقق من أن التعديل تم في العمود F والخلية ليست فارغة
    If Not Intersect(Target, ws.Columns("F")) Is Nothing And Target.Value <> "" Then
        newValue = Target.Value
        stockSheet.Range("G8").Value = stockSheet.Range("G8").Value + newValue
    ElseIf Not Intersect(Target, ws.Columns("F")) Is Nothing Then
        Exit Sub
    End If

    ' التحقق من أن التعديل تم في العمود F وليس في الخلية G8
    If Not Intersect(Target, ws.Columns("F")) Is Nothing And Target.Address <> "$F$8" Then
        Exit Sub
    End If

    ' التحقق من أن التعديل تم بالزيادة
    If Target.Value > Target.Value - Target.Value Then
        newValue = Target.Value
        oldValue = Target.Value - Target.Value
        diff = newValue - oldValue
        stockSheet.Range("G8").Value = stockSheet.Range("G8").Value + diff
    Else ' التعديل تم بالنقص
        newValue = Target.Value
        oldValue = Target.Value + Target.Value
        diff = oldValue - newValue
        stockSheet.Range("G8").Value = stockSheet.Range("G8").Value - diff
    End If
End Sub
```

هذا الكود يتم وضعه في وحدة العمل الخاصة بالورقة التي تريد استخدامها. يقوم الكود بتنفيذ الأوامر التالية:

1. إذا تم إدخال قيمة جديدة في العمود F (والخلية ليست فارغة)، فإنه يقوم بإضافة هذه القيمة إلى قيمة الخلية G8 في ورقة المخزون.
2. إذا تم تعديل قيمة في العمود F (والخلية ليست G8)، فإنه يحسب الفارق بين القيمة الجديدة والقيمة القديمة ويضيف أو يخصم هذا الفارق من قيمة الخلية G8 في ورقة المخزون، اعتمادًا على اتجاه التعديل (زيادة أو نقص).

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