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

مطلوب كود بحث وترحيل يعني مثل دالة Lookup لكن بالكود


nash60

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


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

اخواني الكرام :

 

اسعد الله مسائكم  مرفق ملف اكسل المطلوب  كود بحث بناءا على متغيرين وليس دالة اريد الحل
بالكود ان تكرمتم


وشرح المطلوب موجود في الملف المرفق بارك
الله فيكم وجزاكم عنا الف خير .

 

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





 

Test02.rar

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

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

 

اخي الفاضل

جرب الكود التالي

Sub SYMBOOL()
Dim FS As Worksheet, TS As Worksheet
Dim FR, TR, ER1, ER2, Q1, Q2
Set FS = Sheets("Symbol") ' ãä æÑÞÉ
Set TS = Sheets(ActiveSheet.Name) ' Çáì æÑÞÉ
ER1 = FS.UsedRange.Rows.Count ' ÚÏÏ ÇáÕÝæÝ
ER2 = TS.UsedRange.Rows.Count ' ÚÏÏ ÇáÕÝæÝ
Q2 = TS.Range("P1") ' ÇÓã ÇáÓæÞ
For TR = 2 To ER2
Q1 = TS.Cells(TR, 1) ' ÇÓã ÇáÔÑßÉ
For FR = 2 To ER1
If FS.Cells(FR, 1) = Q1 And FS.Cells(FR, 6) = Q2 Then
TS.Cells(TR, 15) = FS.Cells(FR, 3)
GoTo 9
End If
Next FR
9
Next TR



End Sub

 

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

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


اخي الفاضل

جرب الكود التالي
Sub SYMBOOL()
Dim FS As Worksheet, TS As Worksheet
Dim FR, TR, ER1, ER2, Q1, Q2
Set FS = Sheets("Symbol") ' ãä æÑÞÉ
Set TS = Sheets(ActiveSheet.Name) ' Çáì æÑÞÉ
ER1 = FS.UsedRange.Rows.Count ' ÚÏÏ ÇáÕÝæÝ
ER2 = TS.UsedRange.Rows.Count ' ÚÏÏ ÇáÕÝæÝ
Q2 = TS.Range("P1") ' ÇÓã ÇáÓæÞ
For TR = 2 To ER2
Q1 = TS.Cells(TR, 1) ' ÇÓã ÇáÔÑßÉ
For FR = 2 To ER1
If FS.Cells(FR, 1) = Q1 And FS.Cells(FR, 6) = Q2 Then
TS.Cells(TR, 15) = FS.Cells(FR, 3)
GoTo 9
End If
Next FR
9
Next TR



End Sub



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

اخي الكريم احمد :

بداية اود ان اشكرك جزيل الشكر على تكرمك بالرد علي

وبالنسبة للكود وضعته في موديل وعملت استدعاء للموديل في حدث عند ( Private Sub Worksheet_Change ) في ورقة ابوظبي والسعودية وشكل الكود اشتغل وحضر

رموز الشركات بالإنجليزية ولكن استمرت الشاشة بالوميض ثم اصبحت سوداء وعدم استجابة

فان امكن ان تكمل معروفك وتعدل عليه ليعمل بالشكل المطلوب

واكرر شكري لك

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

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

اخي احمد

مرفق الملف بعد اضافة الكود وبعد تحديث البيانات يعمل الكود دون توقف وتهنز الشاشة حتى اغلاق الملف

من مدير المهام

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

وشكرا

Test02.rar

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

السلام عليكم

كدة الوضع اختلف

لأن الكود في حدث تغيير الورقة

ولكن  تم عمل الكود على اساس تعمل زر فقط تحديث

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

 

اذا الموضوع محتاج تعديل

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

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

 

نعم اخي الكريم هو حيكون في حدث عند تغيير البيانات والحق علي لاني ما وضحت من البداية لان البيانات تحدث من النت مباشرة فعند عمل تحديث

للبيانات يتم تحديث رموز الشركات معها مباشرة وانا اسف جدا لاني ما وضحت من البداية وغلبتك معاي

وان شاء الله ربنا يجعله في ميزان حسناتك

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

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

السلام عليكم

 

يتم التغيير او البحث بمجرد الكتابه في العمود1 الى هوة A

 

ويتم التعامل مع الصف الحالي فقط

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub

 Application.ScreenUpdating = False
 Dim FS As Worksheet, TS As Worksheet
 Dim FR, TR, ER1, ER2, Q1, Q2
 Set FS = Sheets("Symbol") ' ?? ???E
 Set TS = Sheets(ActiveSheet.Name) ' C?? ???E
 ER1 = FS.UsedRange.Rows.Count ' ?II C?????
 Q2 = TS.Range("P1") ' C?? C????
TR = Target.Row
 Q1 = TS.Cells(TR, 1) ' C?? C?O??E
 For FR = 2 To ER1
 If FS.Cells(FR, 1) = Q1 And FS.Cells(FR, 6) = Q2 Then
 TS.Cells(TR, 15) = FS.Cells(FR, 3)
 GoTo 9
 End If
 Next FR
9
Application.ScreenUpdating = True
End Sub

 

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

اخي احمد :

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

شكرا لك مرة اخرى ولكن يا ريت لو تجرب تضغط كلك يمين الماوس وتختار تحديث وسيتم تحديث البيانات من خلال النت لكن الرموز لم تظهرفي العمود O 

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

خلال النت 

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

 مع فائق الاحترام والتقدير.

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

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

اخي الفاضل في هذه الحالة استخدم الكود القديم مع زر في نفس الورقة

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


اخي الفاضل

جرب الكود التالي
Sub SYMBOOL()
Dim FS As Worksheet, TS As Worksheet
Dim FR, TR, ER1, ER2, Q1, Q2
Set FS = Sheets("Symbol") ' ãä æÑÞÉ
Set TS = Sheets(ActiveSheet.Name) ' Çáì æÑÞÉ
ER1 = FS.UsedRange.Rows.Count ' ÚÏÏ ÇáÕÝæÝ
ER2 = TS.UsedRange.Rows.Count ' ÚÏÏ ÇáÕÝæÝ
Q2 = TS.Range("P1") ' ÇÓã ÇáÓæÞ
For TR = 2 To ER2
Q1 = TS.Cells(TR, 1) ' ÇÓã ÇáÔÑßÉ
For FR = 2 To ER1
If FS.Cells(FR, 1) = Q1 And FS.Cells(FR, 6) = Q2 Then
TS.Cells(TR, 15) = FS.Cells(FR, 3)
GoTo 9
End If
Next FR
9
Next TR



End Sub



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

وايضا

 

قم باضافة السطر التالي في اول الكويد

    Selection.QueryTable.Refresh BackgroundQuery:=False

حيث سوف يقوم الزر بالتحديث و اضافة اسماء المطلوبة

 

آمل ان يفي هذا بالغرض

 

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

السلام عليكم

الاستاذ القدير / احمدزمان

 

بارك الله فيك

كود اكثر من راائع ومتقن

جزاك الله خيرا

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

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