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

ارجو المساعده بكود ستخراج البيانات


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

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

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

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

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

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

استخراج.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

تحياتي

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

اخى الكريم

احمد

بارك الله فيك

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

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

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

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

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

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

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

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

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

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

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

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

اخى الكريم

احمد بارك الله فيك

ولكن هل يمكن شرح

lsta = Cells(Rows.Count, 1).End(xlUp).Row

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

If lsta > lstb Then lst = lsta Else lst = lstb

For x = 4 To lst

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

<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