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

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


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

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

اخواني

المطلوب عمل زر امر لكود برمجي للبحث في العامود

A

واذا كان الرقم غير موجود في القائمه للعامود

A

يتم ادراج هذا الرقم الغيير موجود في العامود

C

شاكر مجهوداتكم المشهوده

Nr_not_in_the_list.rar

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

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

أخي هذا حل بالمعادلات قد يفي بطلبك

في الخلية F2 ضع المعادلة التالية :


=IFERROR(INDEX($A$2:$A$9,SMALL(IF(1-ISNUMBER(MATCH($A$2:$A$9,$C$2:$C$12,0)),ROW($A$2:$A$9)-ROW($A$2)+1),ROW(1:1))),"")

و هي معادلة صفيف فلا تنسى الضغط على Ctrl+Sift+Enter

Nr_not_in_the_list-يحيى حسين.rar

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

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

أخي الكريم، أقدم لك الملف المرفق التالي وإن شاء الله تجد به المطلوب... هو عبارة عن كود (لا أتذكر من وضعه في موضوع سابق) قمت ببعض التغييرات عليه وفق ما يتطلبه حل هذه المسألة...

أرجو أن يفي بالغرض المطلوب...

أخوك بن علية

Nr_not_in_the_list.rar

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

لا بأس بحل ثالث عن طريق الكود

باستخدام مصفوفة

Sub nOTiNlIST()

Dim MYLIST(1000)

Dim MYRNG As Range

Application.ScreenUpdating = False

LASTROW = Range("A" & Rows.Count).End(xlUp).Row

Dim I As Long

For I = Sheets(1).Range("A2") To Sheets(1).Range("A" & LASTROW)

MYLIST(I) = I

Next I

Set MYRNG = Sheets(1).Range("A2:A" & LASTROW - 1)

K = 2

For X = 1 To UBound(MYLIST)

If Application.WorksheetFunction.CountIf(MYRNG, MYLIST(X)) = 0 Then

Range("C" & K) = MYLIST(X)

K = K + 1

End If

Next X

Application.ScreenUpdating = True

End Sub

Nr_not_in_the_list-KEMAS.rar

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

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

أكيد أخي كيماس لا بأس بحل ثالث و رابع و خامس فكثرة الحلول بها الفائدة الحقيقة

على كل حال يبدو أني فهمت المطلوب بشكل خاطئ

فبعدما رأيت حلول الأخوة فهمت انك تريد قائمة بالأرقام بين رقمين بإستثناء الأرقام الموجودة في النطاق الأول

و لعمل ذلك عدلت المعادلة أعلاه لتصبح كالتالي


=INDEX(ROW(INDIRECT($A$2&":"&$A$10)),SMALL(IF(1-ISNUMBER(MATCH(ROW(INDIRECT($A$2&":"&$A$10)),$A$2:$A$10,0)),ROW(INDIRECT($A$2&":"&$A$10))),ROW(1:1)))

و لا تنسى الضغط على Ctrl+Shift+Enter

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

السلام عليكم

فكما قال اخي وحبيبي يحيى بشأن تعداد الحلول

هنا حل اخر

Range([c2], Cells([c25000].End(xlUp).Row, 3)) = Empty

For j = 1 To [a25000].End(xlUp).Value

If Application.WorksheetFunction.CountIf(Range([a2], Cells([a25000].End(xlUp).Row - 1, 1)), j) = 0 Then [c25000].End(xlUp).Offset(1, 0).Value = j

Next j

Nr_not_in_the_list.rar

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

عودا حميدا أستاذ يحيى حسين

أنت تلعب بمهارة فى معادلات الصفيف

وفقك الله و زارك علما

الحمد لله رب العاملين اخي عبدالفتاح

فا أنت كما تعلم اني من عشاق المعادلات

دعواكم اخي الحبيب

السلام عليكم

فكما قال اخي وحبيبي يحيى بشأن تعداد الحلول

هنا حل اخر

Range([c2], Cells([c25000].End(xlUp).Row, 3)) = Empty

For j = 1 To [a25000].End(xlUp).Value

If Application.WorksheetFunction.CountIf(Range([a2], Cells([a25000].End(xlUp).Row - 1, 1)), j) = 0 Then [c25000].End(xlUp).Offset(1, 0).Value = j

Next j

الاخ الحبيب الحسامي

دائماً مبدع بمداخلاتك و حلولك الرائعة

دمتم في حفظ الله

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

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