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

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

قام بنشر

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

ارجو منكم مساعدتي في الاستفسار التالي

كيف يمكنني أن احدد قيمة لخلية معينة في شيت الاكسل على أن تكون تلك القيمة دالة رياضية واذا تم إدخال قيمة غير الدالة لا تقبل الخلية تلك القيمة؟

مثلا في ملف الاكسل عندي ورقة عمل اسمها Sheet1 واريد أن تكون قيمة الخلية E1 الدالة

(A1:D1)SUM

واذا تم إدخال قيمة عددية أو نص  أو صيغة رياضية أو دالة رياضية غير دالة SUM في الخلية E1 يتم رفض تلك القيمة

مع خالص شكري لكم جميعا

 

قام بنشر

جرب

لتحقيق ذلك، يمكنك استخدام حدث `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 وعرض رسالة تنبيه.

  • Thanks 1
قام بنشر

شكرا لك استاذنا الكريم ابو الحسن على تفاعلك وسرعة ردك

الكود يعمل بشكل جيد

لكن لا اريد أن يعيد ضبط الخلية E1 إلى الدالة SUM 

اذا لم تكن القيمة المدخلة في E1 هي الدالة SUM

اريد في حال قام المستخدم بإدخال قيم في الخلية E1 أن لا يقبل غير الدالة SUM وغير ذلك تبقى الخلية E1 فارغة

ثانيا

استاذنا الكريم

هل يمكننا استخدام خاصية التحقق من صحة البيانات بدلا عن الكود ؟

مع خالص الشكر والاحترام

قام بنشر

جرب

1. انتقل إلى القائمة "البيانات" في Excel.

2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات".

3. في القائمة المنسدلة، اختر "تكوين القاعدة".

4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة.

5. في مربع الحوار "صيغة"، ادخل الصيغة التالية:


=ISFORMULA(E1)

`، ثم اختر "موافق".

 

هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة.

قام بنشر
29 دقائق مضت, abouelhassan said:

جرب

1. انتقل إلى القائمة "البيانات" في Excel.

2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات".

3. في القائمة المنسدلة، اختر "تكوين القاعدة".

4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة.

5. في مربع الحوار "صيغة"، ادخل الصيغة التالية:


=ISFORMULA(E1)

`، ثم اختر "موافق".

 

هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة.

حفظك الله استاذنا

لقد جربت

ISFORMULA(E1)=

من قبل لكنها لم تؤدي الغرض المطلوب وهو أن أجبر المستخدم على إدخال الدالة SUM

في الخلية E1

لأن عندما نجعل قيم الخلية E1 من نوع ISFORMULA

سيكون بإمكان المستخدم إدخال اي دالة رياضية وكتابة اي صيغة رياضية كالجمع والطرح والقسمة والضرب في الخلية E1

خالص شكري لك على تعاونك

ما قصرت يعطيك الف عافية

 

قام بنشر
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

خالص تحياتي لك

قام بنشر

تفضل اخي



=AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)")

 

هذه الصيغة تحتوي على الدالة `EVALUATE` التي تقوم بتقييم الصيغة الموجودة في الخلية E1 وتحويلها إلى نص. ثم تتأكد الصيغة الناتجة تساوي الصيغة المطلوبة "=SUM($A$1:$D$1)"، وإذا كانت تساوي سترجع TRUE، وإلا سترجع FALSE.

قام بنشر
في 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

قام بنشر
في 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.

زائر
اضف رد علي هذا الموضوع....

×   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