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

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

قام بنشر

الاخوه الافاضل

اريد كود يقوم باستخراج بيانات فى العمود الثالث

بناء على البيانات المدخله

فى العمود الاول والعمود الثانى

كما هو مو ضح فى المرفق

استخراج.rar

قام بنشر

الاخ الكريم

ممكن نشرح الكود مع بعض سويا

Cells(x, 3) = 3

هل هذا السطر هو ناتج تحقق الشرطين

If Not IsEmpty(Cells(x, 1)) Then

If Not IsEmpty(Cells(x, 2)) Then

معا

وهل هذا السطر

Else: Cells(x, 3) = 1

هو ناتج تحقق الشرط الاول

If Not IsEmpty(Cells(x, 1)) Then

قام بنشر

الاخ إبراهيم ابوليله

شرحك صحيح

If Not IsEmpty(Cells(x, 1)) Then

If Not IsEmpty(Cells(x, 2)) Then

Cells(x, 3) = 3 يتحقق في حالة ثبوت الحالة الاولي و الثانية

Else: Cells(x, 3) = 1 يتحقق في حالة ثبوت الحالة الاولي و عدم ثبوت الحالة الثانية

End If

Else

If Not IsEmpty(Cells(x, 2)) Then Cells(x, 3) = 2 Else Cells(x, 3).ClearContents

في حالة عدم ثبوت الحالة الاولي (اي ان الخلية في العمود a فارغة) يتحقق من ما اذا كان هناك بيانات في العمود b ان كان فيضع 2 في العمود c و و ان لم يكن فيمسح القيمة في العمود c (لانه لايوجد بيانات في العمود الاول ولا الثاني)

End If

تحياتي

قام بنشر (معدل)

اخى الكريم

احمد

بارك الله فيك

ومشكورا على الشرح الوفير

ولكن هل يمكن التعديل على الكود

حيث انه من الملاحظ

انه فى حاة مثلا

اذا تطلب الامر بدا الكتابه فى العمود الثانى اكثر من مره

واصبح العمود الاول فارغا

فعند الضغط على الزر لن يتم استخراج شيئا

الا اذا تم الكتابه فى العمود الاول

هل يمكن التعديل

بحيث يتم استخراج البيانات

سواء تم الكتابه فى العمود الاول او العمود الثانى

تم تعديل بواسطه إبراهيم ابوليله
قام بنشر

<p><span style="color: rgb(40, 40, 40); font-family: tahoma, arial, verdana, sans-serif; line-height: 22px; text-align: right;">lsta = Cells(Rows.Count, 1).End(xlUp).Row    يحسب السطر الاخير للعمود الاول</span><br style="color: rgb(40, 40, 40); font-family: tahoma, arial, verdana, sans-serif; line-height: 22px; text-align: right;" />

<span style="color: rgb(40, 40, 40); font-family: tahoma, arial, verdana, sans-serif; line-height: 22px; text-align: right;">lstb = Cells(Rows.Count, 2).End(xlUp).Row   </span><span style="color: rgb(40, 40, 40); font-family: tahoma,

قام بنشر

اسف عطل غير مقصود

lsta = Cells(Rows.Count, 1).End(xlUp).Row ياخذ قيمة اخر خلية في العمود a

lstb = Cells(Rows.Count, 2).End(xlUp).Row

ياخذ قيمة اخر خلية في العمود b

If lsta > lstb Then lst = lsta Else lst = lstb يرجح بين القيمتين و يأخذ الاكبر

For x = 4 To lst بداية الحلقة من الصف الرايع الي اخر خلية (سواء في العمود الاول او الثاني ايهما اكبر)

تحياتي

قام بنشر (معدل)

الخى الكريم

احمد

شرح وافى

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

بارك الله فيك

ولكن عزرا للاطاله.

فماذا لو اردنا اضافة عمود ادخال اخر

ليصبح العمود C هو عمود الادخال الثالث

بعد العمود A والعمود B

ويصبح العمود الرابع اى العمود D

هو العمود الذى يستخرج فيه الارقام 1 , 2 , 3 ,4

حيث سيتم كتابة الرقم 4 فى حالة

فى العمود الرابع فى حالة وجود بيانات بالعمود الثالث فقط

ارجو المساعده

تم تعديل بواسطه إبراهيم ابوليله
قام بنشر

اخي الكريم ارجو ان توضح الاتي

في حالة وجود بيانات في a و b ما القيمة المفروض وضعها في

العمود الرابع اى العمود D

في حالة وجود بيانات في bو c ما القيمة المفروض وضعها في

العمود الرابع اى العمود D

في حالة وجود بيانات في a وc ما القيمة المفروض وضعها في

العمود الرابع اى العمود D

تحياتي

  • 3 weeks later...

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.

×
×
  • اضف...

Important Information