دستوري كه معادل اجراي يك كنترل است

Collapse
X
 
  • زمان
  • نمایش
Clear All
new posts
  • alisabet

    • 2011/09/08
    • 159

    دستوري كه معادل اجراي يك كنترل است

    سلام :
    با عرض ادب حضور اساتيد محترم يك سوال دارم

    در vba با چه دستوري ميتوانم كدهاي درون يك رويداد مثلاً CommandButton1_Click() را اجرا كنم منظورم اينست كه ايا كدي وجود دارد كه معادل فشردن كليد CommandButton1_Click() باشد چون قراراست در مواقع مختلف اين رويداد اجرا شود نميخواهم هر بار كدهاي طولاني آن را تكرار كنم - اگر سوالم واضح نيست بگيد تا بيشتر توضيح بدم
  • m_d6712

    • 2010/05/22
    • 174

    #2
    RE: دستوري كه معادل اجراي يك كنترل است

    این کد رو ببینید.

    از یک سایت پیداش کردم: (خودم ننوشتم اما امتحان کردم خیلی خوب جواب میداد. تست شده است).

    برای ایجاد داینامیک یک باتن در یک شیت هستش.
    با کمی تغییر میتونید چند پارامتر بهش اضافه کنید و تعداد نا محدودی باتن رو از این طریق تولید کنید. مخصوصا که فرامینشون یکی است.
    کد:
    Sub CreateControlButton()
    '-----------------------------------------------------------------
    Dim oWs As Worksheet
    Dim oOLE As OLEObject
    
    Set oWs = ActiveSheet
    
    Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
    Left:=200, Top:=100, Width:=80, Height:=32)
    
    With oOLE
    .Object.Caption = "Run myMacro"
    .Name = "myMacro"
    End With
    
    With ThisWorkbook.VBProject.VBComponents(oWs.CodeName).CodeModule
    .InsertLines .CreateEventProc("Click", oOLE.Name) + 1, _
    vbTab & "If Range(""A1"").Value > 0 Then " & vbCrLf & _
    vbTab & vbTab & "Msgbox ""Hi""" & vbCrLf & _
    vbTab & "End If"
    
    End With
    
    End Sub
    '-----------------------------------------------------------------
    Sub CreateCombobox()
    '-----------------------------------------------------------------
    Dim oWs As Worksheet
    Dim oOLE As OLEObject
    
    Set oWs = ActiveSheet
    
    Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combobox.1", _
    Left:=200, Top:=100, Width:=80, Height:=32)
    
    
    oOLE.ListFillRange = "A1:A10"
    
    End Sub
    البته نکته ای که باید توجه کنیدو حتما
    OPTION-> TRUST CENTER ->tRUST CENTER SETTING-> TRUST ACCESS TO THE VBA PROJECT OBJECT MODEL رو فعال کنید.


    امید وارم درست متوجه شده باشم منظور شمارو.

    موفق و پیروز باشید.


    -------
    http://md6712.com
    جامعه ایده پردازان: http://idekadeh.com

    کامنت

    • alisabet

      • 2011/09/08
      • 159

      #3
      RE: دستوري كه معادل اجراي يك كنترل است

      با تشكر
      منظورم توليد كنترل هاي مشابه نيست بلكه صدا زدن كدهاي موجود يك كنترل در مواقع مورد نياز است مثل run كردن يك ماكرو منتهي ميخواهم يك كنترل را run كنم

      کامنت

      • m_d6712

        • 2010/05/22
        • 174

        #4
        RE: دستوري كه معادل اجراي يك كنترل است

        سلام
        من دقیقا متوجه نشدم.....
        شما اگر CommandButton1_Click() را فراخوانی کنید. همین اتفاق می افتد

        مثلا

        sub a()
        CommandButton1_Click
        end sub

        -------
        http://md6712.com
        جامعه ایده پردازان: http://idekadeh.com

        کامنت

        • alisabet

          • 2011/09/08
          • 159

          #5
          RE: دستوري كه معادل اجراي يك كنترل است

          نوشته اصلی توسط m_d6712
          سلام
          من دقیقا متوجه نشدم.....
          شما اگر CommandButton1_Click() را فراخوانی کنید. همین اتفاق می افتد

          مثلا

          sub a()
          CommandButton1_Click
          end sub

          سلام :
          يك فايل براي نمونه گذاشتم لطفاً به كدهاي فرم tarix نگاه كنيد مي بينيد كه حدود 30 تا كد مشابه وجود دارد منظورم يكي كردن اين كدهاست
          http://uplod.ir/7pbdapuaep1y/sample91.xlsm.htm

          کامنت

          • MEYTI

            • 2010/11/11
            • 362

            #6
            RE: دستوري كه معادل اجراي يك كنترل است

            سلام دوست عزیز من متوجه منظورتون شدم ولی بعید میدونم بشه ولی فایلتونو میشه به صورت زیر هم خلاصه کرد
            فایل
            مهدی کریمی

            کامنت

            Working...