محمود بن السماوي قام بنشر فبراير 28 مشاركة قام بنشر فبراير 28 السلام عليكم ورحمة الله وبركاته ارجو منكم مساعدتي في الاستفسار التالي كيف يمكنني أن احدد قيمة لخلية معينة في شيت الاكسل على أن تكون تلك القيمة دالة رياضية واذا تم إدخال قيمة غير الدالة لا تقبل الخلية تلك القيمة؟ مثلا في ملف الاكسل عندي ورقة عمل اسمها Sheet1 واريد أن تكون قيمة الخلية E1 الدالة (A1:D1)SUM واذا تم إدخال قيمة عددية أو نص أو صيغة رياضية أو دالة رياضية غير دالة SUM في الخلية E1 يتم رفض تلك القيمة مع خالص شكري لكم جميعا رابط هذا التعليق شارك More sharing options...
abouelhassan قام بنشر فبراير 28 مشاركة قام بنشر فبراير 28 جرب لتحقيق ذلك، يمكنك استخدام حدث `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 رابط هذا التعليق شارك More sharing options...
محمود بن السماوي قام بنشر فبراير 28 الكاتب مشاركة قام بنشر فبراير 28 شكرا لك استاذنا الكريم ابو الحسن على تفاعلك وسرعة ردك الكود يعمل بشكل جيد لكن لا اريد أن يعيد ضبط الخلية E1 إلى الدالة SUM اذا لم تكن القيمة المدخلة في E1 هي الدالة SUM اريد في حال قام المستخدم بإدخال قيم في الخلية E1 أن لا يقبل غير الدالة SUM وغير ذلك تبقى الخلية E1 فارغة ثانيا استاذنا الكريم هل يمكننا استخدام خاصية التحقق من صحة البيانات بدلا عن الكود ؟ مع خالص الشكر والاحترام رابط هذا التعليق شارك More sharing options...
abouelhassan قام بنشر فبراير 28 مشاركة قام بنشر فبراير 28 جرب 1. انتقل إلى القائمة "البيانات" في Excel. 2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات". 3. في القائمة المنسدلة، اختر "تكوين القاعدة". 4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة. 5. في مربع الحوار "صيغة"، ادخل الصيغة التالية: =ISFORMULA(E1) `، ثم اختر "موافق". هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة. رابط هذا التعليق شارك More sharing options...
محمود بن السماوي قام بنشر فبراير 28 الكاتب مشاركة قام بنشر فبراير 28 29 دقائق مضت, abouelhassan said: جرب 1. انتقل إلى القائمة "البيانات" في Excel. 2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات". 3. في القائمة المنسدلة، اختر "تكوين القاعدة". 4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة. 5. في مربع الحوار "صيغة"، ادخل الصيغة التالية: =ISFORMULA(E1) `، ثم اختر "موافق". هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة. حفظك الله استاذنا لقد جربت ISFORMULA(E1)= من قبل لكنها لم تؤدي الغرض المطلوب وهو أن أجبر المستخدم على إدخال الدالة SUM في الخلية E1 لأن عندما نجعل قيم الخلية E1 من نوع ISFORMULA سيكون بإمكان المستخدم إدخال اي دالة رياضية وكتابة اي صيغة رياضية كالجمع والطرح والقسمة والضرب في الخلية E1 خالص شكري لك على تعاونك ما قصرت يعطيك الف عافية رابط هذا التعليق شارك More sharing options...
محمود بن السماوي قام بنشر فبراير 28 الكاتب مشاركة قام بنشر فبراير 28 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 خالص تحياتي لك رابط هذا التعليق شارك More sharing options...
abouelhassan قام بنشر فبراير 29 مشاركة قام بنشر فبراير 29 تفضل اخي =AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)") هذه الصيغة تحتوي على الدالة `EVALUATE` التي تقوم بتقييم الصيغة الموجودة في الخلية E1 وتحويلها إلى نص. ثم تتأكد الصيغة الناتجة تساوي الصيغة المطلوبة "=SUM($A$1:$D$1)"، وإذا كانت تساوي سترجع TRUE، وإلا سترجع FALSE. رابط هذا التعليق شارك More sharing options...
محمود بن السماوي قام بنشر مارس 2 الكاتب مشاركة قام بنشر مارس 2 في 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 رابط هذا التعليق شارك More sharing options...
محمود بن السماوي قام بنشر مارس 9 الكاتب مشاركة قام بنشر مارس 9 في 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 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.