كمال على طارق قام بنشر يوليو 29 قام بنشر يوليو 29 السلام عليكم أساتذتى الكرام الرجاء من سيادتكم التكرم على مساعدتى بتعديل معادلة Data Validation الموجودة بالعمود E من صفحة الحركات اليومية =IF($D3="شراء",$E3,IF(AND(SUMIF(المخزن!$C$3:$C$800,$C3,المخزن!$I$3:$I$800)>=$E3,$D3="بيع"),$E3)) بحيث يمكنى ذلك من ادخال كميات المبيعات لمنتج معين على قدر الرصيد المتاح لهذا المنتج ولا أستطيع إدخال أكثر من المتاح وذلك اذا كانت الحركة بالطبع بيع اما اذا كانت الحركة شراء فبالتالى لا يكون هناك شروط لإدخال أى كميات لهذا المنتج وشاكر مقدماً على مساعدتكم وبارك الله فيكم مخزن 1.xlsb
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 جاري تعديل الملف ليشمل تحديث البيع والشراء وتحديث كمية الرصيد .... إلخ 1
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 (معدل) ما تم تعديله على الملف :- عمود الوارد 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 تم تعديل يوليو 29 بواسطه Foksh اضافة المرفق 2
كمال على طارق قام بنشر يوليو 29 الكاتب قام بنشر يوليو 29 (معدل) شكرا جزيلا لجهود سيادتكم العظيمة , ولكن عندما تم ادخال كمية أكبر من المتاح لكود المنتج رقم 8 فقد قبل معى الإدخال كما ترى بالصورة المرسلة فأصبح الرصيد لهذا المنتج -1 وهذا لا يمكن ان يحدث ..فاذا كان الرصيد المتاح مثلا لأى منتج 7 فأريد ان ادخل أى رقم من 1 : 7 ولكن لا يمكن الإدخال لكمية أكبر من المتاح وهو 7 ولكم جزيل الشكر تم تعديل يوليو 29 بواسطه كمال على طارق
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 هل ظهرت لك رسالة التنبيه بأن الكمية غير صحيحة ؟؟ هذه محاولتي .. إلا إذا أردت الذهاب إلى الأكواد والـ VBA 😅
كمال على طارق قام بنشر يوليو 29 الكاتب قام بنشر يوليو 29 تظهر الرسالة معى ولكن هذا ليس المطلوب بالضبط ولكنى اريد كما أوضحت سلفاً ان كان رصيد منتج معين هو 7 احتاج عند الإدخال ان اتمكن حتى ادخال 7 للكمية ولا يمكن أدخال اى كمية أعلى وأكثر من 7 لهذا المنتج بارك الله فى جهودكم وياريت تكون بدون أكواد VBA ان أمكن ذلك .. الا ما اضطررنا لذلك
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 منذ ساعه, كمال على طارق said: تظهر الرسالة معى طيب تمام ، جرب غير نوع الرسالة الى Stop :- بدلاً من :-
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 (معدل) 2 ساعات مضت, كمال على طارق said: اريد كما أوضحت سلفاً ان كان رصيد منتج معين هو 7 احتاج عند الإدخال ان اتمكن حتى ادخال 7 للكمية ولا يمكن أدخال اى كمية أعلى وأكثر من 7 لهذا المنتج لم أفهم المشكلة في المطلوب والتنفيذ .. فلو أدخلت قيمة أكبر من المتاح في رصيد الصنف في المخزن ، سيظهر لك رسالة التنبيه وستمنع ادخال الكمية 🤔 إلا إذا كان لك طلب آخر ولم توضحه جيداً أخي الكريم . علك توضح بشكل أكثر تفسيراً لمطلبك حتى لو كان شرحك بـ 100 سطر 😇 أو قد نجد مداخلة من أحد الأساتذة والأخوة بالتوضيح والحل دون استخدام الأكواد !!! تم تعديل يوليو 29 بواسطه Foksh
كمال على طارق قام بنشر يوليو 29 الكاتب قام بنشر يوليو 29 طلبى بالضبط ان أستطيع ادخال اى كمية لاى صنف طالما اقل أو يساوى الرصيد المتاح لنفس الصنف ومنع ادخال اى كمية لأى صنف طالما العدد يتعدى المتاح من هذا الصنف
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 طيب .. رغم أن الطلب تم تحقيقه من خلال 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 4
كمال على طارق قام بنشر يوليو 29 الكاتب قام بنشر يوليو 29 أحسنت استاذنا الكريم وهذا هو المطلوب بالضبط بارك الله فيك وزادك الله من فضله وياريت كان تم الوصول لهذه النتيجة بـــــ Data Validation 1
Foksh قام بنشر يوليو 29 قام بنشر يوليو 29 4 دقائق مضت, كمال على طارق said: وياريت كان تم الوصول لهذه النتيجة بـــــ Data Validation يمكننا الإنتظار مشاركات جديدة .. فلا تستعجل بإغلاق الموضوع باختيار الإجابة 🙂 2
عبدالله بشير عبدالله قام بنشر يوليو 31 قام بنشر يوليو 31 (معدل) السلام عليكم ورحمة الله وبركاته في 29/7/2026 at 19:47, Foksh said: طيب .. رغم أن الطلب تم تحقيقه من خلال Data Validation من خلال التجربة لملف Data Validation الاول - طلب السائل الكريم يتحقق مع تعديل النمط الى ايقاف كما تصحته في مشاركة لاحقة ولا اعتقد انه يمكن اظافة اي جديد اكثر مما تم عمله هذا حسب اعتقادي والله اعلم تحياتي لكما تم تعديل يوليو 31 بواسطه عبدالله بشير عبدالله 2
كمال على طارق قام بنشر يوليو 31 الكاتب قام بنشر يوليو 31 شكرا لك استاذ عبدلله .. ولكن بالفعل تم عمل ذلك ولا يتغير شيء
عبدالله بشير عبدالله قام بنشر يوليو 31 قام بنشر يوليو 31 (معدل) 1 ساعه مضت, كمال على طارق said: شكرا لك استاذ عبدلله .. ولكن بالفعل تم عمل ذلك ولا يتغير شيء كررت التجربة والملف يعمل ولا يسمح باظافة اي كمية تتجاوز الموحود بالمخزن ولكن هناك سبب يجغل الرصيد في المخزن بالسالب عندما تكتب الكمية اولا ثم تختار توع الحركة بعدها هنا يتم قبول الكمية ولو كان الصنف انتهى من المخزن وهذه حلها الغاء خاصية تجاهل الفراغ حينها لا يقبل اي كمية سواء اخترت نوع الحركة اولا او اخر جرب الغاء الخاصية في ملف الاستاذ Foksh واليك ملف اخر بنفس فكرة Data Validation باستخذام عمود مساعد في العمود o بالرغم انني لا احبذ استخذم الاعمدة المساعدة وله نفس نتائج ملف معلمنا Foksh مخزن 1.xlsb تم تعديل يوليو 31 بواسطه عبدالله بشير عبدالله 2 1
Foksh قام بنشر يوليو 31 قام بنشر يوليو 31 (معدل) 2 ساعات مضت, عبدالله بشير عبدالله said: كررت التجربة والملف يعمل ولا يسمح باظافة اي كمية تتجاوز الموحود بالمخزن ولكن هناك سبب يجغل الرصيد في المخزن بالسالب عندما تكتب الكمية اولا ثم تختار توع الحركة بعدها هنا يتم قبول الكمية ولو كان الصنف انتهى من المخزن وهذه حلها الغاء خاصية تجاهل الفراغ حينها لا يقبل اي كمية سواء اخترت نوع الحركة اولا او اخر التفاته جيدة أستاذ عبدالله ، لم اقم بتجربتها فعلاً ، حيث ان خبرتي حديثة العهد في مجتمع اكسل . ونتعلم منكم فعلاً بعض الأمور التي أجهلها ، فشكراً لكم من القلب 🤗 . وهنا أرجح أجابتكم إن كانت ترضي صاحب الموضوع أخي @كمال على طارق . تم تعديل يوليو 31 بواسطه Foksh 1
كمال على طارق قام بنشر أغسطس 1 الكاتب قام بنشر أغسطس 1 بارك الله فيك استاذنا الكريم عبدالله بشير عبدالله وانا مثل حضرتك بالفعل لا أحبذ استخدام الأعمدة المساعدة ولكن عند استخدام ملف الأستاذ Foksh وعمل تجاهل للفراغ أيضا لا يضبط معى مخزن 2.xlsb
عبدالله بشير عبدالله قام بنشر أغسطس 1 قام بنشر أغسطس 1 (معدل) السلام عليكم معادلة استاذنا Foksh بالملف المرفق لم اضف اليها شئ سوى معالجة الاخطاء IFERROR وشرط اختيار نوع الحركة وشرط اختيار الصنف فمت بالتجربة بيع وشراء -المعادلة تعمل حسب طلبك لا تسمح باظافة اي كمية في حالة تفاذ الرضيد ولا تسمح باظافة اي كمية قبل اختيار نوغ العملبة ( بيع - شراء) قم بالتجربة بالملف المرفق واعلمني بالنتائج في حال ان المعادلة تعمل لديك وتريد تقلها الى ملفك الاصلي تكون الاعدادات -الغاء التأشير على تجاهل الفراغات +التمط - ايقاف اذا لم تغمل لديك حقيقة لا اعلم السبب مخزن 3.xlsb تم تعديل أغسطس 1 بواسطه عبدالله بشير عبدالله
كمال على طارق قام بنشر أغسطس 1 الكاتب قام بنشر أغسطس 1 (معدل) وعليكم السلام كما ترى استاذنا الكريم بعد استخدام ملف حضرتك تظهر هذه المشكلة على الرغم ان المنتج 8 موجود عدد 3 بالرصيد وهذا هو ما أواجهه دائما فيقبل فقط عند ادخال العدد 1 على الرغم ان الرصيد لهذا الصنف هو 3 تم تعديل أغسطس 1 بواسطه كمال على طارق
تمت الإجابة Foksh قام بنشر أغسطس 1 تمت الإجابة قام بنشر أغسطس 1 طيب ، شو رأيك نغير الخطة شوي ؟؟ رح نحتاج إلى إعادة إضافة الكمية الحالية E3 إلى نتيجة الـ VLOOKUP لكي نتمكن من المقارنة مع الرصيد المتاح قبل الحركة الحالية . يعني استبدل معادلة Data Validation في العمود E بالمعادلة التالية :- =AND($B3<>"", $D3<>"", OR($D3="شراء", $E3 <= IFERROR(VLOOKUP($B3, المخزن!$B$3:$I$800, 8, FALSE), 0) + IF($D3="بيع", $E3, 0))) جربها وأعطيني النتيجة اذا سمحت .. 2
كمال على طارق قام بنشر أغسطس 1 الكاتب قام بنشر أغسطس 1 الله ينور استاذنا الكريم وهذا هو المطلوب بالفعل ..بارك الله فيك وأكرمك الله فى الدارين واسف جدا على تعب حضرتك معايا وشكرا جزيلا لهذا المجهود العظيم , اللهم وسع فى رزقك 1
Foksh قام بنشر أغسطس 1 قام بنشر أغسطس 1 5 دقائق مضت, كمال على طارق said: الله ينور استاذنا الكريم وهذا هو المطلوب بالفعل ..بارك الله فيك وأكرمك الله فى الدارين واسف جدا على تعب حضرتك معايا وشكرا جزيلا لهذا المجهود العظيم , اللهم وسع فى رزقك للتوضيح ، حيث ما تم تعديله أنه عند القيام بعملية بيع ، تقوم المعادلة حالياً بإعادة إضافة الكمية المكتوبة حالياً إلى الرصيد المحسوب في ورقة المخزن ، فيسترجع التحقق من الصحة الرصيد الفعلي المتوفر قبل إدخال الحركة الحالية وتكتمل العملية بنجاح عند إدخال 5 أو 4 أو أي رقم ضمن حدود الرصيد المتوفر . عذراً على التأخر في اكتشاف الخلل .. والشكر موصول للأستاذ @عبدالله بشير عبدالله على مشاركته وملاحظاته معنا . 2
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان