تغییر نحوه محاسبه از خودکار به دستی فقط برای شیت مشخص

محاسبه دستی شیت

تغییر نحوه محاسبه از خودکار به دستی فقط برای شیت مشخص

اگر شما هم در محیط کار با فایل های اکسل پیچیده و سنگین کار میکنید که شامل تعداد زیادی شیت پر از فرمول های طولانی و سنگین هست شاید براتون پیش اومده باشه که به تدریج و با بالا رفتن حجم دیتا، فایل اکسلتون کند بشه. گاهی پیش میاد که این کندی فایل مربوط به محاسبات سنگین یکی از شیت ها هست. از طرفی همیشه ممکنه نیاز نباشه که محاسبات اون شیت به صورت لحظه ای انجام بشه و ممکنه بشه تنها یک بار پس از آپدیت کردن داده های اکسل محاسبات اون شیت رو انجام داد و در ادامه کار با فایل نیازی به آپدیت محاسبات اون شیت نباشه. بعضی وقتا هم ممکنه فایلمون سنگین شده باشه و دقیقا ندونیم که محاسبات کدوم شیت باعث کندی فایلمون شده. اینطور وقتا میشه تنها محاسبات اون شیت رو به صورت دستی در آورد. برای فهمیدن روش اینکار در ادامه این مطلب آموزشی اکسل همراه من باشید.

همونطور که میدونید در اکسل از طریق تب Formulas و گزینه Calculation Options میشه نحوه محاسبات رو به صورت دستی درآورد اما مشکل اینجاست که با اینکار تمام شیت ها به حالت محاسبات دستی تغییر پیدا میکنند. حالا اگر بخوایم تنها یک شیت اکسل رو به حالت محاسبه دستی تغییر بدیم و نحوه محاسبه در بقیه شیت ها اتوماتیک باشه کافیه به روش زیر عمل کنیم:

ابتدا مثل تصویر زیر روی شیت مدنظر راست کلیک میکنیم و از منویی که باز میشه گزینه View Code رو انتخاب میکنیم

تاریخ شمسی در اکسل

با اینکار وارد پنجره Visual Basic Editor میشیم. حالا مثل تصویر زیر در قسمت چپ گزینه EnableCalculation رو پیدا میکنیم و مقدار اون رو برابر با False قرار میدیم:

محاسبه دستی شیت

با اینکار فقط شیت مدنظر ما بصورت محاسبه دستی در میاد و بقیه شیت ها بصورت محاسبه خودکار باقی میمونند. حالا کافیه که هر بار که نیاز به آپدیت شدن محاسبات شیت داشتیم از تب Formulas گزینه Calculate Sheet رو انتخاب کنیم. برای برگردوندن نحوه محاسبات شیت به حالت اتوماتیک هم کافیه دوباره گزینه EnableCalculation رو به مقدار True تغییر بدیم.

16 Comments
  • علی
    Posted at 15:04h, 18 می پاسخ

    سلام.عالی بود
    یه سوال . آیا می توان پیغام بروز رسانی داده ها در فایل های ماکرو را طوری تنظیم کرد که بدون نمایش پیغام بروزرسانی و زدن گزینه ok را که به صورت دستی می زنیم . به طور کاملا خودکار وبدون نمایش پیغام انجام گیرد. با تشکر

    • یاسین اسماعیل پور
      Posted at 18:00h, 18 می پاسخ

      سلام. منظورتون رو از پیغام بروزرسانی داده ها متوجه نشدم. میشه یکم بیشتر توضیح بدید؟

  • mostafa
    Posted at 14:23h, 06 آگوست پاسخ

    سلام و ادب،
    آيا براي اين كاري كه آموزش داديد كد وي بي هم هست
    مثلا
    sheets(“sheet1”).enablecalcaute=false
    ؟؟؟؟

    • یاسین اسماعیل پور
      Posted at 14:07h, 17 آگوست پاسخ

      سلام مصطفی جان
      بله میتونید از کد زیر استفاده کنید:
      Worksheets(1).EnableCalculation = False

  • مهرنوش صالح زاده
    Posted at 09:01h, 22 می پاسخ

    خیلی جالب بود

    • یاسین اسماعیل پور
      Posted at 09:48h, 22 می پاسخ

      ممنون

  • علی
    Posted at 18:27h, 13 مارس پاسخ

    روشی هست که تو vba شماره سطری که تو جداول اکسل در حال نوشتن اون هستیم تشخیص بدیم؟
    کاری که میخوام در واقع انجام بدم بدون اینکه فرمول تو کل ستون تا انتها کپی کنم هر بار که کاربر میره خط بعدی اطلاعات اضافه کنه فرمول ها تو سطر جدید هم قرار بگیره

  • مجید
    Posted at 14:10h, 22 آگوست پاسخ

    با سلام خدمت استاد عزیز آقا یاسین گل
    می خواستم بدونم چطور میشه رسم نمودار رو برای محدوده زمانی دلخواه یعنی با ورود زمان شروع و پایان انجام داد؟ نیاز به ماکرونویسی داره؟

  • م.عقاب نشین
    Posted at 12:07h, 02 آگوست پاسخ

    سلام، خسته نباشید
    من از درسهاتون خیلی استفاده کردم، فقط می تونم اینجوری تشکر کنم ازتون

  • رامح
    Posted at 11:37h, 07 ژوئن پاسخ

    سلام
    با عرض خسته نباشید
    حقیقتش من درس متوجه این متن نشدم
    در واقع من میخواهم کارهایی که تو یه شیت انجام دادم برای شیت های دیگه عینا تکرار بشه(چون حجم محاسباتم به نسبت بالاس نمیخوام این کارو مدام خودم تکرار کنم)

  • غفوری
    Posted at 09:28h, 22 می پاسخ

    سلام و عرض ادب
    آقا اینكه ذخیره نمیشه. یعنی بعد از هر بار خروج از فایل، دوباره باید تنظیمش كنی. اینجوری كه فایده نداره

  • محمد یعقوبی
    Posted at 10:20h, 22 دسامبر پاسخ

    ضمن عرض سلام و خسته نباشید و تشکر از مطالب بسیار مفیدتون ، من توی اکثر فایلهام با مشکل کندی سرعت بعلت بالا بودن میزان محاسبات تو شیتهای مختلف مواجه بودم و مشاهده مطلب بالا ( دستی کردن محاسبات در شیتهای خاص ) خیلی خوشحالم کرد و تشکر میکنم . اما مشکلی که دارم این اصلاحات ذخیره نمیشه و فایل رو که ذخیره میکنم و دو باره باز میکنم به حالت اول بر میگرده لطفا راهنماییم کنید .

  • sabaa
    Posted at 14:10h, 26 نوامبر پاسخ

    با سلام
    من یه کد دارم مربوط به یک تابع هستش وقتی میخوام اجراش کنم میگه توی کتابخانه نیست منظورش چیه

  • جهانگیر آذربان
    Posted at 20:57h, 22 نوامبر پاسخ

    سلام دوستان عزیز
    یه سوال داشتم
    من یه برنامه ای رو تو VBAرو از اینترنت پیدا کردم که به طور خودکار شیت تولید میکنه
    فقط میخواستم به این یه قسمت اضافه کنم که بتونه از شیت اول یه چیز مشخص و تو همه شیت ها کپی کنه اگه میشه راهنماییم کنین
    این هم همون کد هستش
    Sub addsheet()
    For i = 2 To 20
    Dim newsheet
    Set newsheet = Sheets.Add(After:=Sheets(Worksheets.Count), Count:=1, Type:=xlWorksheet)
    Sheets(“sheet1”).Select
    (newsheet.Name = Cells(i, 1
    Next i
    End Sub

  • محمدرضایحیایی
    Posted at 05:48h, 21 سپتامبر پاسخ

    سلام.بسیار عالی.سپاس فراوان
    مشتاقانه منتظر آموزشهای دیگر شما هستم.لطفا بیشتر عنایت بفرمایید

    • یاسین اسماعیل پور
      Posted at 16:31h, 21 سپتامبر پاسخ

      ممنون از لطفتون جناب یحیایی

Post A Comment