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

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

قام بنشر (معدل)

اخواني ارفق كود للبحث واريد ان يبحث في صفحتين اسماء الصفحات موجودة في الكود ولكنه يبحث فقط في الصفحة التي اسمها (المدراء) ويتجاهل الصفحة التي اسمها (البيانات)

Private Sub CommandButton1_Click()
On Error Resume Next

Dim i As Integer, LastR As Long, ws As Worksheet
Set ws = ThisWorkbook.Sheets("البيانات")
Set ws = ThisWorkbook.Sheets("المدراء")

LastRow = ws.Cells(Rows.Count, "B").End(xlUp).Row + 1

For i = 2 To 15
UserForm1.ComboBox1.Clear
For T = 2 To LastRow

If OptionButton1.Value = True Then
        
    If TextBox1.Text = Mid(ws.Cells(T, 2).Text, 1, Len(TextBox1.Text)) Then
        UserForm1.ComboBox1.AddItem ws.Cells(T, 3)
        UserForm1.Controls("TextBox" & i).Value = ws.Cells(T, i).Value
        UserForm1.CommandButton4.Enabled = True
        Unload Me
    End If
Else
If OptionButton2.Value = True Then
        If TextBox1.Text = Mid(ws.Cells(T, 3).Text, 1, Len(TextBox1.Text)) Then
        UserForm1.ComboBox1.AddItem ws.Cells(T, 3)
        UserForm1.Controls("TextBox" & i).Value = ws.Cells(T, i).Value
        UserForm1.CommandButton4.Enabled = True
        Unload Me
        End If
End If
End If
Next
Next
UserForm1.ComboBox1.ListIndex = 0

If UserForm1.TextBox2.Text = "" Then MsgBox "åÐÇ ÇáãæÙÝ ÛíÑ ãæÌæÏ", vbInformation + vbMsgBoxRight, "äÊíÌÉ ÇáÈÍË"
UserForm1.CommandButton3.Enabled = False
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub Label1_Click()

End Sub

Private Sub Label2_Click()

End Sub

Private Sub OptionButton1_Click()
TextBox1.Enabled = True
TextBox1.SetFocus
End Sub
Private Sub OptionButton2_Click()
TextBox1.Enabled = True
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
If TextBox1.Text = "" Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
End Sub

 

تم تعديل بواسطه n_tareq
قام بنشر (معدل)

الخطأ واضح عي بداية الكود

انت أعطيت اسم واحد لصفحتين مختلفتين (اكسل هنا يأخذ الاسم على اساس الصفحة الثانية)

قم بتسمبة الصفحة الاولى Ws1 مثلا  والثانية  Ws2

 وكذلك LasteRow2     LasteRow1

تم تعديل بواسطه سليم حاصبيا
  • Like 1
قام بنشر (معدل)

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

Private Sub CommandButton1_Click()
On Error Resume Next

Dim i As Integer, LastR As Long, ws As Worksheet
Set ws1 = ThisWorkbook.Sheets("البيانات1")
Set ws2 = ThisWorkbook.Sheets("البيانات2")

LastRow1 = ws.Cells(Rows.Count, "B").End(xlUp).Row + 1
LastRow2 = ws.Cells(Rows.Count, "B").End(xlUp).Row + 1

For i = 2 To 17
UserForm1.ComboBox1.Clear
For T = 2 To LastRow

If OptionButton1.Value = True Then
        
    If TextBox1.Text = Mid(ws.Cells(T, 2).Text, 1, Len(TextBox1.Text)) Then
        UserForm1.ComboBox1.AddItem ws.Cells(T, 3)
        UserForm1.Controls("TextBox" & i).Value = ws.Cells(T, i).Value
        UserForm1.CommandButton4.Enabled = True
        Unload Me
    End If
Else
If OptionButton2.Value = True Then
        If TextBox1.Text = Mid(ws.Cells(T, 3).Text, 1, Len(TextBox1.Text)) Then
        UserForm1.ComboBox1.AddItem ws.Cells(T, 3)
        UserForm1.Controls("TextBox" & i).Value = ws.Cells(T, i).Value
        UserForm1.CommandButton4.Enabled = True
        Unload Me
        End If
End If
End If
Next
Next
UserForm1.ComboBox1.ListIndex = 0

If UserForm1.TextBox2.Text = "" Then MsgBox "هذا الموظف غير موجود", vbInformation + vbMsgBoxRight, "نتيجة البحث"
UserForm1.CommandButton3.Enabled = False
End Sub

 

تم تعديل بواسطه n_tareq
قام بنشر

السلام عليكم

الاخ الكريم /n_tareq

بارك الله فيك

بعد اذن اخي الحبيب / سليم حاصبيا .. جزاه الله خيرا

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

وبذلك تصبح التعديلات في الكود كما يلي :

** بدلا من السطر التالي للمتغيرات ..

Dim i As Integer, LastR As Long, ws As Worksheet

سنضيف به المتغير الآخر وهو الورقة الثانية او الشيت الثاني كما هو في السطر التالي

Dim i As Integer, LastR As Long, ws, ws1 As Worksheet

** السطرين التاليين

Set ws = ThisWorkbook.Sheets("البيانات")
Set ws = ThisWorkbook.Sheets("المدراء")

سيتم تغييرهم تبعا للمتغيرات التي قمت بوضعهم في الجزئية السابقة كما يلي :

Set ws = ThisWorkbook.Sheets("البيانات")
Set ws1 = ThisWorkbook.Sheets("المدراء")

** ثم جزئية آخر صف .. سيتم تغيير او اضافة للصف التالي

LastRow = ws.Cells(Rows.Count, "B").End(xlUp).Row + 1

كما هو يلي

LastRow = ws.Cells(Rows.Count, "B").End(xlUp).Row + 1
LastRow1 = ws1.Cells(Rows.Count, "B").End(xlUp).Row + 1

وبالتالي ستقوم بعمل حلقة تكرارية .. لكل منهما  .. لتكن مثلا S مثل T ولكن مع  LastRow1  ..

ثم يظل الجزء الاول في الكود والخاص بتفعيل عمل المطلوب في حالة اختيار   OptionButton1  كما هو بدون تعديل

ثم يتم تغيير الجزء الخاص بتفعيل عمل المطلوب من الكود في حالة اختيار OptionButton2 كالتالي

If OptionButton2.Value = True Then
        If TextBox1.Text = Mid(ws1.Cells(S, 3).Text, 1, Len(TextBox1.Text)) Then
        UserForm1.ComboBox1.AddItem ws1.Cells(S, 3)
        UserForm1.Controls("TextBox" & i).Value = ws1.Cells(S, i).Value
        UserForm1.CommandButton4.Enabled = True
        Unload Me
        End If

ارجو ان اكون قد وضحت لكم المطلوب

وان لم يتتضح .. فبرجاء ارسال ملف مرفق كمثال ليتم العمل العمل عليه

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

 

  • Like 2
قام بنشر

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

رابط الموضو ع

 

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

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

Important Information