محمود بن السماوي قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 السلام عليكم ورحمة الله وبركاته ارجو منكم مساعدتي في الاستفسار التالي كيف يمكنني أن احدد قيمة لخلية معينة في شيت الاكسل على أن تكون تلك القيمة دالة رياضية واذا تم إدخال قيمة غير الدالة لا تقبل الخلية تلك القيمة؟ مثلا في ملف الاكسل عندي ورقة عمل اسمها Sheet1 واريد أن تكون قيمة الخلية E1 الدالة (A1:D1)SUM واذا تم إدخال قيمة عددية أو نص أو صيغة رياضية أو دالة رياضية غير دالة SUM في الخلية E1 يتم رفض تلك القيمة مع خالص شكري لكم جميعا
abouelhassan قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 جرب لتحقيق ذلك، يمكنك استخدام حدث `Worksheet_Change` في VBA للتحقق من القيمة المدخلة ورفضها إذا لم تكن القيمة المطلوبة. هناك عدة طرق لتحقيق ذلك، وإليك كيف يمكن القيام بذلك: 1. افتح ملف الـ VBA في Excel بالضغط على `Alt + F11`. 2. اختر ورقة العمل التي تريد تطبيق القاعدة عليها من الشريط الجانبي في VBA. 3. انقر مرتين على ورقة العمل لتفتح محرر الـ VBA لها. 4. اختر `Worksheet` من القائمة المنسدلة في الأعلى ثم اختر `Change` من القائمة المنسدلة الثانية. 5. قم بإضافة الكود التالي: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("E1")) Is Nothing Then If Target.Value <> "=SUM(A1:D1)" Then Application.EnableEvents = False Me.Range("E1").Value = "=SUM(A1:D1)" Application.EnableEvents = True MsgBox "Only the SUM function is allowed in cell E1.", vbExclamation, "Invalid Input" End If End If End Sub هذا الكود يتحقق من أن القيمة المدخلة في الخلية E1 هي الدالة SUM فقط، وإذا كانت غير ذلك، فسيقوم بإعادة ضبط القيمة إلى الدالة SUM وعرض رسالة تنبيه. 1
محمود بن السماوي قام بنشر فبراير 28, 2024 الكاتب قام بنشر فبراير 28, 2024 شكرا لك استاذنا الكريم ابو الحسن على تفاعلك وسرعة ردك الكود يعمل بشكل جيد لكن لا اريد أن يعيد ضبط الخلية E1 إلى الدالة SUM اذا لم تكن القيمة المدخلة في E1 هي الدالة SUM اريد في حال قام المستخدم بإدخال قيم في الخلية E1 أن لا يقبل غير الدالة SUM وغير ذلك تبقى الخلية E1 فارغة ثانيا استاذنا الكريم هل يمكننا استخدام خاصية التحقق من صحة البيانات بدلا عن الكود ؟ مع خالص الشكر والاحترام
abouelhassan قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 جرب 1. انتقل إلى القائمة "البيانات" في Excel. 2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات". 3. في القائمة المنسدلة، اختر "تكوين القاعدة". 4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة. 5. في مربع الحوار "صيغة"، ادخل الصيغة التالية: =ISFORMULA(E1) `، ثم اختر "موافق". هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة.
محمود بن السماوي قام بنشر فبراير 28, 2024 الكاتب قام بنشر فبراير 28, 2024 29 دقائق مضت, abouelhassan said: جرب 1. انتقل إلى القائمة "البيانات" في Excel. 2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات". 3. في القائمة المنسدلة، اختر "تكوين القاعدة". 4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة. 5. في مربع الحوار "صيغة"، ادخل الصيغة التالية: =ISFORMULA(E1) `، ثم اختر "موافق". هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة. حفظك الله استاذنا لقد جربت ISFORMULA(E1)= من قبل لكنها لم تؤدي الغرض المطلوب وهو أن أجبر المستخدم على إدخال الدالة SUM في الخلية E1 لأن عندما نجعل قيم الخلية E1 من نوع ISFORMULA سيكون بإمكان المستخدم إدخال اي دالة رياضية وكتابة اي صيغة رياضية كالجمع والطرح والقسمة والضرب في الخلية E1 خالص شكري لك على تعاونك ما قصرت يعطيك الف عافية
محمود بن السماوي قام بنشر فبراير 28, 2024 الكاتب قام بنشر فبراير 28, 2024 50 دقائق مضت, abouelhassan said: جرب 1. انتقل إلى القائمة "البيانات" في Excel. 2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات". 3. في القائمة المنسدلة، اختر "تكوين القاعدة". 4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة. 5. في مربع الحوار "صيغة"، ادخل الصيغة التالية: =ISFORMULA(E1) `، ثم اختر "موافق". هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة. استاذنا الكريم اعذرني أن شغلتك بس حبيت اوضح لك ان من خلال محاولتي استخدام التحقق من صحة البيانات يمكننا استبدال ISFORMULA(E1) بالصيغة التالية AND($E$1=SUM($A$1:$D$1)) وهنا سنحصر القيم المدخلة في الخلية E1 لتقبل فقط الدالة (A1:D1)SUM وتقبل أيضا صيغة الجمع A1+B1+C1+D1 وترفض كل الدوال والصيغ الأخرى فهل من طريقة لجعل الخلية E1 ترفض صيغة الجمع وتقبل فقط دآلة SUM خالص تحياتي لك
abouelhassan قام بنشر فبراير 29, 2024 قام بنشر فبراير 29, 2024 تفضل اخي =AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)") هذه الصيغة تحتوي على الدالة `EVALUATE` التي تقوم بتقييم الصيغة الموجودة في الخلية E1 وتحويلها إلى نص. ثم تتأكد الصيغة الناتجة تساوي الصيغة المطلوبة "=SUM($A$1:$D$1)"، وإذا كانت تساوي سترجع TRUE، وإلا سترجع FALSE.
محمود بن السماوي قام بنشر مارس 2, 2024 الكاتب قام بنشر مارس 2, 2024 في 29/2/2024 at 08:52, abouelhassan said: تفضل اخي =AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)") هذه الصيغة تحتوي على الدالة `EVALUATE` التي تقوم بتقييم الصيغة الموجودة في الخلية E1 وتحويلها إلى نص. ثم تتأكد الصيغة الناتجة تساوي الصيغة المطلوبة "=SUM($A$1:$D$1)"، وإذا كانت تساوي سترجع TRUE، وإلا سترجع FALSE. للاسف استاذنا العزيز ابو الحسن هذه الصيغة AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)") تعمل فقط مع شيتات جوجل google sheets ولا تعمل مع Office 2016
محمود بن السماوي قام بنشر مارس 9, 2024 الكاتب قام بنشر مارس 9, 2024 في 28/2/2024 at 16:27, محمود بن السماوي said: السلام عليكم ورحمة الله وبركاته ارجو منكم مساعدتي في الاستفسار التالي كيف يمكنني أن احدد قيمة لخلية معينة في شيت الاكسل على أن تكون تلك القيمة دالة رياضية واذا تم إدخال قيمة غير الدالة لا تقبل الخلية تلك القيمة؟ مثلا في ملف الاكسل عندي ورقة عمل اسمها Sheet1 واريد أن تكون قيمة الخلية E1 الدالة (A1:D1)SUM واذا تم إدخال قيمة عددية أو نص أو صيغة رياضية أو دالة رياضية غير دالة SUM في الخلية E1 يتم رفض تلك القيمة مع خالص شكري لكم جميعا شكرا لاستاذنا القدير ابو الحسن على تفاعله مع الاستفسار الذي طرحته لقد قمت بحل الموضوع بهذا الكود عند حدت التبديل في شيت الاكسل وادى الغرض المطلوب الى حد كبير Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Me.Range("E1").Formula = "=SUM(A1:D1)" Then Me.Range("E1").Value = "=SUM(A1:D1)" Else Me.Range("E1").Value = "" End If End Sub
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.