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

مطلوب كود تسمية commandbutton + اختصار كود


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

اخواني

استفسارين 
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

 

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

مرحبا

اخي ابو حنف سؤالك لا يتوافق مع مع ما هو موجود بالكود

اذا كان السؤال هو تسمية  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

 

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

شاكر ردك أخي أبو حنين

لكن قد لا أكون وضحت طلبي جيدا  ، الاستفسارين كل على حده
الأول تمام كده 

باقي الطلب الثاني اختصار الكود الموجود بالمشاركة 
بانتظارك

 

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

حاضر أخي ياسر
لكن اعذرني الملف ليس معي الآن 
وللتوضيح أكثر 
الفكرة هي أني عندي 30 commandbutton 

كلهم لهم نفس الأمر وهو تسمية الخلية c1 باسم commandbutton  +فلترة النطاق A$1:$C$38 بدون خلايا فارغة

أنا أسأل هل فيه كود أستطيع به كتابة الأمر مرة واحدة لكل commandbutton  ، أم لا بد من كتابة الأمر لكل commandbutton  على حدة
وإن شاء الله أرفع لكم الملف غدا 

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

أعتذر على التأخير لظروف العمل
تم الاستغناء عن الطلب الثاني نظرا لتغير طرأ على فكرة البرنامج وانعدام الحاجة لذلك الأمر 
شاكر جدا لكم إخواني الكرام وأعتذر مرة أخرى على التأخر في الرد 

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

في ٢٣‏/٩‏/٢٠١٦ 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

 

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

شاكر ردك أخي أبو عبد الباري 
ولكن كما قلت تم الاستغناء عن ذلك 
ولكن لاثراء المعلومات هناك ملاحظتين

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.

زائر
اضف رد علي هذا الموضوع....

×   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