اذهب الي المحتوي
أوفيسنا

إستخراج (إستخلاص) قيم من مدخلات خلية


Eid Mostafa

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

الأخوة الأعزاء

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

كل عام وأنتم بخير بمناسبة عيد الأضحى المبارك ..................

بالملف المرفق ستجدون بالخلية D2 أنه قد تم إدخال قيمتان (=66863+2105)، أريد بالخلية F5 إستخراج (إستخلاص) القيمة الأولى فقط وهى (66863) وبالخلية H5 إستخراج (إستخلاص) القيمة الثانية فقط وهى (2105).

فهل هذا بالإمكان ........ ؟

أرجو أن أكون قد وفقت فى شرح ما أقصدة.

خالص شكرى وتقديرى

أخوكم

عيد مصطفى

Book111.rar

رابط هذا التعليق
شارك

أخي الفاضل الأستاذ ( عيد )

كل سنة وأنت طيب أولا بالعيد أعادة الله عليك وعلي الأسرة الكريمة بألف خير

ثانيا - هل يمكن الأستغناء في معادلة الجمع عن علامة (= )

إذا كانت الأجابة ( نعم ) فالحل أصبح سهلا أما إذا كان ( لا ) نبحث عن طريقة أخري

تم تعديل بواسطه mahmoud-lee
رابط هذا التعليق
شارك

أخى الحبيب محمود

كل عام وأنت طيب وبخير أعادة الله عليك وعلى أسرتك الكريمة وعلى الأمه الإسلامية جميعها بألف خير وسلام

أخى الحبيب أنا أعلم أن المشكله فى علامة (=) وهو الأمر الذى قابلنى ولم أتمكن من حله وهذا سبب إرسالى لطلب المساعدة

فللأسف القيمة بالخلية D2 تحتوى على جمع القيمتان لذا فهى تحتوى على تلك العلامه.

أخى الحبيب (محمود) إن كان الأمر ليس بالإمكان فلا عليك إطلاقاً ، وسأحاول أن أبحث عن طريقة أخرى بملف العمل لتسهيل الأمر وكى أتمكن من إستخراج القيمتان كل على حده.

مرة أخرى خالص التهانى بعيد الأضحى المبارك

أخوك

عيد مصطفى

تم تعديل بواسطه Eid Mostafa
رابط هذا التعليق
شارك

العفو أخي وكل عام وحضرتك بخير

علي العموم هذا مرفق فصل محتوي الخلية بعد إزالة علامة ( = )

لعلة يفيد لحين البحث عن حل أخر من قبلي أومن قبل الأساتذة وأعضاء المنتدي

فصل جمع رقم.rar

تم تعديل بواسطه mahmoud-lee
رابط هذا التعليق
شارك

أخى الحبيب محمود

أشكرك على إهتمامك بالرد أولاً

وأشكرك على محاولتك القيمة ثانياً

وأكررها لك مرة أخرى أخى الحبيب (محمود) إن كان الأمر ليس بالإمكان فلا عليك إطلاقاً.

ويكفينى جداً قيامك بالمحاوله.

مرة أخرى خالص التهانى بعيد الأضحى المبارك

أخوك

عيد مصطفى

رابط هذا التعليق
شارك

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

أخواي الكريمين عيد ومحمود، حسب معرفتي بالإكسيل لا أعتقد أن هذا الطلب ممكن باستعمال المعادلات (لا توجد دالة تقوم باستخلاص معادلة في خلية على شكل نص) (ولست أدري إن كان ذلك ممكنا بواسطة VBA)... لو أدخلت المعادلة على شكل نص مثل :

'=66863+2105

فهذا ممكن جدا لأنه يسهل التعامل مع النصوص باستعمال دوال كثيرة...

والله أعلى وأعلم

أخوكم بن علية

رابط هذا التعليق
شارك

السلام عليكم

استخدم هذه الداله المعرفه

1 يعطيك الشرط الاول

2 يعطيك الشرط الاخر

بالشكل التالي تعطيك المعادله "2105"


=Ali_F(D2;2)


Public Function Ali_F(R As Range, V As Integer) As Long

Dim A, B

B = Mid(R.Formula, InStr(R.Formula, "+") + 1)

If Val(V) = 1 Then

A = Mid(R.Formula, InStr(R.Formula, "=") + 1, 5)

ElseIf Val(V) = 2 Then

A = Mid(R.Formula, Right$(InStr(R.Formula, "+"), Len(B)))

End If

Ali_F = A

End Function

تم تعديل بواسطه عباد
رابط هذا التعليق
شارك

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

أخي الكريم عباد، والله كود جميل ورائع بارك الله فيك وجزاك الله كل الخير، زادك الله علما وفيرا وأحسن إليك... واسمح لي أن أبدي ملاحظة فيما يخص القيمة الأولى A يستحسن عدم استعمال هذه الدالة المخصصة لأن في الكود جعلت القيمة A من 4 أرقام إلى 5 أرقام ولا يقبل غيرها... وبدل هذا وللحصول على قيمة A (القيمة الأولى) نقوم بعملية بسيطة "عملية طرح" "القيمة الإجمالية (A+B) - قيمة B (القيمة الثانية في المجموع المحصل عليها بوساطة الدالة المخصصة)"، وفي هذه الحالة نتحصل على قيمة A مهما كان عدد أرقامها...

وأعود وأقول إن الكود رائع جدا...

أخوك بن علية

رابط هذا التعليق
شارك

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

الأستاذ الكبير / العيدروس

الاستاذ الكبير / بن عليه

بعد التحية

اسمحا لى أن اتعلم منكا وأنتما أستاذان كبيران

لقد لاحظت نفس ملاحظة الاستاذ الكبير بن عليه على هذا الكود الرائع

ولقد سمحت لنفسى بتعديل بسيط عليه حتى يعمل مع جميع الأرقام

وعلى فكرة انا خبرتى ضعيفة جدا فى الدوال المعرفة

فارجو أن يكون التعديل صحيحا

وهذا هو التعديل


Public Function Ali_F(R As Range, V As Integer) As Long

Dim A1, A2, B, C

B = Mid(R.Formula, InStr(R.Formula, "+") + 1)

C = Mid(R.Formula, InStr(R.Formula, "=") + 1)

A1 = Mid(R.Formula, Right$(InStr(R.Formula, "+"), Len(B)))

A2 = Mid(R.Formula, InStr(R.Formula, "=") + 1, Len(C) - Len(B))

If Val(V) = 1 Then

Ali_F = A1

ElseIf V = 2 Then

Ali_F = A2

End If

End Function

فصل أرقام من دالة جمع.rar

رابط هذا التعليق
شارك

الأخ الحبيب / محمود ----------

الأخ الحبيب / بن علية ----------

الأخ الحبيب / عباد (أبو نصار)

:wink2: ----------

الأخ الحبيب / رجب جاويش ----------

أشكركم جميعاً أولاً على تفاعلكم الأكثر من رائع هذا

كما أشكركم جميعاً ثانياً على آرائكم ومقترحاتكم القيمة وحلولكم الأكثر من رائعه

:fff: :fff: :signthankspin::signthankspin::fff: :fff:

خالص شكرى وتقديرى

أخوكم

عيد مصطفى

رابط هذا التعليق
شارك

السلام عليكم

بارك الله فيكم الجمع المبارك

وكل عام وانتم بخير

=====================

لاثراء الموضوع :

الدالة ادناه يمكنك استخدامها

مهما كان عدد الارقام المضافة

واي طول للرقم

مثلا:

=12+1222+111
=12345+1222
عين تسلسل الرقم المضاف في المتغير iNdx 1 للقيمة الاولى , 2 للقيمة الثانية , 3 للقيمة الثالثة .... وهكذا
=kh_ShowValue($D$2;1)
كود الدالة:

Function kh_ShowValue(RngFormla As Range, iNdx As Integer)

Dim sFm As String

sFm = Mid$(RngFormla.Formula, 2)

kh_ShowValue = Split(sFm, "+")(iNdx - 1)

End Function

تقبلوا تحياتي وشكري

رابط هذا التعليق
شارك

الأخ الحبيب / عبد الله باقشير ----------

أشكرك أيضاً على تفاعلك هذا وإثرائك للموضوع

:fff: :fff: :signthankspin::signthankspin::fff: :fff:

خالص شكرى وتقديرى

أخوك

عيد مصطفى

تم تعديل بواسطه Eid Mostafa
رابط هذا التعليق
شارك

ماشاء الله بصراحة شئ رائع وهنا أستعير دعاء عالمنا الجليل ( عبد الله باقشير )

بارك الله فيكم الجمع المبارك

وكل عام وانتم بخير

رابط هذا التعليق
شارك

الأخوة والأساتذة الكبار

كم أنا سعيد بهذا الجمع من عمالقة وخبراء المنتدى

وهو مايفوق سعادتى بتفاعلكم هذا وإثرائكم للموضوع

:fff: :fff: :signthankspin::signthankspin::fff: :fff:

اللهم جمعنا دائماً على ما فيه الخير

وكل عام وأنتم والأمه الإسلامية جميعها بخير

خالص شكرى وتقديرى

أخوكم

عيد مصطفى

تم تعديل بواسطه Eid Mostafa
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information