اجرا ماکرو پس از ورود اطلاعات و بدون استفاده از دکمه واسطه

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • maziardm

    • 2013/05/17
    • 450

    پرسش اجرا ماکرو پس از ورود اطلاعات و بدون استفاده از دکمه واسطه

    سلام و روز خوش به دوستان
    من یه ماکرو نوشتم به شرح زیر:



    کد:
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    ' Keyboard Shortcut: Ctrl+q
    '
        If Range("Q1").Value = 0 Then
        ActiveSheet.ListObjects("TR_Day").Range.AutoFilter Field:=6, Criteria1:= _
            ">=" & Range("O1"), Operator:=xlAnd, Criteria2:="<=" & 1E+16
        Else
        ActiveSheet.ListObjects("TR_Day").Range.AutoFilter Field:=6, Criteria1:= _
            ">=" & Range("O1"), Operator:=xlAnd, Criteria2:="<=" & Range("Q1")
        End If
    
    
    End Sub

    می خوام پس از ورود مقادیر در خانه های O1 و Q1 که مقادیر بر اساس اونها فیلتر میشه، ماکرو فعال شه و عملیات مورد نظر که فیلتر ستون ششم بر اساس خانه های تو و کیو 1 است صروت بگیره.
    با ماکرویی که من نوشتم، پس از ورود اطلاعات می بایست به صورت اصطلاحاً دستی ماکرو رو اجرا کنم (مثلا فشردن Cntr+q یا Run Macro یا ایجاد Shape و لینکش به واکرو مورد نظر). در صورتیکه می خوام به محض ورود اطلاعات در خانه های
    O1 و Q1 ماکرو سریعا اجرا بشه.
    امیدوارم منظورم رو به خوبی بیان کرده باشم.
    با تشکر از شما
  • maziardm

    • 2013/05/17
    • 450

    #2
    نوشته اصلی توسط maziardm
    سلام و روز خوش به دوستان
    من یه ماکرو نوشتم به شرح زیر:



    کد:
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    ' Keyboard Shortcut: Ctrl+q
    '
        If Range("Q1").Value = 0 Then
        ActiveSheet.ListObjects("TR_Day").Range.AutoFilter Field:=6, Criteria1:= _
            ">=" & Range("O1"), Operator:=xlAnd, Criteria2:="<=" & 1E+16
        Else
        ActiveSheet.ListObjects("TR_Day").Range.AutoFilter Field:=6, Criteria1:= _
            ">=" & Range("O1"), Operator:=xlAnd, Criteria2:="<=" & Range("Q1")
        End If
    
    
    End Sub

    می خوام پس از ورود مقادیر در خانه های O1 و Q1 که مقادیر بر اساس اونها فیلتر میشه، ماکرو فعال شه و عملیات مورد نظر که فیلتر ستون ششم بر اساس خانه های تو و کیو 1 است صروت بگیره.
    با ماکرویی که من نوشتم، پس از ورود اطلاعات می بایست به صورت اصطلاحاً دستی ماکرو رو اجرا کنم (مثلا فشردن Cntr+q یا Run Macro یا ایجاد Shape و لینکش به واکرو مورد نظر). در صورتیکه می خوام به محض ورود اطلاعات در خانه های
    O1 و Q1 ماکرو سریعا اجرا بشه.
    امیدوارم منظورم رو به خوبی بیان کرده باشم.
    با تشکر از شما
    با سلام
    پاسخی نیست؟

    کامنت

    • میثم مقدم نیا

      • 2017/03/23
      • 558
      • 41.00

      #3
      نوشته اصلی توسط maziardm
      با سلام
      پاسخی نیست؟
      سلام
      برای اجرای ماکروتون کافی برید در قسمت
      ThisWorkbookو کد زیر را وارد کنید
      کد PHP:
      Private Sub Workbook_Open()
      Macro1
      End Sub 
      Click image for larger version

Name:	Untitled.png
Views:	1
Size:	32.6 کیلو بایت
ID:	137662
      [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

      کامنت

      • maziardm

        • 2013/05/17
        • 450

        #4
        نوشته اصلی توسط میثم مقدم نیا
        سلام
        برای اجرای ماکروتون کافی برید در قسمت
        thisworkbookو کد زیر را وارد کنید
        کد PHP:
        private sub workbook_open()
        macro1
        end sub 
        [ATTACH=CONFIG]20742[/ATTACH]
        تشکر میثم جان. جالب بود
        فقط یه مشکلی وجود داره. بر اساس ماکرو شما وقتی فایل رو باز می کنیم ران میشه.
        ولی قصد من اینه که به محض ورود اطلاعات در سلول های مورد نظر ماکرو خودکار ران بشه و نیاز به فشردن دکمه یا هر کار دیگه ای نباشه.
        برای مثال در ماکرو من، بر اساس اطلاعات سلول های o1 و یا q1 عملیات فیلتر رو انجام میده. من قصد دارم به محض ورود اطلاعات در یکی از سلول های فوق عملیات فیلتر انجام بشه و دیگه نیازی به زدن دکمه یا دستور دیگه ای نباشه.
        با تشکر

        کامنت

        • میثم مقدم نیا

          • 2017/03/23
          • 558
          • 41.00

          #5
          نوشته اصلی توسط maziardm
          تشکر میثم جان. جالب بود
          فقط یه مشکلی وجود داره. بر اساس ماکرو شما وقتی فایل رو باز می کنیم ران میشه.
          ولی قصد من اینه که به محض ورود اطلاعات در سلول های مورد نظر ماکرو خودکار ران بشه و نیاز به فشردن دکمه یا هر کار دیگه ای نباشه.
          برای مثال در ماکرو من، بر اساس اطلاعات سلول های o1 و یا q1 عملیات فیلتر رو انجام میده. من قصد دارم به محض ورود اطلاعات در یکی از سلول های فوق عملیات فیلتر انجام بشه و دیگه نیازی به زدن دکمه یا دستور دیگه ای نباشه.
          با تشکر
          سلام
          خوب دوست شما از کد زیر در شیت مورد نظر استفاده کنید

          کد PHP:
          Private Sub Worksheet_Change(ByVal Target As Range)
          If 
          Not Application.Intersect(Range("q1"), Range(Target.Address)) Is Nothing Then 
          Call Macro1
          End 
          If 
          End Sub 
          [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

          کامنت

          چند لحظه..