آیا امکان ترکیب ماکرو و فرمول وجود دارد؟

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

    • 2015/01/28
    • 12

    آیا امکان ترکیب ماکرو و فرمول وجود دارد؟

    آیا امکان ترکیب ماکرو و فرمول وجود دارد ؟
    یعنی در فایلی که چندین ماکرو وجود دارد با استفاده از فرمول ماکروها را اجرا نماییم.
    مثلاً بگوییم اگر سلول a1 اگر برابر فلان مقدار یا فلان سلول شد ماکروی شماره 1 اجرا شود و در غیر این صورت ماکروی 2 اجرا شود و الی آخر ...
    اگر امکانش باشد لطفاً راهنمایی نمایید و اگر امکانش از این طریق نیست راه حل جایگزین اگر دارد بفرمایید.
    با سپاس
  • DOLFIN

    • 2014/01/18
    • 149

    #2
    سلام دوست عزیز
    شما می خواهید مثلا در شیت 1 یک فایل اکسل ، اگر مقدار سلول a1 برابر با یک بود macro1 و اگر مقدار سلول a1 برابر با دو بود macro2 اجرا شود به این صورت عمل می کنیم :
    از قسمت ویژوال بر روی شیت مورد نظر یعنی شیت 1 می رویم و این کد را درون آن قرار می دهیم .
    کد:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Sheet1.Range("a1").Value = "1" Then
    Call Macro1
    ElseIf Sheet1.Range("a1").Value = "2" Then
    Call Macro2
    End If
    End Sub
    [CENTER][FONT=times new roman][SIZE=7][I][B][COLOR=#0000ff] خانه اکسل - [url]http://excelhouse.blog.ir[/url][/COLOR][/B][/I][/SIZE]
    [/FONT][/CENTER]

    کامنت

    • ajax

      • 2015/01/28
      • 12

      #3
      ممنون از پاسخ شما ولی فکر کنم درخواست من مقداری گنگ بود به همین خاطر فایل نمونه را به پپیوست ارسال می نمایم که توضیحات کامل در داخل آن داده شده است.
      با سپاس
      فایل های پیوست شده

      کامنت

      • DOLFIN

        • 2014/01/18
        • 149

        #4
        دوست عزیز منظور اصلی در کد نویسی اول خدمت شما ارائه شد و شما می توانید بسته به نیاز کد ها را تغییر بدید.
        تنها فرق درخواست شما با کد اول این هست که شما می بایست ابتدا یک module ایجاد کنید سپس کد ها را درون یک ماکرو کپی کنید و رنج ها را تغییر بدید. به این صورت :
        کد:
        Sub SABT()
        If Sheet1.Range("c2").Value = "A" Then
        Call Macro1
        ElseIf Sheet1.Range("c2").Value = "B" Then
        Call Macro2
        Else
        MsgBox "پیام شما !", vbCritical
        End If
        End Sub
        [CENTER][FONT=times new roman][SIZE=7][I][B][COLOR=#0000ff] خانه اکسل - [url]http://excelhouse.blog.ir[/url][/COLOR][/B][/I][/SIZE]
        [/FONT][/CENTER]

        کامنت

        • mokaram
          مدير تالار اکسل و بانک اطلاعاتی

          • 2011/02/06
          • 1805
          • 74.00

          #5
          نوشته اصلی توسط ajax
          آیا امکان ترکیب ماکرو و فرمول وجود دارد ؟
          یعنی در فایلی که چندین ماکرو وجود دارد با استفاده از فرمول ماکروها را اجرا نماییم.
          مثلاً بگوییم اگر سلول a1 اگر برابر فلان مقدار یا فلان سلول شد ماکروی شماره 1 اجرا شود و در غیر این صورت ماکروی 2 اجرا شود و الی آخر ...
          اگر امکانش باشد لطفاً راهنمایی نمایید و اگر امکانش از این طریق نیست راه حل جایگزین اگر دارد بفرمایید.
          با سپاس
          شما می تونید این کار را با تابع if انجام بدید به فایل پیوست مراجعه نمایید ( توضیح : اگر سل c5 برابر با مقدار 2 باشد ماکرو اول و اگر برابر با 2 نباشد ماکرو دوم اجرا می شود )
          فایل های پیوست شده
          [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
          [/CENTER]

          کامنت

          • ajax

            • 2015/01/28
            • 12

            #6
            خیلی ممنون.
            عالی بود.

            کامنت

            چند لحظه..