اخي طاهر سنبداء معاً شرح الكود جزء جزء
وسننتقل من الجزء الى الاخر بعد فهم الجزء الاول
إتفقنا
الجزء الاول
Private Sub ComboBox1_Change()
Application.ScreenUpdating = False
Sheets("Sheet1").Select
For i = 2 To Sheets("Sheet1").ER
If ComboBox1.Text <> Sheets("Sheet1").Cells(i, "A").Text Then
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Else
TextBox2.Text = Sheets("Sheet1").Cells(i, "B").Text
TextBox3.Text = Sheets("Sheet1").Cells(i, "C").Text
TextBox4.Text = Sheets("Sheet1").Cells(i, "D").Text
Sheets("Sheet1").Select
Sheets("Sheet1").Cells(i, "A").Select
Exit For
End If
Next
Application.ScreenUpdating = True
End Sub
أولاً هذا بخصوص التغير في ال ComboBox1
Private Sub ComboBox1_Change()
2. لمنع اهتزاز الشاشة
Application.ScreenUpdating = False
3. إختيار ورقة العمل وهنا اسمها Sheet1
Sheets("Sheet1").Select
4. المتغير (وهنا يتم اعتماد تغير الصفوف ) ويبتدي من 2 وينتهي ب ER وER معرف لعد الصفوف المستخدمة في العمود A وستجده في كود Sheet1
For i = 2 To Sheets("Sheet1").ER
5. الشرط ويعني اذا كانت قيمة ComboBox1 لا تساوي اي قيمة في صفوف العمود A
If ComboBox1.Text <> Sheets("Sheet1").Cells(i, "A").Text Then
وينقسم الى حالتين
أ. إذا تحقق الشرط يقوم بمسح القيم من TextBox3 و TextBox4
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
ب. إذا لم يتحقق الشرط
Else
ينفذ التالي
TextBox2.Text = Sheets("Sheet1").Cells(i, "B").Text
TextBox3.Text = Sheets("Sheet1").Cells(i, "C").Text
TextBox4.Text = Sheets("Sheet1").Cells(i, "D").Text
Sheets("Sheet1").Select
Sheets("Sheet1").Cells(i, "A").Select
قيمة TextBox2 تساوي قيمة الخلية الموجوة في العمود B والصف (i) المتغير
وهكذا بالنسبة TextBox3 والعمود C و TextBox4 و العمود D
ثم إخيار ورقة العمل Sheet1 ثم اختيار الخلية (i, "A")
6. الخروج من For وانهاء الشرط وإعادة اهتزاز الشاشة
Exit For
End If
Next
Application.ScreenUpdating = True
End Sub
بإنتظار ردك على الشرح
ابواحمد