متوقف کردن یک ماکرو از طریق vba

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

    • 2015/01/09
    • 73
    • 56.00

    پرسش متوقف کردن یک ماکرو از طریق vba

    یه ماکرو دارم که همون اول کار در Workbook_Open اجرا میشه و هر 30ثانیه یکبار تکرار میشه
    و این روند همیشه ادامه داره
    تنها مشکل اینه که با بستن فایل در اکسل ؛ بعد از گذشت همون 30 ثانیه دوباره فایل مورد نظر باز میشه تا اون ماکرو طبق معمول شروع به کار کنه
    بنابراین راهی به جز خارج شدن کامل از اکسل (به جای بستن فایل اکسل) و یا End Task کردن اکسل باقی نمی مونه
    با چه کدی میشه ماکروی فعال رو متوقفش کرد؟
    به نظرم دستوری باید باشه که مثلا اون رو در بخش Workbook_BeforeClose قرار بدم تا هنگام بستن فایل از ادامه کار ماکرو جلوگیری بشه
  • hadi1980

    • 2019/01/07
    • 237
    • 86.00

    #2
    سلام
    درواقع خودتون جواب خودتون رو داديد
    کافيه يه پارامتر عمومي رو بين event هايي که اسم برديد پاسکاري کنين
    مثلا اينجوري که ماکرو اجرا بشه اگه اون پارامتر true هست و حواستون باشه فقط يه زمان اون پارامتر false ميشه و اون زمانيه که داريم خارج ميشيم
    اگه کار نکرد يا نتونستيد فايل بزاريد

    کامنت

    • hasa2

      • 2015/01/09
      • 73
      • 56.00

      #3
      ممنون از پاسخ تون
      اگه درست متوجه منظورتون شده باشم یعنی اینکه از دستور if استفاده کنم
      که اگر مثلا فلان سلول برابر فلان مقدار بود اون وقت ماکرو اجرا بشه و اگر نبود اجرا نشه
      اگه همینه منظورتون که بازم باید بگم جواب نمیده
      چون فرض کن که ما با همین if کار رو شروع میکنیم ؛ قاعدتا وقتی شرط برقرار باشه ماکرو اجرا میشه و دیگه در حالت اجرا هست
      حالا اگه مقدار اون سلول هم تغییر کنه که دیگه ماکرو اجرا شده و متوقف نمیشه
      مگه اینکه بگیم اگر مقدار فلان سلول برابر فلان مقدار شد ماکرو اجرا شده رو متوقف کنه
      که دقیقا نمیدونم برای این بخش آخر چی باید بنویسم که به جای اجرا ماکروی خاص دستور متوقف کردن ماکرو خاص رو بدیم

      کامنت

      • hadi1980

        • 2019/01/07
        • 237
        • 86.00

        #4
        سلام مجدد
        منظورم استفاده از يه پارامتر در ورود و خروج به event بود
        اينو با توجه به توضيح اولتان عرض کردم
        چون شما اينجوري گفتين که اگه فايل بسته شد (يعني وارد event بسته شدن شد) ديگه ماکرو اجرا نشه
        بنظرم حتما ميشه
        حتي اگه بخواهيد ميشه کلي راهکار براي اينترکتيو کردن يه ماکرو گذاشت که حتي در حين اجرا هم کاربر بتونه تو برنامه دستکاري کنه
        خلاصه اينکه همه اينها به ساختار و الگوريتم برنامه شما و نحوه اجراي اون و بهره‌برداريش از کامپيوتر (هارد يا سي پي يو يا ...) مربوط ميشه
        اگه بازم نتونستين فايل بزاريد تا انجام بشه البته با توضيح دقيقتر
        اگه هم فايلتون خاصه ميتونين نمونه بسازين و بزاريد يا تو پيام خصوصي بزاريد که مشترک نشه
        ولي توضيح دقيقتر هم لازمه که دقيقا چي رو چجوري ميخواهيد

        کامنت

        چند لحظه..