كمال على طارق قام بنشر الأربعاء at 08:58 قام بنشر الأربعاء at 08:58 السلام عليكم أساتذتى الكرام الرجاء من سيادتكم التكرم على مساعدتى بتعديل معادلة Data Validation الموجودة بالعمود E من صفحة الحركات اليومية =IF($D3="شراء",$E3,IF(AND(SUMIF(المخزن!$C$3:$C$800,$C3,المخزن!$I$3:$I$800)>=$E3,$D3="بيع"),$E3)) بحيث يمكنى ذلك من ادخال كميات المبيعات لمنتج معين على قدر الرصيد المتاح لهذا المنتج ولا أستطيع إدخال أكثر من المتاح وذلك اذا كانت الحركة بالطبع بيع اما اذا كانت الحركة شراء فبالتالى لا يكون هناك شروط لإدخال أى كميات لهذا المنتج وشاكر مقدماً على مساعدتكم وبارك الله فيكم مخزن 1.xlsb
Foksh قام بنشر الأربعاء at 13:28 قام بنشر الأربعاء at 13:28 جاري تعديل الملف ليشمل تحديث البيع والشراء وتحديث كمية الرصيد .... إلخ 1
Foksh قام بنشر الأربعاء at 13:54 قام بنشر الأربعاء at 13:54 (معدل) ما تم تعديله على الملف :- عمود الوارد H (إجمالي المشتريات) في ورقة المخزن :- =SUMIFS('الحركات اليومية'!$E$3:$E$800,'الحركات اليومية'!$B$3:$B$800,$B3,'الحركات اليومية'!$D$3:$D$800,"شراء") عمود الصادر G (إجمالي المبيعات) في ورقة المخزن :- =SUMIFS('الحركات اليومية'!$E$3:$E$800,'الحركات اليومية'!$B$3:$B$800,$B3,'الحركات اليومية'!$D$3:$D$800,"بيع") في ورقة الحركات اليومية تم ضبط Data Validation للعمود E ليصبح :- =OR($D3="شراء",$E3<=VLOOKUP($B3,المخزن!$B$3:$I$800,8,FALSE)) أيضاً في الـ Data Validation تم ضبط رسالة الخطأ لتصبح :- أيضاً في الخلية C3 في ورقة الحركات اليومية ، تم ضبط الخلية لتجلب اسم الصنف تلقائياً من خلال المعادلة :- =IFERROR(VLOOKUP(B3,المخزن!$B$3:$C$800,2,FALSE),"") الآن جرب ملفك بإدخال حركة شراء لصنف معين ، وحركة بيع لهذا الصنف ، ولاحظ عملية تحديث الرصيد له في ورقة المخزن . ومن ثم جرب ادخال حركة بيع لكمية أكبر من رصيد الصنف هذا وراقب النتيجة . الملف جربه علي أكون قد وُفقت في تعديلاتي البسيطة مخزن 1.xlsb تم تعديل الأربعاء at 13:54 بواسطه Foksh اضافة المرفق 1
كمال على طارق قام بنشر الأربعاء at 14:08 الكاتب قام بنشر الأربعاء at 14:08 (معدل) شكرا جزيلا لجهود سيادتكم العظيمة , ولكن عندما تم ادخال كمية أكبر من المتاح لكود المنتج رقم 8 فقد قبل معى الإدخال كما ترى بالصورة المرسلة فأصبح الرصيد لهذا المنتج -1 وهذا لا يمكن ان يحدث ..فاذا كان الرصيد المتاح مثلا لأى منتج 7 فأريد ان ادخل أى رقم من 1 : 7 ولكن لا يمكن الإدخال لكمية أكبر من المتاح وهو 7 ولكم جزيل الشكر تم تعديل الأربعاء at 14:13 بواسطه كمال على طارق
Foksh قام بنشر الأربعاء at 14:15 قام بنشر الأربعاء at 14:15 هل ظهرت لك رسالة التنبيه بأن الكمية غير صحيحة ؟؟ هذه محاولتي .. إلا إذا أردت الذهاب إلى الأكواد والـ VBA 😅
كمال على طارق قام بنشر الأربعاء at 14:27 الكاتب قام بنشر الأربعاء at 14:27 تظهر الرسالة معى ولكن هذا ليس المطلوب بالضبط ولكنى اريد كما أوضحت سلفاً ان كان رصيد منتج معين هو 7 احتاج عند الإدخال ان اتمكن حتى ادخال 7 للكمية ولا يمكن أدخال اى كمية أعلى وأكثر من 7 لهذا المنتج بارك الله فى جهودكم وياريت تكون بدون أكواد VBA ان أمكن ذلك .. الا ما اضطررنا لذلك
Foksh قام بنشر الأربعاء at 15:39 قام بنشر الأربعاء at 15:39 منذ ساعه, كمال على طارق said: تظهر الرسالة معى طيب تمام ، جرب غير نوع الرسالة الى Stop :- بدلاً من :-
كمال على طارق قام بنشر الأربعاء at 16:01 الكاتب قام بنشر الأربعاء at 16:01 جربت طبعا ونفس النتيجة .بارك الله فيك
Foksh قام بنشر الأربعاء at 16:19 قام بنشر الأربعاء at 16:19 (معدل) 2 ساعات مضت, كمال على طارق said: اريد كما أوضحت سلفاً ان كان رصيد منتج معين هو 7 احتاج عند الإدخال ان اتمكن حتى ادخال 7 للكمية ولا يمكن أدخال اى كمية أعلى وأكثر من 7 لهذا المنتج لم أفهم المشكلة في المطلوب والتنفيذ .. فلو أدخلت قيمة أكبر من المتاح في رصيد الصنف في المخزن ، سيظهر لك رسالة التنبيه وستمنع ادخال الكمية 🤔 إلا إذا كان لك طلب آخر ولم توضحه جيداً أخي الكريم . علك توضح بشكل أكثر تفسيراً لمطلبك حتى لو كان شرحك بـ 100 سطر 😇 أو قد نجد مداخلة من أحد الأساتذة والأخوة بالتوضيح والحل دون استخدام الأكواد !!! تم تعديل الأربعاء at 16:34 بواسطه Foksh
كمال على طارق قام بنشر الأربعاء at 17:21 الكاتب قام بنشر الأربعاء at 17:21 طلبى بالضبط ان أستطيع ادخال اى كمية لاى صنف طالما اقل أو يساوى الرصيد المتاح لنفس الصنف ومنع ادخال اى كمية لأى صنف طالما العدد يتعدى المتاح من هذا الصنف
Foksh قام بنشر الأربعاء at 17:47 قام بنشر الأربعاء at 17:47 طيب .. رغم أن الطلب تم تحقيقه من خلال Data Validation ، ولكن هذا لا يمنع من تجربة الفكرة التالية من خلال الأكواد . حيث تم دمج الحدث عند التغيير للورقة من :- If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("B3:B3000")) Is Nothing Then With Target(1, 5) .Value = Date & " " & Time .EntireColumn.AutoFit End With End If ليصبح :- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Or Target.Row < 3 Then Exit Sub If Target.Column = 2 And Target.Value <> "" Then Target.Offset(0, 4).Value = Now If (Target.Column = 4 Or Target.Column = 5) And Trim(Me.Cells(Target.Row, "D").Value) = "بيع" Then Dim r As Long: r = Target.Row Dim itemCode As Variant: itemCode = Me.Cells(r, "B").Value Dim qty As Double: qty = Val(Me.Cells(r, "E").Value) If Not IsEmpty(itemCode) And qty > 0 Then Dim stockSheet As Worksheet: Set stockSheet = Worksheets("المخزن") Dim findCell As Range Set findCell = stockSheet.Range("B3:B800").Find(What:=itemCode, LookIn:=xlValues, LookAt:=xlWhole) If Not findCell Is Nothing Then Dim realAvailableStock As Double realAvailableStock = Val(stockSheet.Range("I" & findCell.Row).Value) + qty If qty > realAvailableStock Then MsgBox "• لا يمكنك إتمام عملية البيع هذه" & vbCrLf & vbCrLf & _ "• الصنــف: " & Me.Cells(r, "C").Value & vbCrLf & _ "• الرصيد المتاح حالياً: " & realAvailableStock & " قطعة" & vbCrLf & _ "• الكمية المطلوبة: " & qty & " قطعة", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "تجاوز الرصيد" Application.EnableEvents = False Me.Cells(r, "E").ClearContents Me.Cells(r, "E").Select Application.EnableEvents = True End If End If End If End If End Sub ملفك بعد التطبيق :- مخزن 1.xlsb 3
كمال على طارق قام بنشر الأربعاء at 18:24 الكاتب قام بنشر الأربعاء at 18:24 أحسنت استاذنا الكريم وهذا هو المطلوب بالضبط بارك الله فيك وزادك الله من فضله وياريت كان تم الوصول لهذه النتيجة بـــــ Data Validation 1
Foksh قام بنشر الأربعاء at 18:28 قام بنشر الأربعاء at 18:28 4 دقائق مضت, كمال على طارق said: وياريت كان تم الوصول لهذه النتيجة بـــــ Data Validation يمكننا الإنتظار مشاركات جديدة .. فلا تستعجل بإغلاق الموضوع باختيار الإجابة 🙂 2
عبدالله بشير عبدالله قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات (معدل) السلام عليكم ورحمة الله وبركاته في 29/7/2026 at 19:47, Foksh said: طيب .. رغم أن الطلب تم تحقيقه من خلال Data Validation من خلال التجربة لملف Data Validation الاول - طلب السائل الكريم يتحقق مع تعديل النمط الى ايقاف كما تصحته في مشاركة لاحقة ولا اعتقد انه يمكن اظافة اي جديد اكثر مما تم عمله هذا حسب اعتقادي والله اعلم تحياتي لكما تم تعديل منذ 4 ساعات بواسطه عبدالله بشير عبدالله 2
كمال على طارق قام بنشر منذ 4 ساعات الكاتب قام بنشر منذ 4 ساعات شكرا لك استاذ عبدلله .. ولكن بالفعل تم عمل ذلك ولا يتغير شيء
عبدالله بشير عبدالله قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات (معدل) 1 ساعه مضت, كمال على طارق said: شكرا لك استاذ عبدلله .. ولكن بالفعل تم عمل ذلك ولا يتغير شيء كررت التجربة والملف يعمل ولا يسمح باظافة اي كمية تتجاوز الموحود بالمخزن ولكن هناك سبب يجغل الرصيد في المخزن بالسالب عندما تكتب الكمية اولا ثم تختار توع الحركة بعدها هنا يتم قبول الكمية ولو كان الصنف انتهى من المخزن وهذه حلها الغاء خاصية تجاهل الفراغ حينها لا يقبل اي كمية سواء اخترت نوع الحركة اولا او اخر جرب الغاء الخاصية في ملف الاستاذ Foksh واليك ملف اخر بنفس فكرة Data Validation باستخذام عمود مساعد في العمود o بالرغم انني لا احبذ استخذم الاعمدة المساعدة وله نفس نتائج ملف معلمنا Foksh مخزن 1.xlsb تم تعديل منذ 2 ساعات بواسطه عبدالله بشير عبدالله 1
Foksh قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه (معدل) 2 ساعات مضت, عبدالله بشير عبدالله said: كررت التجربة والملف يعمل ولا يسمح باظافة اي كمية تتجاوز الموحود بالمخزن ولكن هناك سبب يجغل الرصيد في المخزن بالسالب عندما تكتب الكمية اولا ثم تختار توع الحركة بعدها هنا يتم قبول الكمية ولو كان الصنف انتهى من المخزن وهذه حلها الغاء خاصية تجاهل الفراغ حينها لا يقبل اي كمية سواء اخترت نوع الحركة اولا او اخر التفاته جيدة أستاذ عبدالله ، لم اقم بتجربتها فعلاً ، حيث ان خبرتي حديثة العهد في مجتمع اكسل . ونتعلم منكم فعلاً بعض الأمور التي أجهلها ، فشكراً لكم من القلب 🤗 . وهنا أرجح أجابتكم إن كانت ترضي صاحب الموضوع أخي @كمال على طارق . تم تعديل منذ 18 دقائق بواسطه Foksh
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان