کار با توابع تاریخ شمسی در اکسل

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

سلام به همه دوستان

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

خب بریم سراغ اصل مطلب. ابتدا یک شیت جدید باز کنید. حالا مثل تصویر زیر روی Sheet1 راست کلیک کنید و از منوی باز شده گزینه View Code رو انتخاب کنید.

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

با انتخاب این گزینه پنجره Visual Basic for Applications باز میشه که از اون میتونیم برای کدنویسی VBA در اکسل استفاده کنیم. در اینجا میتونیم کدهای مربوط به کار با تاریخ شمسی در اکسل رو به فایل اکسل خودمون اضافه کنیم.

برای اینکار ابتدا مثل تصویر زیر از منوی Insert گزینه Module رو انتخاب کنید.

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

با اینکار یک Module به فایل اکسل اضافه میشه که ما کدهای مربوط به تاریخ شمسی رو در اون قرار میدیم. برای اینکه کدها رو داخل ماژولی که ایجاد کردیم قرار بدیم از بخش Project Explorer رو Module1 دوبار کلیک میکنیم.

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

حالا فایل مربوط به تاریخ شمسی رو از اینجا دانلود کنید و فایل متنی داخل اون رو در notepad باز کنید و تمام کدهای داخلش رو در پنجره Module1 کپی کنید. با اینکار توابع مربوط به کار با تاریخ شمسی در اکسل به فایل ما اضافه شدند و میتونیم از اونها استفاده کنیم.الان پنجره Visual Basic for Applications شما باید مثل تصویر زیر باشه.

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

اما قبل از استفاده از این توابع بهتره فایلمون رو به صورت صحیح ذخیره کنیم. همونطور که میدونید پسوندی که اکسل برای ذخیره فایل ها به صورت پیش فرض از اون استفاده میکنه در نسخه های قدیمی تر xls و در نسخه های جدیدتر xlsx هست. این پسوندها قابلیت ذخیره سازی کدهای VBA رو ندارند. به این معنی که اگر شما فایلتون رو با این پسوندها دخیره کنید کدهای VBA که به فایلتون اضافه کردید ذخیره نمیشن و دفعه بعد که فایلتون رو باز کنید تمام کدها از فایلتون حذف شده و عملاً فایل شما به درستی کار نمیکنه. برای اینکه این مشکل پیش نیاد باید فایلمون رو با یکی از پسوندهای xlsm یا xlsb ذخیره کنیم. در خصوص تفاوت این دو پسوند بعداً در یک مطلب جداگانه توضیح میدم. برای اینکه فایلمون را با پسوند xlsm ذخیره کنیم مثل تصویر زیر در پنجره Save As نوع پسوند رو در قسمت Save As Type برابر (Excel Macro-Enabled Workbook (*.xlsm قرار میدیم.

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

اگر تمام مراحل رو به درستی انجام داده باشید باید به توابع کار با تاریخ شمسی دسترسی داشته باشید. برای آزمایش این مساله روی یکی از سلول ها شروع به فرمول‌نویسی کنید. اگر با نوشتن عبارت sh= در فرمول سلول تایع shamsi مثل تصویر زیر در گزینه ها نمایش داده شد، توابع شمسی به درستی در فایل اکسل شما فعال شدند و شما میتونید از اونها استفاده کنید.

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

رفع مشکل ؟ شدن کاراکترهای فارسی در VBA: اگر کاراکترهای فارسی شما در پنجره Visual Basic Editor به صورت ؟؟؟ نمایش داده میشه کافیه فایل shamsi-date.txt رو به جای نوت پد با Wordpad باز کنید و پس از کپی کردن کدها از داخل Wordpad اونها رو داخل visual basic editor پیست کنید.

حالا ببینیم با اضافه کردن این کدها به فایل اکسل خودمون چه توابع شمسی به اکسل اضافه میشن و چطور میتونیم از اونها استفاده کنیم.

تابع Shamsi: این تابع تاریخ جاری سیستم رو تبدیل به تاریخ شمسی میکنه.

مثال: ()Shamsi=          نتیجه:  13940114

تابع Rooz: این تابع روز مربوط به یک تاریخ مشخص رو برمیگردونه

مثال: (13940114)Rooz=          نتیجه:  14

تابع Mah: این تابع ماه مربوط به یک تاریخ مشخص رو برمیگردونه

مثال: (13940114)Mah=          نتیجه:  1

تابع Sal: این تابع سال مربوط به یک تاریخ مشخص رو برمیگردونه

مثال: (13940114)Sal=          نتیجه:  1394

تابع Kabiseh: این تابع مشخص میکنه که آیا سال موردنظر کبیسه هست یانه. در صورتی که سال موردنظر کبیسه باشه عدد 1 و در غیر اینصورت عدد 0 به عنوان نتیجه تابع برگردونده میشه.

مثال: (1394)Kabiseh=          نتیجه:  0

تابع ValidDate: این تابع تاریخ شمسی که به اون داده بشه رو بررسی میکنه و در صورتی که تاریخ داده شده معتبر و درست باشه true و در غیر اینصورت false رو برمیگردونه.

مثال: (13940114)ValidDate=          نتیجه:  true        مثال: (13940134)validdate=          نتیجه:  false

تابع AddDay:  این تابع تعداد روز مشخصی رو به یک تاریخ اضافه میکنه.

مثال: (7;13940114)AddDay=          نتیجه:  13940121

تابع DayWeek: این تابع نام روز تاریخ شمسی که به اون داده بشه رو برمیگردونه.

مثال: (13940114)DayWeek=          نتیجه:  جمعه

تابع Dat: این تابع تاریخ شمسی رو به همراه روز هفته برمیگردونه

مثال: ()Dat=          نتیجه:  جمعه 1394/1/14

تابع Diff: این تابع اختلاف روزهای بین دو تاریخ شمسی رو نشون میده.

مثال: (13940114;13940107)Diff=          نتیجه:  7

تابع DayWeekNo: این تابع عدد مربوط به روز هفته یک تاریخ شمسی رو برمیگردونه. به عنوان مثال اگر تاریخ موردنظر روز شنبه باشه عدد 0، در صورتی که یکشنبه باشه عدد 1 و …

مثال: (13940110)DayWeekNo=          نتیجه:  2

تابع MahName: این تابع عدد مربوط به یک ماه رو دریافت میکنه و نام ماه مربوط به اون رو برمیگردونه.

مثال: (2)MahName=          نتیجه:  اردیبهشت

تابع SalMah: این تابع شش رقم اول یک تاریخ شمسی رو که نشون دهنده سال و ماه اون هست رو برمیگردونه.

مثال: (13941115)SalMah=          نتیجه:  139411

تابع MahDays: این تابع تعداد روزهای یک ماه رو برمیگردونه.

مثال: (1;1394)MahDays=          نتیجه:  31

تابع Make_Date: این تابع سال، ماه و روز تاریخ شمسی رو با علامت “/” از هم دیگه جدا میکنه.

مثال: (13940114)Make_Date=          نتیجه:  1394/01/14

تابع NextMah: این تابع مقدار سال و ماه رو به عنوان ورودی میگیره و ماه بعد رو به عنوان نتیجه برمیگردونه.

مثال: (139412)NextMah=          نتیجه:  139501

تابع PreviousMah: این تابع مقدار سال و ماه رو به عنوان ورودی میگیره و ماه قبل رو به عنوان نتیجه برمیگردونه.

مثال: (139407)NextMah=          نتیجه:  139406

تابع SubtractDay: این تابع تعداد روز مشخصی رو از یک تاریخ شمسی کم میکنه.

مثال: (6;13940718)SubtractDay=          نتیجه:  13940712

تابع Firstday: این تابع یک سال و ماه شمسی رو میگیره و شماره اولین روز اوم ماه رو برمیگردونه. (برای شنبه عدد 0، برای یکشنبه عدد 1 و …)

مثال: (6;1394)Firstday=          نتیجه:  1 (یکشنبه)

امیدوارم از این مطلب استفاده برده باشید. سال نو مبارک.

پی‌نوشت: کدهایی که در این آموزش ازشون استفاده کردم نوشته‌ی من نیست. اگر کسی میدونه که این کدها اجازه انتشار نداره لطفاً به من اطلاع بدید تا این مطلب رو حذف کنم.

328 Comments on “کار با توابع تاریخ شمسی در اکسل”

  1. hamed

    فایل متنی مربوط به تاریخ شمسی مطالب فارسی را به درستی نمایش نمیدهد. لطفاً یک لینک دانلود دیگر ارائه دهید.

    1. jimmy

      سلام به شما مدیر سایت و شما خواننده ی محترم
      یکی از پر کاربردترین تابع های اکسل همین تابع تاریخ شمسی هست.
      برای راحتی کار با این توابع شما میتونید توابعی که لازم دارید رو بجای اسم انگلیسی با اسم فارسی فراخوانی کنید برای این منظور برید به ماژول1 و اسم تابع مورد نظر رو با سرچ پیدا کنید و بعد اسم تابع رو در هر جای اون تابع اومده به فارسی تغییر بدید و برای فراخوانی تابع در محیط اکسل تابع رو با حروف فارسی فراخوانی کنید!! (عملا دیگه نیازی نیست تغییر زبان بدید و انگلیسی کنید) برای من که تابع ()DAT= مورد استفاده بود dayweek که به فارسی روز هفته رو وارد میکرد برداشتم (لازم نداشتمش) و با تغییر اسم تابع و دستور داخل تابع به ()تا= خیلی کارم راحت شد.
      مرسی بابت مطالب خوبتون

      برای اینکه کامنتم بالای کامنتها بیاد مجبور شدم از پاسخ به استفاده کنم!!! لطفا کامنتهای جدید رو بالا بیارید 🙂 ممنون

  2. جمشید

    سلام … تنها از فرمول ()Shamsi= به درستی عمل میکنه بقیه که میزنم این میگه #VALUE! …. علتش چیه … ؟!

    1. یاسین اسماعیل پور

      به احتمال زیاد پارامترها رو با فرمت اشتباهی استفاده میکنید. نباید مشکلی وجود داشته باشه

  3. سهیل

    با تشکر از شما و برنامه نویس این کد ها
    یک باگ جالب در مورد فرمول dayweek هست. این فرمول قرار است روز هفته یک تاریخ مشخص را برگرداند. طبق بررسی من، از امروز به عقب تا تاریخ 1380/10/11 (سه شنبه) این فرمول درست کار می کند ولی روز قبلش را اشتباه نشان می دهد (می شود چهارشنبه به جای دوشنبه) و همینطور از این روز به قبل، ایام هفته برعکس نشان می دهد یعنی هفته با جمعه شروع می شود و روز بعدش پنجشنبه است و روز قبلش چهارشنبه الخ.
    من کد نویسی بلد نیستم ولی اگر توانستم این کد را درست کنم اطلاع می دهم. خوشحال میشم اگر کسی تونست درستش کنه به من هم اطلاع بده

    1. یاسین اسماعیل پور

      ممنون که اطلاع دادی سهیل جان. چک میکنم ببینم مشکلش چیه خودم تغییر میدم کدش رو

  4. احمد

    با سلام
    نوشته ها (کاراکترهای فارسی ) به صورت ‘????? ???? ??? ?????? ??? داده میشه . این مشکل رو چطور حل کنم؟

    1. یاسین اسماعیل پور

      سلام احمد جان. موقعی که تو NOTEPAD سیستم باز میکنی هم این مشکل رو داره؟ این مساله معمولا به خاطر اینه که تنظیمات ویرایشگرت باید روی UTF8 باشه. اگر تنظیماتت رو روی utf8 بزاری باید درست بشه.

  5. fatemeh

    آقای اسماعیل پور شرمنده منم یه چند وقتیه مشکل آقای احمد رو دارم !!!!!
    نوشته ها (کاراکترهای فارسی ) به صورت ‘????? ???? ??? ?????? ??? داده میشه . utf8 رو از کجا پیدا کنم؟

    1. یاسین اسماعیل پور

      سلام. شما وقتی قایل Shamsi-Date.txt رو دانلود میکنید و توی notepad باز میکنید نوشته های فارسی به صورت صحیح نمایش داده میشه یا خیر؟

  6. fatemeh

    به صورت text سیوش میکنم با adobe بازش میکنم اصن کلا زبونش میریزه به هم
    اگرم همونجا کپی پیست کنم که ؟؟؟؟؟؟ میاره به جای فارسیاش

    1. یاسین اسماعیل پور

      چرا با adobe باز میکنید؟ به صورت txt ذخیرش کنید و توی نرم افزار notepad ویندوز بازش کنید ببینید مشکل داره کلمات فارسی یا خیر.

  7. محمدمهدی

    اگه بخوام تو یک ستون تاریخ رو از اول ماه بنویسه تا اخرش چیکار باید بکنم؟! تابع خاصی داره؟

    1. یاسین اسماعیل پور

      برای اینکار تابع خاصی نداره محمد مهدی جان. باید با استفاده ترکیبی از تابع row، تابع shamsi و تابع addday پیاده سازی کنیش.

      1. حامد شرقی

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

  8. vahid

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

  9. vahid

    واسه منم قسمت ها فارسی فایل مشکل داره ، با utf8 هم ذخیره میکنم
    اگه راه کاری پیشنهاد بدین ممنون میشم

  10. یاسین اسماعیل پور

    وحیدجان فک کنم خوب نخوندی مطلبو. تابع diff که تو متن توضیح دادم برای همینکار هست

    1. vahid

      چرا یاسین جان
      ولی اون اختلاف رو به صورت روز میده
      من نتیجه رو به صورت سال و ماه و روز میخوام
      مثلا نتیجه بشه 25/8/20 25 سال و 8 ماه و 20روز

      1. یاسین اسماعیل پور

        تابعی واسه این کار وجود نداره خودت میتونی با یه محاسبه تقسیم و مانده به جواب مدنظرت برسی وحید جان

    2. vahid

      واسه اون مشکل دیگه ام چی؟؟ میشه با یه پسوند دیگه واسم میل کنی اگه امکانش هست؟!!
      ممنون

  11. حمید

    سلام
    آقا یاسین ممنونم از راهنمایتون
    کاری که گفته بودی با slxm سیو کنیم همون ماکرو؟

    1. یاسین اسماعیل پور

      بله. فایل هایی که ماکرو و کد VBA دارند رو باید با XLSM یا XLSB ذخیره کنی حمیدجان.

  12. phsnos

    پس چرا برای من متنی که با Shamsi-Date.txt ذخیره میکنم و با نوت پد باز میکنم هیچکدوم از متناش فارسی نیس؟ اون تنظیمات utf8 کجاس؟

    1. یاسین اسماعیل پور

      فایل shamsi-date.txt رو به جای نوت پد با wordpad باز کن و از داخل wordpad کپی کن و بعد داخل visual basic editor پیست کن ببین مشکلت حل میشه یا نه.

  13. رضا

    فوق العاده عالییییی ممنون آقا یاسین. من هم مشکل کاراکتر فارسی به شکل ؟؟؟؟؟ رو دارم. توی نوت پد نوشته ها درسته ولی تو اکسل علامت سوال نشون میده. مشکل چیه؟ چطور با utf8 سیو کنم؟

  14. رضا

    utf8 رو پیدا کردم و با اون سیو کردم ولی باز هم نشد. نوشته های فارسی ؟؟؟؟؟ نمایش داده میشه 🙁

    1. یاسین اسماعیل پور

      رضاجان فایل shamsi-date.txt رو به جای نوت پد با wordpad باز کن و از داخل wordpad کپی کن و بعد داخل visual basic editor پیست کن ببین مشکلت حل میشه یا نه.

  15. رضا

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

  16. RezaFallahi

    سلام
    آیا تابع بدست آوردن سال بعد هم وجود داره مثل NextMah که ماه بعد رو نشون میده؟

    1. یاسین اسماعیل پور

      خیر رضا جان چنین تابعی وجود نداره. اما شما به راحتی میتونی از طریق استفاده از فرمول LEFT به همون نتیجه برسی. مثال:
      =LEFT(13940718;4)+1

      1. RezaFallahi

        با تشکر از پاسخ سوال قبل
        آیا تابعی وجود داره که با گرفتن یک تاریخ تعداد روزهای باقی مانده تا پایان سال رو نشون بده؟ مثلا با دادن تاریخ 25 اسفند عدد 4 رو نشون بده.

        1. یاسین اسماعیل پور

          سلام. نه این تابع وجود نداره اما شما میتونید خیلی راحت با استفاده از تابع left سال رو استخراج کنید، اون رو به علاوه یک کنید و با چسبوندن عبارت “0101” به انتهای متن، روز اول سال بعد رو ایجاد کنید و بعد اختلاف تاریخ موردنظرتون رو با اون از طریق تابع diff حساب کنید.

          1. RezaFallahi

            یاسین جان، منظور از چسبوندن عبارت “0101” به انتهای متن چیه ؟ یعنی دستی اونو به سال بدست اومده اضافه کنم یا این عبارت رو به انتهای تابه left اضافه کنم؟؟؟
            درباره تابع diff هم باید بگم که، اگه تاریخ ها رو به صورت اسلش دار ( / ) وارد کنیم این تابع دیگه عمل نمی کنه.

          2. یاسین اسماعیل پور

            شما باید 0101 رو با علامت & به انتهای سال بعد هست اضافه کنی. برای تابع diff هم خب مشخصه که باید اول فرمتش رو بدون / کنی بعد بزاری تو تابع.

    1. یاسین اسماعیل پور

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

  17. hh

    سلام.
    من فایل رو هم با نوت پد و هم با وردپد بازش کردم. با پسوند xlsm.و xlsb هم ذخیره اش کردم. اما وقتی که از ورکشیت خارج میشم و دوباره وارد میشم فایلها رو نمیتونه بخونه .ممنون میشم اگه راهنمایی بفرمایین.

    1. یاسین اسماعیل پور

      فایل تکست رو که نباید با پسوند xlsm ذخیره کنید. باید کپی کنید تو فایل اکسلتون. توضیحات رو مجددا و با دقت بیشتر بخونید

  18. RezaFallahi

    ممنـــــــــــــــــــــــــــــــــــون از راهنمایی هاتون …..
    راستی توی قسمت مثال تابع Make_Date اشتباه تایپی وجود داره عبارت MahDays به جای Make_Date استفاده شده.
    و میخواستم بدونم این فونت که برای ارائه مطالب سایت از اون استفاده میکنید اسمش چیه ؟

    1. یاسین اسماعیل پور

      مرسی از دقتت. اصلاح شد. فونتی که من اینجا استفاده میکنم اسمش DroidNaskh هست رضا جان.

  19. hh

    سلام و عرض ادب.
    منم دقیقا طبق دستور شما فایل تکست رو توی اکسل کپی میکنم. بعد فایل اکسل رو هم با پسوند xlsm ذخیره میکنم. تا وقتی که از فایل اکسل خارج نشدم جواب میده. اما اگر از فایل اکسل خارج شدم و دوباره وارد همون فایل اکسل که ذخیره اش کردم بشم توابع شمسی رو ندارم .
    سپاس که وقت میذارین.

    1. یاسین اسماعیل پور

      سلام حسین جان. احتمالاً مشکل به این دلیل هست که تنظیمات ماکرو شما غیرفعال هست و زمانی که فایل رو میبندید و دوباره باز میکنید ماکروها غیر فعال میشن. وقتی فایل رو دوباره باز میکنید کدها حذف شدن یا خیر؟ اگر کدها حذف نشدن ولی به توابع دسترسی ندارید مشکل از تنظیمات ماکروهاتون هست

  20. hh

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

  21. حمید

    ضمن تشکر از شما
    برنامه برای من اجرا شد و لی مشکلی که وجود داره اینه که مثلا” فرمول =shamsi که تاریخ روز رو نشون میده اگر روز بعد فایل رو باز کنی با تاریخ جدید آبدیت نمیشه و همون تاریخ روز قبلش هست و اگر دبل کلیک کنی روی فرمول و اینتر کنی درست میشه اگر راهکاری وجود داره لطفا اعلام کنید

    1. یاسین اسماعیل پور

      سلام حمیدجان
      برای حل این مساله سه راه وجود داره:
      یکی اینکه هر بار خواستی تاریخا آپدیت بشن از کلید ترکیبی ctrl+alt+shif+f9 استفاده کنی.
      میتونی در event باز شدن فایلت کد Application.CalculateFullRebuild رو قرار بدی. که با هر بارر باز شدن فایل تابعت دوباره محاسبه بشه
      یا در خط اول کد مربوط به تابع shamsi عبارت Application.Volatile رو قرار بدی که اینکار باعث میشه تابع شمسی با هر بار تغییر مقادیر سلول ها دوباره محاسبه بشه (مثل توابع now، offset و …).

  22. وحید

    سلام اقا
    بابت آموزشات خیلی ممنونم دستت درد نکنه
    یه سوال داشتم از خدمتت،اگه بخوایم تاریخ با / از هم جدا بشن باید چی کار کرد؟ دنبال یه چیزی مثل input mask تو اکسس میگردم واسش ولی هرچی گشتم کمتر پیدا کردم.
    ممنون میشم راهنمایی کنی

    1. یاسین اسماعیل پور

      سلام وحید جان
      ممنون
      در مورد سوالات تا جایی که من میدونم اگه بخوای input mask مثل اکسس داشته باشی راهش کدنویسی VBA هست فقط

  23. rezaolyae

    با سلام و احترام خدمت دوستان عزیز
    واقعا دستتون درد نکنه
    می خواستم بدونم اگه بخواهیم مدت زمان یه تاریخی رو بدست بیاریم چگونه میشه این کا رو کرد
    مثلا از 1393/07/01 تا 1394/05/31 چند روز هست .
    ممنون

    1. یاسین اسماعیل پور

      با استفاده از تابع diff که در مطلب راجع بهش توضیح داده شده میتونید این کار رو انجام بدید

  24. زی روبرتو

    سلام.فایل مربوط به تاریخ شمسی به هیچ صراطی مستقیم نیست!! نه note pad و نه word pad .کلا به هم ریخته نشون میده.راهی هست؟

  25. amirbahman

    با سلام و تشکر بی نهایت از پاسخگویی شما
    من همه ی موارد رو رعایت کردم متاسفانه #value! میشه به عنوان مثال من با برنامه حسابداری کلیه تاریخ فاکتورهارو دریافت کردم وبرای سررسید گزاری آنها در 120روز دیگر تاریخ صدور فاکتور را با 120 جمع کردم از تابع =addday(13940101;120) ولی ایراد گرفت حتی فرمت ستون تاریخ استخراج شده رو هم روی date گذاشتم

  26. محمد

    من همه کارها را مرحله به مرحله انجام دادم وshamsi-date.txt را با نوت پد یا ورد پد باز میکنم اما ارور میده حتی utf8 را هم انجام دادم اما نمیشه

  27. محمد

    البته در یک کامپیوتر همه کارها را انجام دادم درست بود نمی دونم ایراد از کجاست

  28. امیر

    واقعاً ممنون
    امیدوارم خدا هرچی میخوای بهت بده:-)
    فقط کاش برای تاریخ هایی که با / جدا شده هم یه راه حلی میزاشتی؟:-/

    1. یاسین اسماعیل پور

      انشالله در اینده نزدیک فرصت بشه ویرایشش میکنم و این مورد رو هم اضافه میکنم امیر جان

  29. مرتضی فرهادی

    با سلام مشکل بنده با تایپ تاریخ شمسی در سلول است به عنوان مثال اگر داخل سلول تایپ کنیم 1394 اکسل این تاریخ رو با سال 1394 میلادی اشتباه میگیره یا اگر سال رو 94 تایپ کنیم به جای سال 1394 سال 1994 میلادی رو محاسبه می کنه
    ممنون میشم راهنمایی کنید

    1. یاسین اسماعیل پور

      سلام مرتضی جان
      شما باید فرمت سلول رو از date به text یا number تغییر بدی

  30. Amin

    سلام. آقا من از این ماکرو شما استفاده کردم، منتها به طرز عجیبی ضمن شناختن درست توابعتون متأسفانه بعد اینتر کردن با پیغام معروف:
    .The formula you typed contains an error
    مواجه میشوم. ممنون میشم اگه بگی چجوری میشه متوجه شد ایراد از کجاست.

  31. Amin

    حل شد برادر. ایراد از کاراکتر بود. چرا تو متن از “;” استفاده کردی بجای “,”

    1. یاسین اسماعیل پور

      دلیلش اینه که توی خیلی از سیستم ها عبارت جدا کننده پارامترهای اکسل “;” هست

  32. mojtaba

    با سلام
    احتراما انکود فایل ارسالی درست نیست. نه تو نوت پد نه توی ورد پد.
    تو ورد آفیس با انکود ms-arabic فقط باز می کنه که اگر از اونجا کپی پیست کنم همه علامت سوال میره
    MahName = “Ïí”
    Case 11
    MahName = “Èåãä”
    Case 12
    MahName = “ÇÓÝäÏ”
    این هم نمونش.
    با تشکر

    1. یاسین اسماعیل پور

      سلام مجتبی جان. انکود فایل مشکلی نداره و روی سیستم من و خیلی از دوستان جواب میده. نمیدونم چرا توی بعضی از سیستم ها این مشکل وجود داره

  33. Amir

    سلام. ممنون از ماکروی فوق العاده ای که گذاشتید.
    اگه بخوام تابعی برعکس SubtractDay ایجاد کنم که یع تعداد روز رو به روز مشخصی اضافه کنه، و همینطور این اعمال رو برای ماه و سال هم بنویسم چطور باید این کارو بکنم؟ درصورت امکان راهنمایی کنید. با تشکر

  34. محمد صادق

    *******آی لــــــــــــــــــــاو یـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــو*******

  35. هومن

    سلام
    از ماژول توابع تاریخ شمسی استفاده کردم. با وارد کردن sh= دستور shamsi= هم نشون داده میشه اما نتیجه #NAME?
    در سلول نمایش داده میشه. فرمت سلول روهم به جنرال هم text و هم Date فرقی نداره هیچ کدوم جواب نمیده

    1. یاسین اسماعیل پور

      یه جای کار رو اشتباه کردی دوست من. فایلت رو بفرست تا برات بررسی کنم

    1. یاسین اسماعیل پور

      ممنون از اینکه اطلاعاتتون رو در اختیار سایر دوستان گذاشتید

  36. محمد قدرتی

    سلام
    چجوری میتونم تاریخی ک کاربر وارد کرده رو با امروز اختلاف بگیرم
    یا واضحتر بگم چجوری میتونم 1394/09/10 رو به تاریخ 13940910 تبدیل کنم تا بتونم تابع diff رو فراخوانی کنم؟؟؟

    1. یاسین اسماعیل پور

      سلام.
      از تابع Replace استفاده کنید. مثال:
      replace(“1394/09/01″;”/”;””)

    2. صابر

      من هدر تابع Diff رو به این شکل عوض کردم:
      Public Function Diff(ByVal strFromDate As String, ByVal strTo_Date As String) As Long
      (متغیر ها رو از جنس رشته تعریف کردم)

      بعد چهار خط زیر رو توی تابع Diff قرار دادم:

      Dim FromDate As Long
      Dim To_Date As Long
      FromDate = CLng(Replace(strFromDate, “/”, “”))
      To_Date = CLng(Replace(strTo_Date, “/”, “”))

      به بقیه تابع هم دست نزدم
      این جوری چه به صورت اول (13960102) چه به صورت جدید (1396/01/02) تاریخ رو به تابع ارسال کنیم جواب میده

  37. سیروان

    سلام …همه فرمول به درستی عمل نمیکنه وپیغام #VALUE! …. علتش چیه … ؟! لطفا راهنمایی کنید گام به گام مشکل از چیه ماکرو یا تاریخ دستگاه یا….

    1. یاسین اسماعیل پور

      سلام. علتش میتونه چیزهای زیادی باشه دوست من. تا فایلتون رو نبینم نمیتونم دقیق کمکتون کنم

  38. امین

    سلام…آقا من با فرمول addday مشکل دارم .. هر چی گفتی هم رعایت کردم اما نمیشه… فرمول های دیگه هم مشکل ندارن …. لطفا کامل راهنمایی کنید خیلی لازمش دارم

  39. امین

    لطفا یکی در مورد فرمول addday کمک کنه… وقتی میزنم error میده اما بقیه فرمول ها رو راحت میتونم بزنم…dayweek,validdate,,shamsi,,, اینا رو راحت میزنم

    1. یاسین اسماعیل پور

      دوست من. من توضیحات رو کامل دادم. مطابق این توضیحات عمل کنید نباید مشکلی باشه. باید ببینید کجا رو دارید اشتباه میکنید

  40. میثم

    خیلیییییییییییییییی عالیییییییییییییی بود.چاکککککککککککرررررررررررررررررررررررررررررررررررمممممممممممممممممممممممممم یاسییییییییییین جانننننننننننننننننننننننننننننننننننن.ماچچچچچچچچچچچچچچچچچچ

  41. 131810

    سلام مهندس جان
    تمام مطالب سایت خیلی مفید بود علی الخصوص مباحث تاریخ شمسی .خیلی ممنونم

  42. امیر

    سلام
    یه سوال ؟؟؟!!!
    من دوتا شیت دارم..! اولین شیت ماله امروزه ..! اطلاعات و وارد کردم حال میخواهم تاریخ امروز تو یه سلولی به صورت اتوماتیک ذخیره بشه.
    یه روز بعد
    من یه شیت دیگه ساختم باز اطلاعات امروزمم وارد کردم ذخیرشم کردم حالا برمیگردم به اطلاعات روز قبلم
    چون روز قبلو با استفاده از کدهای بالایی!! تاریخو وارد کردم …! تاریخ امروز رو نشون میده.
    چی کار کنم تو همون روز باقی بمونه و ذخیره بشه؟

    1. یاسین اسماعیل پور

      سلام. شما یا باید paste as value استفاده کنید و یا تاریخ رو با کد vba قرار بدید نه فرمول

  43. حسین

    سلام چطوری میتونم تاریخی رو که به صورت دستی وارد میکنم به صورت شمسی وارد کنم؟

    1. یاسین اسماعیل پور

      با استفاده از برنامه نویسی VBA میشه اینکار رو انجام داد. آیا با VBA آشنایی دارید؟

  44. حسین

    سلام نه بلد نیستم
    اگه امکانش هست بگین چکار کنم که تاریخ به صورت شمسی وارد شه

    1. یاسین اسماعیل پور

      حسین جان توضیحش یکم طولانیه و چون شما آشنایی نداری بعید میدونم بتونی پیادش کنی

  45. حسین

    من هدفم اینه که تاریخ چک رو که وارد میکنم موعد سررسید چک یه پیغامی بهم بده
    ممنون میشم راهنمایی کنین

  46. جواد حسینی

    سلام
    آقا یاسین دست شما درد نکنه آموزش فوق العاده خوبی بود.
    من تازه با سایت شما آشنا شدم . واقعا عالیه . ان شاء اله که موفق باشید.

  47. جواد حسینی

    سلام
    وقتی از تابع =dat() استفاده می کنم بصورت ??????1394/11/25
    می خواستم ببینم مشکل از کجاست . روزهای هفته رو بصورت علامت ؟ نشان میدهد.

    1. یاسین اسماعیل پور

      سلام
      مشکل شما از encoding هست. تنظیمات ویندوز خودتون رو روی persian قرار بدید

    2. gsanaee

      سلام و خسته نباشید در داخل پرانتز ()=shamsi آیا به یک سلول که که تاریخ میلادی دارد باید ارجاع داد تا تبدیل به تاریخ شمسی شود و فرمت ورودی تاریخ میلادی باید به چه صورت باشد

  48. saeid

    اقا ياسين
    اين / را بايد بصورت دستي از بين اعداد حذف كرد يا تابعي براي حذف آن وجود داره

    1. یاسین اسماعیل پور

      نه سعیدجان از تابع substitute میتونی برای اینکار استفاده کنی. مثال:
      =SUBSTITUTE(“1394/10/01″;”/”;””)

  49. saeid

    ممنون از راهنماییت
    لطف میکنی بگی فرمولی هست که بشه باهاش عدد 13 رو به اول 94 اضافه کنه و تو تاریخ بنویسه
    مثلا : 94/12/01 بشه 1394/12/01 یا 94/12/01 بشه 13941201 تا بشه ازش اختلاف تاریخ گرفت
    ممنون ازت دوست من

    1. یاسین اسماعیل پور

      سلام سعید جان. برای اینکار میتونی از علامت & استفاده کنی. “13”&”94/11/12″

  50. saeid

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

    1. یاسین اسماعیل پور

      اگه بخوای از فرمول استفاده کنی یکم پیچیده میشه و واقعا اینجا تو کامنت نمیشه جواب داد. اگه راه ساده تر هم بخوای میتونی از advanced filter استفاده کنی

  51. Mahdad

    سلام. ممنون از مطبلتون
    یه سوال. من چطوری میتونم به کمک همین کدها تاریخ میلادی رو ب شمسی تبدیل کنم. اگر کدی برای این کار موچود هست لطفا اون رو هم بذارید.

  52. sepidan

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

    1. یاسین اسماعیل پور

      سلام
      متاسفانه تابعی برای اینکار در این ماژول وجود نداره و باید از ماژول دیگه ای برای اینکار استفاده کنید. الان در حال حاضر نمیتونم راهنمایی خاصی بکنم چون تا حالا با این مورد سرو کار نداشتم متاسفانه

  53. saeid

    سلام مجدد
    يه سوال داشتم . ميخام بدونم ميشه كاري كرد كه هر روز خودش بياد بصورت انلاين ميزان باقي مانده روز را از يك تاريخ تا تاريخ روز ديگه را محاسبه كنه و نشون بده .
    مثلا از امروز تا اخر هفته 5 روز مانده فردا تو همون سل بطور اتوماتيك بنويسه 4 روز مانده و به همين ترتيب ادامه بده
    با تشكر

    1. یاسین اسماعیل پور

      سلام
      تابع shamsi خود به خود با refresh آپدیت میشه و به طور اتوماتیک به روز میشه

    1. یاسین اسماعیل پور

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

  54. شروین

    منن تمام کارهایی که گفته شده را انجام دادم ولی چجوری باید با یه کلید تاریخ شمسی جاری را ثبت کنم؟

    1. یاسین اسماعیل پور

      سلام شروین جان. برای اینکار کافیه در کد اون کلید بنویسی:
      ACTIVESHEET.CELLS(1,1)=SHAMSI()

  55. شروین

    خواهشا زود جواب بدید ممنون میشم
    بابت آموزشتونم ممنون خیلی خوب بود عالی بود فقط کلیدشو هم بگید خیلی خوب میشه

    1. یاسین اسماعیل پور

      سلام دوست عزیز
      برای اینکار به اینصورت عمل کنید. فرض کنی تاریخ در سلول A1 هست.
      =LEFT(A1;2)&”/”&MID(A1;3;2)&”/”&RIGHT(A1;2)

  56. محمد طالشی

    با توضیحاتی که راجع به saveکردن نهایی دادید در عمل موفق نشدم لطفا راهنماییم کنید؟؟؟

    1. یاسین اسماعیل پور

      میشه بیشتر توضیح بدی دوست من؟ کجای کار به مشکل خوردی. کافیه فایل رو با پسوند XLSM ذخیره کنی

  57. ماکان

    ممنون از مطلب مفید و خوبت.
    من متن کد رو با استفاده از word-pad به فرمت unicode-utf8 تبدیل کردم. بعد به txt ذخیره کردم و متون توی notepad, notepad++ , wordpad, word نمایش داده می شن و خوانا هستن. توابع هم به کار خودشون عمل می کنن.
    مشکلی که الان هست اینه که توی ویرایشگر vba همچنان حروف فارسی علامت سوال ؟ نمایش داده می شه. فرقی هم نمی کنه از کدوم ویرایشگر متن کپی کنم. و در نتیجه هم اگر قرار هست توی شیت اکسل “اردیبهشت” دیده بشه، به جاش چند تا علامت سوال میاد.

    با یه مقدار جستجو می بینم مردم نوشته اند که گویا فرمتی به غیر از اسکی امکان نمایش نداره توی این ادیتور. (البته پردازش متن یونیکد ممکن هست، اما امکان نمایش مستقیم توی ادیتور نیست.) اما گویا شما این کار رو انجام دادی.
    (در لینک زیر، سوال طرف، چیز دیگری هست، اما توی جواب ها به اینی که می گم اشاره شده)
    http://stackoverflow.com/questions/7269399/declaring-a-unicode-string-in-vba-in-excel
    و توی جواب ها دو نفر اشاره کردن. از جمله این قسمت:
    Editor doesn’t display Unicode
    از ویندوز 10 و آفیس 2013 استفاده می کنم. آیا تفاوت نسخه داریم؟

  58. Milad

    سلام.
    من همه کامنت ها رو خوندم.
    برای مشکلی که توی لغات فارسی وجود داره.
    من همون ابتدا که فایل رو باز میکنم هیچ کلمه فارسی توش نداره.
    فایل نوت منظورم هست. حالا همین فایل رو وقتی با utf8 هم ذخیره کنم هیچ تفاوتی ایجاد نمیکنه و کاراکترهارو به همون صورت به هم ریخته ذخیره میکنه. ممنون میشم فایل صحیح رو توی جواب کامنت بذاری. تشکر.

  59. محمد امین

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

  60. reza

    سلام
    واقعا عالی ممنونم
    فقط ی مشکلی کلافم کرده
    وقتی کارامو انجام میدم میام بیرون و دوباره وارد میشم و shamsi=رو میزنم اصلا وجود نداره انگار کد وجود نداره.
    وبعد از وارد کردن کد باید دوباره روز از نو روزی از نو.
    چندین بار امتحان کردم جوابی نمیگیرم.
    لطفا کمک کنید.

  61. majid

    سلام با تشکر از برنامه نویسی معرکه شما.
    واقعا عالی هست و به درد بخور .
    خداقوت

  62. mohsen

    سلام
    من میخوام توی جداولم تاریخ رو به جای 13950203 بصورت 1395/02/03 برگردونه
    چکارباید بکنم؟
    با تشکر از سایت خوبتون

  63. moh3n

    با تابع make_Date تاریخ رو با اسلش جدا کردم اما میخوام تابع Diff رو روش اعمال کنم نمیشه
    یعنی اختلافشون رو نشون نمیده

  64. میلاد

    سلام دوست عزیز
    واقعا سپاس بخاطر اینکه برای این فایل کتابخونه ای که رووش خیلی زحمت هم کشیده شده ، یک داکیومنتیشن (wiki) خیلی خوب درست کردی.
    مرسی از زحماتت

  65. محمد

    سلام
    آقای اسماعیل پور بنده هر چه روی SHEET جدید میرم گزینه VIEW CODE خاموش هستش اگه میشه راهنمایی کنید چطور درست میشه؟
    از مطالب مفیدی که داخل سایت بارگذاری میشه تشکر میکنم…..

  66. yasin

    سلام
    در صورتیکه سال 1394 کبیسه نیست ولی با محاسبه فرمول DIFF ما بین تاریخ 1394/01/01 الی 1394/12/29 تعداد روز 364 محاسبه میشه نمیدونم چرا . لطفاً بررسی کنید و جوابشو برام ایمیل بزنید ممنون قبلاً از سایت خوبتون و فعالیت مثبتون کمال تشکر و قدرانی را دارم .

  67. yasin

    سلام دوباره این مشکل تو شمارش سه ماهه ها هم وجود دارد مثلاً 1394/01/01 لغایت 1394/03/31 با دستور ِDIFF جواب میده 92 روز در حالیکه جواب باید 93 میشد باز نیازمند کمک سبزتان هستیم :)) ممنون

  68. reza

    سلام
    ممنونم ازمطالب مفیدتون(دمت گرم)
    با تابع make_Date تاریخ رو “/” جدا کردم اما میخوام تابع Diff رو روش اعمال کنم ولی متاسفانه نمیشه
    فقط میشه
    (diff(13950101;13950102 این فرمول را وارد کرد و اختلاف روز را حساب کرد که خوندنش توی هزاران تاریخ واقعا سخته بدون”/” .
    ایا ممکن هست که تابع make_Date و Diff رو باهم ترکیب کرد؟
    باز هم سپاس فراوان بابت مطالب مفید و کاربردی.

    1. hamidr3za

      سلام
      شما میتونی با تابع SUBSTITUTE(A1,”/”,””) همه “/” ها رو جدا کنی بعد تابع Diff رو اعمال کنی
      بعد تو یه ستون دیگه با فرمول LEFT(A1,4)&”/”&MID(A1,5,2)&”/”&RIGHT(A1,2) اختلافی که با Diff محاسبه کردی دوباره بهش اسلش اضافه کنی

  69. hamidr3za

    سلام
    یاسین جان
    من چند تا فایل اکسل داشتم ولی الان همش بهم ریخته و اومدم با نت پد باز کردم تبدیل به utf8 کردم
    و دوباره تو اکسل از تب data و from text دوباره فایلو باز کردم و با کاما اونها رو از هم جدا کردم بلکه فایلم درست شه………اما نمیشه نمیدونم مشکل تو اینکد کردن یا چیز دیگه …..هر کاری کردم بازم بهم ریخته بود
    ممنون ::)))

    1. انجام پروژه های اکسل در اینجا

      سلام ، آقا حمید رضای عزیز
      ایشالله که هیچوقت کارت گیر نباشه!!
      من 15 ساله که دارم با اکسل کار میکنم و تا حالا سابقه نداشته که به همچین مشکلی بر بخورم !! دلایل زیادی ممکنه داشته باشه ، از ویروسی بودن کامپیوترت تا بد سکتور داشتن هارد و … !!
      خودت بهتر از همه میتونی حدس بزنی که چی عامل اون میتونه باشه
      دستکاری فایل یک نرم افزار با نرم افزارهای دیگه ، ممکنه کار رو خرابتر بکنه ، سعی کن از روشهای متعارف استفاده بکنی
      موفق باشی – خانیکی

      1. hamidr3za

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

  70. آموزش ماکرو نویسی در اینجا

    خواهش میکنم ، آقا حمید رضا
    روشهای متعارف ، یعنی روشهایی که هر نرم افزار ، مثل اکسل ، برای بازکردن ، ذخیره کردن و یا بازیابی فایلهای خودشون از قبل پیش بینی و تعریف کردند
    از دیگر مواردی که ممکنه باعث بهم ریختگی فایل بشه ، تغییر خودسرانه پسوند نام فایل و یا بازکردن فایلهای ذخیره شده با نسخه های جدید یک نرم افزار ، توسط نسخه های قبلی همان نرم افزار !!
    آیا تمامی فایلهای اکسل شما بهم ریخته شده است؟ یا فقط تعدادی از فایلهای خاص؟
    آیا از فایلهای فوق پشتیبان هم تهیه کرده بودید؟ در اینصورت ، فایلهای پشتیبان هم به هم ریخته هستند؟
    اگر تمایل دارید ، یکی از فایلهای قدیمی را که کمتر دستکاری شده است ، اما اشکال آن کماکان باقیست برای من بفرستید تا از نزدیک بررسی کنم . برای ارسال فایل از طریق ایمیل ، روی عنوان این پیام کلیک نمایید
    موفق باشید – خانیکی
    0919-302-6452

    1. hamidr3za

      مرسی از جوابتون
      من خودم فکر میکنم که از ویروس باشه البته ویروس کشی کردم درست نشد….
      یا اینکه فونت ها مشکل داشته باشه که باید با تبدیل به utf8 بوسیله نت پد ++ حل میشد….
      تمامی فایلهایی که بهم ریخته یک ویروس با چند نام داشت یکی از اونها RecoveR بود ولی باقی فایل ها که در فولدر اونها این فایل ویروس شکل نبود سالم ماندند…
      ایمیل شما معلوم نیست …. اگه امکان داره یک بار دیگه بفرستید یکی از فایل ها رو براتون بفرستم

  71. آموزش ماکرو نویسی در اینجا

    سلام ، آقا حمید رضا
    مگر شما با اکسل 97 تا 2003 کار میکنید؟!!
    فایل شما با پسوند XLS متعلق به این نسخه از اکسل می باشد!!
    از طرفی ، اکثر پسوند نام فایلها در اکسل ، معمولاً با حروف کوچک نوشته میشود ، اما پسوند فایل شما با حروف بزرگ نوشته شده است!!
    محتویات فایل نیز هیچ تناسبی با فایلهای اکسل ندارد ، گویا پسوند فایل نرم افزار دیگری را ، به پسوند اکسل تغییر نام داده اند!!
    این شیطنت ها ، میتواند کار یک ویروس یا حتی یک فرد باشد!!
    خودتان گفته بودید که ویروس فوق به پوشه های خاصی حمله میکند ، پس به راحتی میتوانید عملکرد آن را بررسی کنید
    یک یا چند فایل سالم را به عنوان طعمه در پوشه های آلوده قرار دهید و نتیجه آن را به دقت بررسی کنید
    تغییراتی که در حجم فایل ، پسوند نام فایل و محتویات فایل داده میشود را باهم مقایسه کنید
    گمان نمیکنم فایلهای از دست رفته به راحتی قابل بازیابی باشند ، فقط بایستی با روشی ، از ادامه این تهاجم پیشگیری شود
    نهایتاً تنها چاره کار ، ویروس کشی ، یا نصب مجدد ویندوز و مجموعه آفیس میتواند باشد . موفق باشید – خانیکی
    0919-302-6452

    1. hamidr3za

      مرسی از پیگیری شما…
      همون طور که گفتید فایل مربوط به اکسل 2003 به قبل هستش ولی پسوندو نمی دونم چرا حروف بزرگ ذخیره شده..!!
      درباره محتویات باید بگم که فایل اکسل بودن قبلن ولی الان که بهم ریختن اصلن قابل خوندن نیست…الان تونستم جلوی ویروسو بگیرم تا پخش نشه ولی میخام فایل های قبلی رو برگردونم چون خیلی مهم هستند….ولی انگار کاری نمیشه کرد…با تشکر از شما که وقت گذاشتین

  72. alirezaazimi

    سلام فایل نوت پد من انگلیسی باز میشه اصلا روزای هفته رو نداره مثل نمونه عکسی که شما از نوت پد گذاشتین. مشکلش چیه؟؟

  73. اینجا را کلیک کن

    سلام ، آقای عظیمی
    نمونه عکس بالا نوت پد نیست ، بلکه محیط ماکرونویسی در اکسل یا بعبارتی VBA است
    با کلیک راست روی نام شیت و انتخاب گزینه View Code میتونی به اونجا بری
    موفق باشی – خانیکی
    0919-302-6452

  74. آموزش ماکرو نویسی در اینجا

    سلام ، آقای حامد شرقی
    من با ماکرونویسی تابعی نوشته ام که تاریخ میلادی رو میگیره و تاریخ شمسی رو برمیگردونه
    شما برای اینکه بتونید ستونی ، دارای تاریخهای شمسی داشته باشید ، ابتدا بایستی ستونی با تاریخ میلادی ایجاد کنید و با کمک این تابع ، تاریخ شمسی متناظر اون رو بدست بیارید . در نهایت میتونید ، ستون تاریخ میلادی رو که لازم ندارید ، مخفی کنید
    یک راه دیگه اینه که ، تاریخ شمسی رو بر اساس شماره ردیف جدولتون تنظیم و محاسبه کنید!!
    برای دانلود کردن این تابع و نحوه استفاده از اون ، با کلیک کردن روی عنوان بالای این پاسخ ( آموزش ماکرونویسی در اینجا ) به وبلاگ من وارد بشید ، و به پست “دانلود نمونه های آموزشی” بروید و تابع “تبدیل تاریخ میلادی به شمسی” رو دانلود کنید
    موفق باشید – خانیکی
    0919-302-6452

  75. علی محمدی اصل

    سلام. خیلی عالیه. خیلی به کارم اومد. ولی یه اشکال کوچولو داره که اگه برطرف بشه اونی میشه که من می خوام.
    اگه بشه در اختلاف دو تاریخ مشخص کنه که چند روزش در سال کبیسه بوده و چند روزش در سال عادی خیلی عالی می شه.

    1. یاسین اسماعیل پور

      سلام حمیدرضا جان. کدوم سوال؟ اون رو که آقای خانیکی جواب دادن. منظورت همونه؟

  76. hamidr3za

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

  77. mahdi85

    سلام
    عالی بود
    ولی برای من چرا تابع mahnameوdayweek ؟؟؟؟؟؟؟؟؟؟؟ این جوری نشون میده نتیجه فرمول رو؟

    1. hamidr3za

      سلام اقا یاسین چندروزه نیست من بجاش جواب میدم
      شما زبان سیستم رو از کنترل پنل قسمت region & local –> administrative –> change system local عوض کنی بذاری روی persian درست میشه

  78. fateme

    سلام
    من میخام اکسل یه ستونی رو که تاریخ های هر سطر متفاوته رو بگیره و یه ماه مونده به اون تاریخ رنگ سطرم عوض بشه میتونین کمکم کنید ،لطفا؟
    یعنی مثلا تاریخ انقضا منهای امروز بشه اگه کمتر از سی بود رنگشو عوض کنه
    تاریخ ها شمسی هم باشه

    1. hamidr3za

      سلام
      به نظرمن اول اون سطری که تاریخ توش هست رو تبدیل به ستون کن …بعد یک ستون جدید برای تاریخ روز ایجاد کن با استفاده از فرمول ()shamsi= بعد با تابع Diff اختلافشو بدست بیار و در نهایت بوسیله conditional formatting میتونی اونهایی که کمتر از سی روز مونده رنگشو عوض کنی

  79. سینا

    با سلام
    چطور میشه دستور Shamsi() بطور خودکار به روز شه.یعنی هربار که فایل باز می شه تاریخ روز رو بهم اعلام کنه نه تاریخ قبل رو.

  80. حسین

    با تشکر از ماکرویی که دادید . یک فایل اکسلی دارم . میخواهم تاریخ وصول چکها را از تاریخ سررسید آنها کم کنم . تا بتونم روی دیرکرد مشتریان بررسی انجام بدهم . نتونستم از این ماکرو استفاده کنم . اگر ممکنه راهنمایی بفرمایید.

  81. علی

    آقا یاسین
    سلام ، من اینکارو انجام دادم و دقیقا” تاریخ رو بفارسی نشون میده اما علیرغم اینکه این فایل رو Add_Ins کردم و در اون قسمت تیک هم خورده اما در فایل جدیدی که ایجاد میکنم خونده نمیشه چرا؟ در ضمن تیک ماکرو رو هم در Add-ins فعال کردم .
    ممنون میشم راهنمائی بفرمائید .

  82. علی

    آقا یاسین
    با سلام مجدد، یکی اینکه من تا هر فایل اکسلی را که میخوام باز کنم ابتدا همین فایل ماکرو شمسی باز میشه ثانیا” امروز که همون فایل ماکرو باز شد تاریخش آپدیت نشده و مربوط به همون روزای قبلیه ، لطفا” بفرمائید مشکل کجاست !!!
    ممنونم

  83. rahim

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

  84. rahim

    اگر از تابع روز استفاده کنم جور در نمیاد چون همه ماه ها تعداد روزشون یکی نیست

  85. hmg

    سلام بسیار ممنون از سایت مفیدتان.
    سوالی داشتم ممنون میشم پاسخگو باشید.
    میخواهم در سلول های یک ستون تاریخی را وارد کنم. و فرمولی بنویسم که اگر از هرکدام از آن تاریخ ها 15 روز بگذرد . ردیفی که آن سلول در آن قرار دارد رنگ متنشان یا رنگ پس زمینه تغییر کند.
    چه باید بکنم؟ خواهش میکنم راهنمایی کنید.

  86. احسان توکلی

    آقا یاسین گل دست شما درد نکته بابت این مطلب واقعا عالیت. من فایل رو دانلود کردم . ولی مثل بعضی از دوستان مشکل نافرم باز شدن نوشته های فارسی رو داشتم. راه هایی هم که گفته بودی انجام دادم . بازهم درست نشد… ممنون میشم اگر کمکم کنی. حتی سعی کردم خودم فارسی بنویسم تو vba ولی نشد.

  87. حسینی

    سلام
    جناب مهندس من همه اون کارها رو انجام دادم ولی ،Diff رو حساب نمی کنه.
    خیلی ممنون می شم راهنمایی بفرمایید

    1. شاعر الکترونیک

      سلام . با اجازه مهندس گرامی آقا یاسین
      مشکل اینه که در فرمول به جای “;” باید از “,” استفاده کنید که در راهنمایی اشتباه نوشتاری پیش اومده دوست من

  88. مرضیه

    سلام اگه تاریخ تولد کسی رو داشته باشیم در اکسل فرمولی وجود دارد که سن اون نفر رو نشون نشون بده ؟

    1. یاسین اسماعیل پور

      سلام
      بله وجود داره همین مطلب رو مجدد با دقت مطالعه کنید توابعش رو توضیح دادم کامل

    1. یاسین اسماعیل پور

      سلام نیلوفرجان.
      مشکل فرمول شما اینه که بعد از مساوی ها فاصله گذاشتی. فاصله ها رو حذف کن درست میشه

  89. spiderboy

    سلام جناب اسماعیل‌پور
    ممنون از معرفی تابع بسیار کاربردی تاریخ شمسی
    من این تابع رو در یه سلول استفاده کردم
    =shamsi()

    ولی متاسفانه خودکار آپدیت نمیشه
    یعنی مثلا دیروز 13950517 بوده و امروز فایل رو باز میکنی خودکار به 13950518 تبدیل نمیشه . راهی براش هست ؟
    ریکلکیولیت و ریفرش و … رو امتحان کردم نشد.
    خودم فکر میکنم اگه به جای فرمول =shamsi() از یه فرمول که تاریخ میلادی رو به شمسی تبدیل کنه استفاده کنیم شاید راه گشا باشه
    =miladi_shamsi(today())
    ولی تابع این پست فرمول تبدیل تاریخ میلادی به شمسی رو نداشت …
    ممنون میشم برای این مساله راهنماییم کنین
    تشکر

    1. یاسین اسماعیل پور

      سلام دوست عزیز
      کافیه در کد VBA خط زیر رو به ابتدای تابع shamsi() اضافه کنی:
      Application.Volatile

      1. spiderboy

        تشکر. این کار رو انجام دادم اما بازهم نتیجه نداد. احتمالا من به درستی انجام ندادم. میشه شما زحمتش رو بکشید و فایل ویرایش شده رو بذارید تا هم من و هم دیگران استفاده کنیم؟

  90. mina alizadeh

    سلام
    با سپاس از اطلاعات مفیدتون ، من قصد دارم یک شمارنده واسه تاریخ تعریف کنم که وقتی 21 روز از تاریخ ارسال تجهیزاتم گذشت ردیف اون تجهیز رو واسم مشخص کنه . ممنون میشم راهنمایی کنید

    1. یاسین اسماعیل پور

      سلام مینا جان
      با استفاده از تابع diff و گرفتن اختلاف اون با تابع shamsi میتونید اینکار رو بکنید

  91. حامد م

    بسیار عااالییییی
    از شما سپاسگزارم که دانشتون رو به اشتراک میذارید
    پیروز و سربلند باشید

  92. REZA

    سلام جناب آقای اسماعیل پور عزیز
    بنده از توابع ارائه شده استفاده کردم و یک DATA BASE سفارشات برای بخش تدارکاتمان آماده کردم.تو این DATA BASE تاریخ های مراحل مختلف سفارش ثبت میشه و با تابع DIFF هم زمان واقعی با زمان استاندارد برای هر فعالیت مقایسه میشه و اختلاف نشون داده میشه.متسفانه بعد از ورود اطلاعات 60 مورد سفارش(کمتر از یک ماه است که اطلاعات وارد میشه) فایل اکسل باز نمیشه.به نظر شما علت چیست؟

    ممنون میشم راهنمایی کنید.

  93. niloofar

    سلام یه جدول فایل اکسل که چند صفحه هست رو بخام به صورت پی دی اف یک صفحه ذخیره کنم میشه؟!

  94. spiderboy

    جناب اسماعیل پور ممکنه به من هم کمک کنید ؟
    در خصوص بروزرسانی خودکار تاریخ شمسی موقع ورود به اکسل بود که راهش رو فرمودید اما من نتونستم عملی کنم.
    میشه زحمت درج کد رو بکشید و کد کامل رو بدید

  95. mehrnaz

    سلام
    من همه کارهایی که بالا توضیح دادیدو انجام دادم ولی همچنان نمیتونم تفاوت دوتا تاریخو بدست بیارم، وقتی به عنوان مثال مینویسم (13940114;13940107)Diff= ابتدا بجای جواب عدد صفر میگذاره و وقتی دوباره سلول و انتخاب و اینتر میکنم ?Name#. می شه لطفا راهنمایی کنید. تشکر

  96. spiderboy

    اخه به کد نویسی تسلط ندارم
    وقتی این که گفتین رو اول شمسی اضافه میکنم ارور میده و میگه
    invalid outside procedure

  97. spiderboy

    در واقع من میخوام وقتی کاربر فایل اکسل رو باز میکنه تاریخ به روز توی خونه مربوطه دیده بشه.
    الان در حالت عادی تاریخ آخرین سیو نشون داده میشه. مثلا اگه 1/5/95 فایل رو ذخیره کرده باشم و امروز بازش کنم تاریخ سلول همون 1/5/95 هست. باید یه بار دابل کلیک کنم روی سلول و اینتر بزنم تا تاریخ بشه 28/5/95
    اگه دقیقا و مبتدیانه بگید چیکار کنم خیلی خیلی کمک بزرگی کردید بهم . زیاد به کد نویسی تسلط ندارم .

  98. حاج علی

    آقا واقعاً ممنون؛ اینکه رایگان مطلبی در اختیار عموم میزارید نشانه دیدگاه خالصانه و بزرگمنشانه شما عزیزانه- مطالبتون بسیار مفید بودن مچکرم

  99. samira

    سلام خسته نباشيد.
    سايتتون واقعا عاليه…
    من ميخوام دوتاريخ شمسي را از هم كم كنم به نحوي كه نتيجه تعداد ماه ها رو برگردونه. ميشه اين كارو كرد؟چطوري؟

  100. ربابه

    با سلام، من میخوام یک ستون رو که محتوی تاریخ شمسی روز های چند ماه هست رو به ترتیب روز مرتب کنم. اگر کسی میدونه چطور میشه اینکار رو انجام داد ممنون میشم بگه.

  101. حمید

    حمید
    سلام … تنها از فرمول ()Shamsi= به درستی عمل میکنه بقیه که میزنم این میگه #VALUE! …. علتش چیه … ؟!

  102. مهدی

    با سلام من طبق روشی که شما گفین پیشرفتم ولی چطوری xlsm را داخل کادر save type قرار دهیم و هر گاه از اکسل بیرون میروم و دوباره اکسل را باز میکنم و =sh رامیزنم ان را نشان نمیدهد و اجرا هم نمیکند چرا ؟؟؟؟؟ کمکم کنید ممنون

  103. رضا شریفی نیا

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

  104. jimmy

    سلام به شما مدیر سایت و شما خواننده ی محترم
    یکی از پر کاربردترین تابع های اکسل همین تابع تاریخ شمسی هست.
    برای راحتی کار با این توابع شما میتونید توابعی که لازم دارید رو بجای اسم انگلیسی با اسم فارسی فراخوانی کنید برای این منظور برید به ماژول1 و اسم تابع مورد نظر رو با سرچ پیدا کنید و بعد اسم تابع رو در هر جای اون تابع اومده به فارسی تغییر بدید و برای فراخوانی تابع در محیط اکسل تابع رو با حروف فارسی فراخوانی کنید!! (عملا دیگه نیازی نیست تغییر زبان بدید و انگلیسی کنید) برای من که تابع ()DAT= مورد استفاده بود dayweek که به فارسی روز هفته رو وارد میکرد برداشتم (لازم نداشتمش) و با تغییر اسم تابع و دستور داخل تابع به ()تا= خیلی کارم راحت شد.
    مرسی بابت مطالب خوبتون

  105. مهدی

    چرا کسی جواب منو نمیده؟؟؟؟؟؟ من طبق همین روشی که شما گفتین شمسی سازی را انجام دادم و اجرا هم شد ولی وقتی از فایل بیرون امدم و دوباره وارد فایل شدم توابع وجود داشت ولی نمیشد از انها استفاده کرد و هر وقت() SHAMSI=را میزنم صفر را نشان میدهد؟؟؟؟؟؟؟؟؟؟

  106. علی

    سلام من وقتی از تابع shamsi() استفاده میکنم روز بعد تاریخ اپدیت نمیشود چرا؟؟؟؟؟؟؟؟؟ و بعضی وقتا تابع شمسی تاریخ دیروز را به جای امروز وارد میکند چرا

  107. شب بو

    سلام. ممنون از مطلب عالی و مفیدتون.
    یه سوالی داشتم اینکه اگه من بخوام تعداد روزهایی که بین دو تا تاریخ که با این فرمت نوشته شده (95/05/23) و در دو سلول گذاشتم رو بدست بیارم باید از چه تابعی استفاده کنم، چون تابع DIFF رو که استفاده کردم ارور داد. لازمه فرمت تاریخ سیستم رو تغییر بدم؟ یا اینکه کلا فرمت تاریخ نویسی رو در اکسل تغییر بدم. ممنون میشم اگه جواب بدین.

  108. میثم

    خیلی ممنون از شما.
    خیلی بهره بردم. خسته نباشید
    فقط کامنتهای فارسی را وقتی وارد ماژول اکسل 2013 میکنم همشون به شکل علامت سوال درمیان.

  109. mahboub

    سلام .ممنون از مطلب مفیدتون
    یه سوال دارم.چجور میتونم اختلاف دو سلول را که محتوای آنها تاریخ شمسیه که به صورت دستی وارد شده، حساب کنم؟

  110. Maryam

    سلام
    واقعا از مطالعه این وبسایت لذت بردم ، کاربردی و سهل الوصول …
    من یک سوال دارم ممنون میشم راهنماییم کنید :
    آیا برای محاسبه دیرکرد پرداخت مشتریان ( دیرکرد پرداخت چک ) میشه تابعی تعریف کرد ؟
    مثلا اگر تاریخ چک از تاریخ صدور فاکتور بیشتر از 100 روز شد ، براش بتونم بر اساس یه ضریب دیرکرد پرداخت حساب کنم .
    سپاس

    1. یاسین اسماعیل پور

      سلام مریم خانوم
      بله میشه. کافیه ما با استفاده از تابع if نتیجه حاصل از تابع diff رو چک کنید و در صورتی که بیشتر از 100 بود محاسبات مدنظرتون رو انجام بدید

  111. mahboub

    من با تابع Diff اختلاف تاریخ امروز با یه تاریخ دیگه رو حساب میکنم.
    اما حاصل هر روز آپدیت نمیشه.مصلا اگه اختلاف دیروز عدد 10 بوده، امروز پس از گذشت 1 روز، باید اختلاف بشه 9.اما این اتفاق نمیفته
    اگه کسی میتونه کمک کنه

    1. یاسین اسماعیل پور

      سلام
      قبلا هم در این خصوص توضیح داده بودم دوست عزیز
      اگر میخواید تابع شما خودکار به روز بشه کافیه عبارت:
      Application.Volatile
      رو به ابتدای تابع Shamsi() کد خودتون (کد داخل ماژول نه فرمول) اضافه کنید. اما یادتون باشه با اینکار هر بار ک تغییری در شیتتون بدید تابع شمسی دوباره محاسبه میشه و این باعث میشه پردازش فایل شما بیشتر بشه

  112. س

    سلام. من كل اين مراحل رو اجرا كردم وانجام شد.
    ولي در آخر وقتي =sh مي زنم و اينتر
    مي زنم…ارور #name مي ده… مشكل از كجاست؟

    1. یاسین اسماعیل پور

      سلام
      وقتی =sh میزنید نباید اینتر بزنید باید گزینه shamsi رو انتخاب کنید.

  113. محسن

    سلام
    من یه فایل اکسل دارم ستون تاریخ جای ماه و روز که بینشون اسلش/ است عوض شده چطور میتونم درستش کنم.

  114. حامدمحمدی

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

  115. مهتاب

    سلام.
    من وقتی notepad رو باز می کنم هم فارسی ها روو به زبان دیگه ایی نشون میده که قابل خوندن نیست.
    چه کنم؟

  116. محسن

    سلام وقتی دستور shamsi= رو میزنم تاریخ بصورت 13950820 نشون میده و بینشون / نمی ذاره

  117. شهاب

    سلام
    من میخواستم فرمول الارم در اکسل رو اگه میشه برای تاریخ ببنویسید
    ممنون میشم

  118. کورش

    سلام و خسته نباشید
    آقا تابع AddDay مشکل داره نظرات دیگران رو هم خوندم چند نفر دیگر از دوستان هم مشکل داشتن. همه توابع به درستی کار می کنن ولی این تابع فقط مشکل داره و وقتی عددی رو به تاریخ مورد نظر بعد از سمیکالن اضافه می کنم ارور میده.
    لطفا راهنمایی بفرمایید
    با تشکر

  119. e

    با سلام ، قبل از هر چیز از مطالب بسیار کاربردی سایتتون تشکر میکنم.
    یه سوال داشتم: در اکسل با کلیک راست روی نام Sheet برای انتخاب view code، این گزینه خاموشه! یعنی من اصلن نمیتونم انتخابش کنم.( قسمت ماکرو هم تو تنظیمات فعاله) مشکل از کجاست؟
    خیلی ممنون

  120. فرهاد واقف

    سلام
    ممنون از مطلب کارآمدتون. کدوم آموزشگاه اکسل حرفه ای در تهران رو پیشنهاد می کنید؟

  121. قاسم

    با سلام خدمت همه بزرگواران
    ی سوال داشتم: میخواستم تاریخ اعتبار یه سری مدارک رو در اکسل ثبت کنم و میخوام از طریق فرمول نویسی بیاد تاریخ درج شده رو با تاریخ روز مقایسه کنه و بهم آلارم بده
    میشه کمکم کنید؟؟

  122. حمید طهانی

    همه مطالب عالی بود. تشکر و خسته نباشید
    فقط مثال previouse mah اشتباه تایپی داره .
    اگر میشد اختلاف روز ماه سال رو هم به تفکیک میداد عالی میشد. یعنی دقیقا لنگ همین مطلبم.
    در ضمن اگه گروهی در تلگرام دارید ممنون میشم منم ادد کنید. 09214312663

  123. trooska

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

  124. asghar

    با سلام
    آيا ميشه در اكسل فرمولي بكار برد تا با وارد كردن تاريخ استخدام فردي در يك سلول آن سلول يا سلول كناري آن سالهاي گذشته خدمتي آن فرد را نشان دهد مثلا فردي در سال 1390/10/11 استخدام شده و خود اكسل به صورت خودكار در سلول كناري عدد 5 سال نمايش دهد كه اين فرد از اين تاريخ تا 1395/10/11 (5 )سال خدمت كرده است

  125. parisa1995

    سلام
    خسته نباشید ممنون بابت مطالب آموزشی
    من یه سوال داشتم ورژن که آموزش میدید چنده چون من 2013 کار میکنم اکثر عنوانهایی که میگیدو پیدا نمیکنم ممنون

  126. KEVIN

    سلام خدمت دوستان اگر هنوز بعضیا مشکل ؟ در VBA دارن میتونن وارد این قسمت در صفحه VBA بشن
    TOOLS<OPTION
    تب EDITOR FORMAT رو انتخاب کنید بعد تو قسمت FONT یه فنت فارسی( مثلا B NAZANIN )انتخاب کنید بعد OK حالا نوشته رو کپی کنید

  127. mehdi69

    با سلام خدمت همه دوستان عزیزم خصوصا مدیریت محترم.
    سوالی که من داشتم در مورد کم کردن دوتاریخ از هم هستش(به صورت شمارش معکوس روز ،ساعت و دقیقه) که این عملیات را در قالب نمودارpieبه ما نشان بده.برای نشون دادن مدت زمان باقی مانده برای اتمام پروژه لازم دارم.
    اگه کسی بتونه راهنماییم کنه ممنون میشم

  128. علی

    با سلام من تمام مراحل را همان طوری که شما گفته بودین رفتم و توابع shamsi , dat . … بود ولی موقع کار کردن و استفاده#name? را نشان میده چرا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  129. hkheiran

    با سلام و خسته نباشید
    میشه برنامه ایی در فایل درج کرد که شماره هفته رو هم بدهد؟

  130. علی

    سلام من فایل text رو دانلود کردم ولی چون utf-8 نیست همه نوشته هاش به هم ریخته به کاراکترهای ناخوانا تبدیل شده است. میشه فایلش رو مجدد آپلود کنید و فرمت صحیح

  131. علی

    با سلام من طبق روش گفته شده کار کردم و لی هر وقت توابع را میزنم علامتname # را نشون میده چرا خواهش میکنم کمکم کنید؟؟؟؟؟؟؟؟؟؟

  132. علی

    علی
    01.22.2017 در 4:22 ب.ظ

    با سلام من طبق روش گفته شده کار کردم و لی هر وقت توابع را میزنم علامتname # را نشون میده چرا خواهش میکنم کمکم کنید؟؟؟؟؟؟؟؟؟؟

  133. مسعود

    سلام
    من میخوام یه تاریخ شمسی مثل 1395/02/05 با همین فرمت رو توی اکسل با یه عددی جمع کنم. مثل 7 که جواب بشه 1395/02/12 آیا امکانش هست؟ بی زحمت جوابتونو برام ایمیل کنید
    ممنونم

  134. مهدی

    باسلام و تشکر درمورد نشان دادن سال کبیسه فرمول بین تمامی سالها هر چهار سال یک بار در نظر میگیره بجز بین سال های ۱۳۷۱ تا ۱۳۷۵ ایا این یک خطای برنامه نویسی محسوب نمیشه

  135. sara

    باسلام من مشکل مرتب سازی تاریخ تولد دارم مثلا به جای 36/2/18باید بزنم 1336/02/18تعداد این مرتب سازی هم زیاده ضمن اینکه با اکسلم زیاد اشنا نیستم.ممنون میشم راهنمایی کنید

  136. feri

    بسیار عالی
    ممنون از شما
    فقط با توجه به اینکه توابع نمیتوانند تاریخی غیر از تاریخ جاری رو به شمسی تبدیل کنند اگر چند تغییر بدین این کار انجام میشه و فقط کافیه بنویسید
    =Shamsi(تاریخ میلادی مورد نظر)
    کدش اینه :
    ‘***********************************************
    Public Static Function Shamsi(ByVal F_Date As Long) As Long
    ‘تاريخ جاري سيستم را به تاريخ هجري شمسي تبديل مي كند
    Dim Shamsi_Mabna As Long
    Dim Miladi_mabna As Date
    ‘در اينجا 78/10/11 با 2000/01/01 معادل قرارداده شده
    Shamsi_Mabna = 13781011
    Miladi_mabna = #1/1/2000#
    Dif = DateDiff(“d”, Miladi_mabna, F_Date)
    If Dif < 0 Then
    MsgBox "تاريخ جاري سيستم شما نادرست است , آنرا اصلاح كنيد."
    Else
    Shamsi = AddDay(Shamsi_Mabna, Dif)
    End If
    End Function

  137. جهانگیر آذربان

    سلام دوستان
    دستورadddayتو اکسل من درست کار نمیکنه
    عین دستور نوشته شده رو مینویسم ولی خطا میده

  138. ع *نقدی

    با عرض سلام
    چگونه میشود تاریخ شمسی را در اکسل از همدیگر کسر نمود وحاصل آن تعداد روز اعلام گرددمثلا
    دریک سلول تاریخ اعتبار گواهی تا تاریخ1396/02/31 وجود دارد که اگر از تاریخ 1395/12/30 کسر شود 62 روز اعتبار گواهی را اعلام نماید(در صورت مقدور تاریخ روز از سیستم اخذ شود وبه صورت دستی وارد نگردد)
    ممنون

  139. Zahra

    سلام وقتتون به خیر.
    ایا امکان هست تاریخی که به صورت ۱۳۹۵/۰۲/۱۴را به صورت ۱۳۹۵۰۲۱۴ نوشت ؟در صورت خیر. چگونه می توان دو تاریخ ۱۳۹۵/۰۱/۱۵ از تاریخ ۱۳۹۴/۱۲/۱۲ کسر کرد. ممنون می شم پاسخ بدید.

  140. سید علی هاشمی

    سلام مهندس جان
    خیلی از لطفت ممنون
    فایل را با نوت پد باز کردم و تمام نوشته ها و توابع را در module کپی کردم و پنجره هارا بستم و با xlsmآنرا save as کردم و فایل اکسل را باز کردم و توابه مثلا shamsi= را تایپ کردم علامت name را نشان میدهد
    ممنون میشم راهنمائی فرمائید

  141. mehdi.e

    سلام
    من میخوام امار شرکتم رو اکسل وارد کنم وقتی میزنم به طور مثال 95/1/1 تبدیل میشه به1995/1/1 من میخوام تبدیل بشه به 1395/1/1 لطفا راهنمایی کنید با تشکر

  142. مهدی شریف

    سلام
    یک فایل اکسل که تاریخ های شمسی داخلش هست رو وقتی می خوام اختلاف دو تاریخ رو بدست بیارم داخل سلولی که باید اختلاف دو تاریخ باشه #value! رو نشون میده ، و وقتی همون تاریخ رو روی سلول خودش تایپ میکنم درست میشه و جواب میده .

    ضمن اینکه وقتی روی سلول تاریخ های موجود کلیلک میکنم رد سمت راست نوار فرمول نشون میده و وقتی تایپ میکنم میاد سمت چپ .
    ممنون میشم کمک کنید .

  143. حامد

    با تشکر لطفا نحوه محاسبه تفاضل تاریخ 1394/01/12 و 1395/08/30 چگونه بدست میآید.
    از سایت خوبتون سپاسگذارم.

  144. m.bodobia2

    با سلام
    اگه بخواهیم بگیم که هر تاریخی که این ردیف یا این سلول پر شد رو در ی سلول دیگه به ما نشون بده چیکار باید بکنیم
    با تشکر از سایت و مطالب بسیار بسیار مفید

  145. نجمه آشتیانی

    سلام
    من به شدت به این مورد احتیاج دارم و همه ی مراحلی که گفتید رو انجام دادم ولی تابع شمسی رو بهم نشون نمیده 🙁
    چی کار کتم؟

  146. faranak

    سلام و وقت بخیر
    بابت توضیحات بی نهایت سپاسگزاریم از شما… خیلی کامل بود.
    یه سوال::: وقتی تبدیل انجام میشود بین تاریخ ها اسلش نمیاد چطوری میشه اینو اضافه کرد؟؟؟؟؟
    و یه خواهش از شما دارم که بگید برای هر بار استفاده از ماکرو برای موارد مختلف این فایل ها را چه گونه سرج کنیم … یعنی با چه نامی…
    به عبارت دیگر من همیشه در کار با ماکرو مشکل دارم چرا که فایل را ندارم
    نمیدونم متوجه سوالم شدید یا نه؟؟؟؟؟؟؟؟؟
    امکان داره مثال های دیگری را زده و فایل های دیگری را قرار دهید؟؟؟
    سپاس

  147. هادی

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

    لطفا راهنماییم کنید.office2010

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *