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

مساعدة.بالبحث عن اسم في خلية بعدة جداول , ثم أخذ قيمة خلية معينة .عند تحقق الشرط


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

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

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

جربت معادله Vlookup  ولكن تعتمد على نطاق واحد فقط وليس عدة نطاقات او جداول .

http://982484167.jpg

البحث_بشروط.rar

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

ريما كان المطلوب

الكود

Option Explicit
Sub give_data()
Dim m%, i%, x%, my_st$
Dim a As Boolean
Dim match%
x = Range("Source_tabl").Rows.Count
Dim find_range As Range

Range("Source_tabl").Offset(1, 1).ClearContents
For m = 2 To x
     my_st = Range("Source_tabl").Columns(1).Cells(m)
        If my_st = vbNullString Then Exit For
       For i = 1 To 3
           a = IsError(Application.match(my_st, Range("tabl_" & i).Columns(1), 0))
             If Not a Then
                match = Application.match(my_st, Range("tabl_" & i).Columns(1), 0)
                Set find_range = Range("tabl_" & i).Columns(1). _
                Cells(match).Offset(-match + 1, -1)
                Range("Source_tabl").Columns(2).Cells(m) = find_range.Value
                Range("Source_tabl").Columns(3).Cells(m) = Range("tabl_" & i) _
               .Columns(3).Cells(match)
                GoTo 1
            End If
        Next
1:
Next
End Sub

الملف

 

البحث_بشروط Salim.xlsm

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

23 ساعات مضت, سليم حاصبيا said:

ريما كان المطلوب

الكود


Option Explicit
Sub give_data()
Dim m%, i%, x%, my_st$
Dim a As Boolean
Dim match%
x = Range("Source_tabl").Rows.Count
Dim find_range As Range

Range("Source_tabl").Offset(1, 1).ClearContents
For m = 2 To x
     my_st = Range("Source_tabl").Columns(1).Cells(m)
        If my_st = vbNullString Then Exit For
       For i = 1 To 3
           a = IsError(Application.match(my_st, Range("tabl_" & i).Columns(1), 0))
             If Not a Then
                match = Application.match(my_st, Range("tabl_" & i).Columns(1), 0)
                Set find_range = Range("tabl_" & i).Columns(1). _
                Cells(match).Offset(-match + 1, -1)
                Range("Source_tabl").Columns(2).Cells(m) = find_range.Value
                Range("Source_tabl").Columns(3).Cells(m) = Range("tabl_" & i) _
               .Columns(3).Cells(match)
                GoTo 1
            End If
        Next
1:
Next
End Sub

الملف

 

البحث_بشروط Salim.xlsm

بالملي يااستاذ/ سليم

اشكرك جزيل الشكر..نعم هذا كان المطلوب 

وفقك الله واسعدك 

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

بعد التحية الخالصه للجميع

عزيزي: استاذ/سليم

اشكرك مرة اخرى لجهودك جعلها الله في موازين حسناتك

الكود رائع و اريد تعديل صغير وذلك بسبب بان الكود لايستأنف العمل بعد الخلايا الفارغه. بداخل جدول (Source_tabl)

 

If my_st = "" Then GoTo 1

قمت باأضافه هذا الكود  هل هو مناسب؟

من ناحية السرعه في حال ان البيانات كثيره

خالص تقديري

البحث_بشروط Salim.rar

تم تعديل بواسطه ابوالبراءءء
قمت بأضافه كود جديد
رابط هذا التعليق
شارك

هذا الكود لمثل هذه الحالة

Option Explicit
Sub give_data_salim()
Dim m%, i%, x%, my_st$
Dim a As Boolean
Dim match%, k%: k = 1
x = Range("Source_tabl").Rows.Count
Dim find_range As Range

Range("Source_tabl").Offset(1, 1).ClearContents
For m = 2 To x
        my_st = Range("Source_tabl").Columns(1).Cells(m)
        If my_st = vbNullString Then k = k + 1: GoTo 2
       For i = 1 To 4
           a = IsError(Application.match(my_st, Range("tabl_" & i).Columns(1), 0))
             If Not a Then
                match = Application.match(my_st, Range("tabl_" & i).Columns(1), 0)
                Set find_range = Range("tabl_" & i).Columns(1). _
                Cells(match).Offset(-match + 1, -1)
                Range("Source_tabl").Columns(2).Cells(k + 1) = find_range.Value
                Range("Source_tabl").Columns(3).Cells(k + 1) = Range("tabl_" & i) _
               .Columns(3).Cells(match)
                k = k + 1
               GoTo 2
            End If
       Next
2:
Next
End Sub

 

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

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