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

VLOOKUP عن طريق الكود


mhfouzm

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

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

كل عام وانتم بخير _ بمناسبه شهر رمضان الكريم

كيف يمكن ان يتم تفجير الكود تلقائيا بان يقوم بالقراءه الاليه لمحتويات الخلايا بالنطاق ("A2:B20") وارجاع القيمه المقابله للداله

Private Sub Worksheet_Activate

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Row >= 2 And Target.Row <= 20 Then
 Me.Cells(Target.Row, 4).Value = Application.WorksheetFunction.VLookup(Target.Value, Me.Range("A2:B20").Value, 2, False)
End If
End Sub

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

في حالة الرغبة في تشغيل الكود بمجرد الوقوف على الصفحة المعنية .. يتم تعديل الكود إلى التالي:

Private Sub Worksheet_Activate()

On Error GoTo Ali

For C = 2 To 20
If Cells(C, 3) <> "" Then
Cells(C, 4) = Application.WorksheetFunction.VLookup(Cells(C, 3), [A2:B20], 2, 0)
End If
Next
Exit Sub

Ali:
  If Err <> 0 Then
    MsgBox "هناك رقم أو أكثر غير موجودة في البيانات الأساسية", vbExclamation, "أرقام غير موجودة"
  Else
    Resume
  End If

End Sub

أتمنى أن يكون هذا هو ما تريد،

VLOOKUP__Activate_.rar

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

في هذه الحالة يتم عمل تعديل بسيط جداً على الكود .. وهو إضافة إسم الصفحة إلى مجال البحث داخل الدالة VLOOKUP ..

Application.WorksheetFunction.VLookup(Cells(C, 1), Sheet1.[A2:B20], 2, 0)

VLOOKUP__Activate_.rar

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

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

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

الكود يعمل بحاله جيده _ وذلك هو المطلوب باضافه تعديل واحد وهو ان الداله تقوم بالبحث في المجال المحدد في sheet اخر .

اقتباس

هل ممكن ان يبحث الكود فى ملف اخر

وشكرا

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

الاخ علي جزاك الله خيرا _ وزادك علما

هل ممكن ان يبحث الكود فى ملف اخر وفقا لما يطلبه الاخ LORD

وعند وجود خطا ان يقوم بتجاهله وعدم اظهار رسائل واستكمال العمل علي باقي الخلايا .

If Err <> 0 Then

MsgBox "هناك رقم أو أكثر غير موجودة في البيانات الأساسية", vbExclamation, "أرقام غير موجودة"

Else

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

بالنسبة للبحث في ملف آخر .. فإلى الأن لم أتوصل إلى الحل المناسب.

أما بالنسبة لتجاهل الخطأ وإلغاء خروج الرسالة التنبيهية .. فقم بإستبدال السطر التالي في الكود ..

MsgBox "هناك رقم أو أكثر غير موجودة في البيانات الأساسية", vbExclamation, "أرقام غير موجودة"
إلى هذا السطر:
Me.Activate

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

أشكرك أخي عمر على مساهمتك في هذا الموضوع،

وأنا أيضاً قمت بإعداد كود أخر يقوم بنفس الغرض .. وعلى رأي المثل (زيادة الخير .. خيرين)

وهذا هو الكود:

Private Sub Worksheet_Activate()

On Error Resume Next
Application.ScreenUpdating = False
For C = 2 To 20
If Cells(C, 1) <> "" Then
Cells(C, 2) = "=VLOOKUP(INDIRECT(ADDRESS(ROW(),COLUMN()-1)),[Test.xls]Sheet1!$A$2:$B$20,2,0)"
End If

Next

    [B2:B20].Copy
    [B2].PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    [B2].Select
Application.ScreenUpdating = True

End Sub

Vlookup__Activate_.rar

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

بسم الله الرحمن الرحيم

تحياتى للجميع

استاذنا علي السحيب

تحياتى

بارك الله فيك

كل سنة وحضرتك بخير وجميع المسلمين بخير إن شاء الله

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

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

لا يمكن بوجود ذلك العلم وتلك المجموعه من الاساتذه الا بطلب المزيد

اريد ان يعمل الكود بالرابط التالي بنفس عمل الكود vlookup

http://www.officena.net/ib/index.php?showt...p;hl=sumproduct

هل ممكن وذلك لاحتاجي الشديد له .

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

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

الاساتذه المشرفين والاعضاء لدي ملف ارجوا التكرم من الاعضاء بمساعدتي والتعديل عليه باستخدام VLOO;UP عن طريق الكود

وتقبلوا خالص تحياتي

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

عزيزي الفاضل سبق لي ان اطلعت على الرابط وحاولت ان اعدل على الكود الموجود في المشاركة لتناسب مع الملف الخاص بي ولم استطيع .

لذا امل التكرم من الاخوان التكرم بالاطلاع على ملفي ووضع الكود المناسب

يجزيكم الله عنا كل خير

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

الكود التالي ينفذ لك ما تريد،

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo NotAvailable
  
TC = Target.Column
TR = Target.Row
T = Target
  
If TC = 2 And TR > 21 And T <> "" Then

For A = 3 To 10
For B = 2 To 9

Cells(TR, A) = Application.WorksheetFunction.VLookup(T, [B8:J11], B, 0)
Next
Next

End If
Exit Sub

NotAvailable:

  If Err <> 0 Then
  For C = 2 To 10
  Cells(TR, C).ClearContents
  Next
  
  MsgBox "الرقم الذي أدخلته غير موجود في قاعدة البيانات", vbExclamation, "رقم غير موجود"
  Exit Sub

End If
  
End Sub

Vlookup_in_VBA______________________.rar

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

ماشاء الله يا استاذ على

رائع وممتاز فى جميع ردودك

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

وتنفيذ الكود فى ورقة 2

اى صفحة للبيانات ( ورقة1) واخرى للاستعلام ( ورقة2)

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

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

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

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo NotAvailable
  
TC = Target.Column
TR = Target.Row
T = Target
  
If TC = 2 And TR > 7 And T <> "" Then

For A = 3 To 10
For B = 2 To 9

Cells(TR, A) = Application.WorksheetFunction.VLookup(T, Sheet1.[B8:J11], B, 0)
Next
Next

End If
Exit Sub

NotAvailable:

  If Err <> 0 Then
  For C = 2 To 10
  Cells(TR, C).ClearContents
  Next
  
  MsgBox "الرقم الذي أدخلته غير موجود في قاعدة البيانات", vbExclamation, "رقم غير موجود"
  Exit Sub

End If
  
End Sub

Vlookup_in_VBA______________________.rar

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

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information