أبو حنف قام بنشر سبتمبر 22, 2016 قام بنشر سبتمبر 22, 2016 اخواني استفسارين 1- أريد معرفة كيف يمكن تسمية عدة commandbutton بالكود بناء على قيم خلايا ؟ يعني مثلا عندي عدد 30 commandbutton ، أريد تسميتهم بقيم الخلايا من a1:a30 2- كيف يمكن اختصار الكود التالي ؟ Private Sub CommandButton1_Click() Range("c1") = CommandButton1.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton2_Click() Range("c1") = CommandButton2.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton3_Click() Range("c1") = CommandButton3.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton4_Click() Range("c1") = CommandButton4.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton5_Click() Range("c1") = CommandButton5.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton6_Click() Range("c1") = CommandButton6.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton7_Click() Range("c1") = CommandButton7.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton8_Click() Range("c1") = CommandButton8.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton9_Click() Range("c1") = CommandButton9.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton10_Click() Range("c1") = CommandButton10.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton11_Click() Range("c1") = CommandButton11.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton12_Click() Range("c1") = CommandButton12.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton13_Click() Range("c1") = CommandButton1.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub Private Sub CommandButton13_Click() Range("c1") = CommandButton1.Caption Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub
أبو حنــــين قام بنشر سبتمبر 22, 2016 قام بنشر سبتمبر 22, 2016 مرحبا اخي ابو حنف سؤالك لا يتوافق مع مع ما هو موجود بالكود اذا كان السؤال هو تسمية CommandButton حسب الخلايا الموجودة في العمود A:A فالكود يمكن ان يكون بهذا الشكل Sub iCaption() Dim C As Control x = 1 For Each C In Me.Controls If TypeOf C Is MSForms.CommandButton Then C.Caption = Range("A" & x) x = x + 1 End If Next End Sub 1
أبو حنف قام بنشر سبتمبر 22, 2016 الكاتب قام بنشر سبتمبر 22, 2016 شاكر ردك أخي أبو حنين لكن قد لا أكون وضحت طلبي جيدا ، الاستفسارين كل على حده الأول تمام كده باقي الطلب الثاني اختصار الكود الموجود بالمشاركة بانتظارك
ياسر خليل أبو البراء قام بنشر سبتمبر 22, 2016 قام بنشر سبتمبر 22, 2016 هلا أرفقت ملف للعمل عليه ومحاولة تقديم المساعدة إذا أمكن 1
أبو حنف قام بنشر سبتمبر 23, 2016 الكاتب قام بنشر سبتمبر 23, 2016 حاضر أخي ياسر لكن اعذرني الملف ليس معي الآن وللتوضيح أكثر الفكرة هي أني عندي 30 commandbutton كلهم لهم نفس الأمر وهو تسمية الخلية c1 باسم commandbutton +فلترة النطاق A$1:$C$38 بدون خلايا فارغة أنا أسأل هل فيه كود أستطيع به كتابة الأمر مرة واحدة لكل commandbutton ، أم لا بد من كتابة الأمر لكل commandbutton على حدة وإن شاء الله أرفع لكم الملف غدا
أبو حنف قام بنشر سبتمبر 27, 2016 الكاتب قام بنشر سبتمبر 27, 2016 أعتذر على التأخير لظروف العمل تم الاستغناء عن الطلب الثاني نظرا لتغير طرأ على فكرة البرنامج وانعدام الحاجة لذلك الأمر شاكر جدا لكم إخواني الكرام وأعتذر مرة أخرى على التأخر في الرد
ابو عبدالبارى قام بنشر سبتمبر 27, 2016 قام بنشر سبتمبر 27, 2016 في ٢٣/٩/٢٠١٦ at 17:53, أبو حنف said: حاضر أخي ياسر لكن اعذرني الملف ليس معي الآن وللتوضيح أكثر الفكرة هي أني عندي 30 commandbutton كلهم لهم نفس الأمر وهو تسمية الخلية c1 باسم commandbutton +فلترة النطاق A$1:$C$38 بدون خلايا فارغة أنا أسأل هل فيه كود أستطيع به كتابة الأمر مرة واحدة لكل commandbutton ، أم لا بد من كتابة الأمر لكل commandbutton على حدة وإن شاء الله أرفع لكم الملف غدا الأخ الكريم أبو حنف يمن التعديل على الكود المقدم من الأخ أبو حنــــين باضافة السطرين الأخيرين Sub iCaption() Dim C As control x = 1 For Each C In Me.Controls If TypeOf C Is MSForms.CommandButton Then C.Caption = Range("A" & x) x = x + 1 End If Next Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1 Sheets("filter").Range("$A$1:$C$38").AutoFilter Field:=1, Criteria1:="<>" End Sub ثم يالضغط على اى commandbutton يتم استدعاء الأجراء الفرعى iCaption مثال عل ذلك Private Sub CommandButton1_Click() Call iCaption End Sub 1
أبو حنف قام بنشر سبتمبر 28, 2016 الكاتب قام بنشر سبتمبر 28, 2016 شاكر ردك أخي أبو عبد الباري ولكن كما قلت تم الاستغناء عن ذلك ولكن لاثراء المعلومات هناك ملاحظتين 1- هناك أمر لم أجده في الكود وهو يجعل قيمة الخلية c1 تساوي اسم commandbutton 2- بطريقتك هذه أظن أنني بحاجة ألى كتابة الأمر لكل commandbutton على حدة والمطلوب هو كتابة الأمر مرة واحدة فقط للكل كما في كود التسمية
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.