امیدوارم سال جدید رو به خوبی شروع کرده باشید و هرچه سال جلوتر میره اتفاقهای خوب بهتری براتون بیافته. در این مطلب میخوام یکی از روشهای استفاده از تاریخ شمسی در اکسل رو براتون معرفی کنم. نحوه استفاده از تاریخ شمسی در اکسل برای خیلی از دوستان سوال هست. برای اینکار راه های زیادی داره که هر کدوم مزایا و معایب خودشون رو دارند. طبیعیه که ممکنه راه های بهتری برای کار با تاریخ شمسی در اکسل وجود داشته باشه. در صورتی که راه بهتری میشناسید خوشحال میشم در نظرات عنوان کنید تا سایر دوستان هم استفاده کنند.
خب بریم سراغ اصل مطلب. ابتدا یک شیت جدید باز کنید. حالا مثل تصویر زیر روی 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 (یکشنبه)
امیدوارم از این مطلب استفاده برده باشید. سال نو مبارک.
پینوشت: کدهایی که در این آموزش ازشون استفاده کردم نوشتهی من نیست. اگر کسی میدونه که این کدها اجازه انتشار نداره لطفاً به من اطلاع بدید تا این مطلب رو حذف کنم.
فایل متنی مربوط به تاریخ شمسی مطالب فارسی را به درستی نمایش نمیدهد. لطفاً یک لینک دانلود دیگر ارائه دهید.
سلام به شما مدیر سایت و شما خواننده ی محترم
یکی از پر کاربردترین تابع های اکسل همین تابع تاریخ شمسی هست.
برای راحتی کار با این توابع شما میتونید توابعی که لازم دارید رو بجای اسم انگلیسی با اسم فارسی فراخوانی کنید برای این منظور برید به ماژول1 و اسم تابع مورد نظر رو با سرچ پیدا کنید و بعد اسم تابع رو در هر جای اون تابع اومده به فارسی تغییر بدید و برای فراخوانی تابع در محیط اکسل تابع رو با حروف فارسی فراخوانی کنید!! (عملا دیگه نیازی نیست تغییر زبان بدید و انگلیسی کنید) برای من که تابع ()DAT= مورد استفاده بود dayweek که به فارسی روز هفته رو وارد میکرد برداشتم (لازم نداشتمش) و با تغییر اسم تابع و دستور داخل تابع به ()تا= خیلی کارم راحت شد.
مرسی بابت مطالب خوبتون
برای اینکه کامنتم بالای کامنتها بیاد مجبور شدم از پاسخ به استفاده کنم!!! لطفا کامنتهای جدید رو بالا بیارید 🙂 ممنون
سلام
با اجازه شما لینک مطلب بالا را به مطلب ارائه شده در وبلاگم اضافه کردم.
http://tarfandha.blog.ir/post/220
موفق باشید.
اجازه ما هم دست شماست محمدرضا جان.
سلام … تنها از فرمول ()Shamsi= به درستی عمل میکنه بقیه که میزنم این میگه #VALUE! …. علتش چیه … ؟!
به احتمال زیاد پارامترها رو با فرمت اشتباهی استفاده میکنید. نباید مشکلی وجود داشته باشه
با تشکر از شما و برنامه نویس این کد ها
یک باگ جالب در مورد فرمول dayweek هست. این فرمول قرار است روز هفته یک تاریخ مشخص را برگرداند. طبق بررسی من، از امروز به عقب تا تاریخ 1380/10/11 (سه شنبه) این فرمول درست کار می کند ولی روز قبلش را اشتباه نشان می دهد (می شود چهارشنبه به جای دوشنبه) و همینطور از این روز به قبل، ایام هفته برعکس نشان می دهد یعنی هفته با جمعه شروع می شود و روز بعدش پنجشنبه است و روز قبلش چهارشنبه الخ.
من کد نویسی بلد نیستم ولی اگر توانستم این کد را درست کنم اطلاع می دهم. خوشحال میشم اگر کسی تونست درستش کنه به من هم اطلاع بده
ممنون که اطلاع دادی سهیل جان. چک میکنم ببینم مشکلش چیه خودم تغییر میدم کدش رو
با سلام
نوشته ها (کاراکترهای فارسی ) به صورت ‘????? ???? ??? ?????? ??? داده میشه . این مشکل رو چطور حل کنم؟
سلام احمد جان. موقعی که تو NOTEPAD سیستم باز میکنی هم این مشکل رو داره؟ این مساله معمولا به خاطر اینه که تنظیمات ویرایشگرت باید روی UTF8 باشه. اگر تنظیماتت رو روی utf8 بزاری باید درست بشه.
با سلام در msp چکار کنیم
آقای اسماعیل پور فوق العاده عالییییی بود.
دستتون درد نکنه
خواهش میکنم. خوشحالم بدردتون خورد.
آقای اسماعیل پور شرمنده منم یه چند وقتیه مشکل آقای احمد رو دارم !!!!!
نوشته ها (کاراکترهای فارسی ) به صورت ‘????? ???? ??? ?????? ??? داده میشه . utf8 رو از کجا پیدا کنم؟
سلام. شما وقتی قایل Shamsi-Date.txt رو دانلود میکنید و توی notepad باز میکنید نوشته های فارسی به صورت صحیح نمایش داده میشه یا خیر؟
به صورت text سیوش میکنم با adobe بازش میکنم اصن کلا زبونش میریزه به هم
اگرم همونجا کپی پیست کنم که ؟؟؟؟؟؟ میاره به جای فارسیاش
چرا با adobe باز میکنید؟ به صورت txt ذخیرش کنید و توی نرم افزار notepad ویندوز بازش کنید ببینید مشکل داره کلمات فارسی یا خیر.
مرسی خیلی عالی بود
ممنون
عالی بود ممنون
من تازه با سایت آشنا شدم
خیلی برام مفید بود
ممنون مهدی جان.
اگه بخوام تو یک ستون تاریخ رو از اول ماه بنویسه تا اخرش چیکار باید بکنم؟! تابع خاصی داره؟
برای اینکار تابع خاصی نداره محمد مهدی جان. باید با استفاده ترکیبی از تابع row، تابع shamsi و تابع addday پیاده سازی کنیش.
سلام
این ستون شمسی برای من هم حیاتیه
اگر لطف بفرمایید دقیقا توضیح بدهید ترکیب دستورات برای ساختن ستون یک ماه شمسی در اکسل به چه صورتیه؟
سلام ، آقای حامد شرقی
جواب شما رو در پایین صفحه دادم
موفق باشید – خانیکی
0919-302-6452
سلام
من اختلاف دو تاریخ رو به صورت روز و ماه وسال میخوام
تابعش موجود نیست ، چکار کنم؟؟
ممنون
واسه منم قسمت ها فارسی فایل مشکل داره ، با utf8 هم ذخیره میکنم
اگه راه کاری پیشنهاد بدین ممنون میشم
وحیدجان فک کنم خوب نخوندی مطلبو. تابع diff که تو متن توضیح دادم برای همینکار هست
چرا یاسین جان
ولی اون اختلاف رو به صورت روز میده
من نتیجه رو به صورت سال و ماه و روز میخوام
مثلا نتیجه بشه 25/8/20 25 سال و 8 ماه و 20روز
تابعی واسه این کار وجود نداره خودت میتونی با یه محاسبه تقسیم و مانده به جواب مدنظرت برسی وحید جان
باشه ممنون
خواهش
اقا یاسین میشه توضیح بدین
واسه اون مشکل دیگه ام چی؟؟ میشه با یه پسوند دیگه واسم میل کنی اگه امکانش هست؟!!
ممنون
سلام
آقا یاسین ممنونم از راهنمایتون
کاری که گفته بودی با slxm سیو کنیم همون ماکرو؟
بله. فایل هایی که ماکرو و کد VBA دارند رو باید با XLSM یا XLSB ذخیره کنی حمیدجان.
پس چرا برای من متنی که با Shamsi-Date.txt ذخیره میکنم و با نوت پد باز میکنم هیچکدوم از متناش فارسی نیس؟ اون تنظیمات utf8 کجاس؟
فایل shamsi-date.txt رو به جای نوت پد با wordpad باز کن و از داخل wordpad کپی کن و بعد داخل visual basic editor پیست کن ببین مشکلت حل میشه یا نه.
فوق العاده عالییییی ممنون آقا یاسین. من هم مشکل کاراکتر فارسی به شکل ؟؟؟؟؟ رو دارم. توی نوت پد نوشته ها درسته ولی تو اکسل علامت سوال نشون میده. مشکل چیه؟ چطور با utf8 سیو کنم؟
utf8 رو پیدا کردم و با اون سیو کردم ولی باز هم نشد. نوشته های فارسی ؟؟؟؟؟ نمایش داده میشه 🙁
رضاجان فایل shamsi-date.txt رو به جای نوت پد با wordpad باز کن و از داخل wordpad کپی کن و بعد داخل visual basic editor پیست کن ببین مشکلت حل میشه یا نه.
سلام
مشکل من با استفاده از WORDPAD حل نشد
چه جوری به UTF8 تغییر بدم؟
ممنون
مررررسی. آقا یاسین حل شد با همین فرمول شما. عالی. مرسی که خیلی زود جواب دادی و پیگیر هستی
خواهش میکنم رضاجان
سلام
آیا تابع بدست آوردن سال بعد هم وجود داره مثل NextMah که ماه بعد رو نشون میده؟
خیر رضا جان چنین تابعی وجود نداره. اما شما به راحتی میتونی از طریق استفاده از فرمول LEFT به همون نتیجه برسی. مثال:
=LEFT(13940718;4)+1
با تشکر از پاسخ سوال قبل
آیا تابعی وجود داره که با گرفتن یک تاریخ تعداد روزهای باقی مانده تا پایان سال رو نشون بده؟ مثلا با دادن تاریخ 25 اسفند عدد 4 رو نشون بده.
سلام. نه این تابع وجود نداره اما شما میتونید خیلی راحت با استفاده از تابع left سال رو استخراج کنید، اون رو به علاوه یک کنید و با چسبوندن عبارت “0101” به انتهای متن، روز اول سال بعد رو ایجاد کنید و بعد اختلاف تاریخ موردنظرتون رو با اون از طریق تابع diff حساب کنید.
یاسین جان، منظور از چسبوندن عبارت “0101” به انتهای متن چیه ؟ یعنی دستی اونو به سال بدست اومده اضافه کنم یا این عبارت رو به انتهای تابه left اضافه کنم؟؟؟
درباره تابع diff هم باید بگم که، اگه تاریخ ها رو به صورت اسلش دار ( / ) وارد کنیم این تابع دیگه عمل نمی کنه.
شما باید 0101 رو با علامت & به انتهای سال بعد هست اضافه کنی. برای تابع diff هم خب مشخصه که باید اول فرمتش رو بدون / کنی بعد بزاری تو تابع.
سلام وقتی روی شیت راست کلیک میکنم view code غیر فعال هست چکار کنم؟
سلام. اگر فایل جدید ایجاد کنید هم این مشکل وجود داره؟ فایلتون رو از طریق بخش تماس برام ارسال کنید تا بررسی کنم.
سلام.
من فایل رو هم با نوت پد و هم با وردپد بازش کردم. با پسوند xlsm.و xlsb هم ذخیره اش کردم. اما وقتی که از ورکشیت خارج میشم و دوباره وارد میشم فایلها رو نمیتونه بخونه .ممنون میشم اگه راهنمایی بفرمایین.
فایل تکست رو که نباید با پسوند xlsm ذخیره کنید. باید کپی کنید تو فایل اکسلتون. توضیحات رو مجددا و با دقت بیشتر بخونید
ممنـــــــــــــــــــــــــــــــــــون از راهنمایی هاتون …..
راستی توی قسمت مثال تابع Make_Date اشتباه تایپی وجود داره عبارت MahDays به جای Make_Date استفاده شده.
و میخواستم بدونم این فونت که برای ارائه مطالب سایت از اون استفاده میکنید اسمش چیه ؟
مرسی از دقتت. اصلاح شد. فونتی که من اینجا استفاده میکنم اسمش DroidNaskh هست رضا جان.
سلام و عرض ادب.
منم دقیقا طبق دستور شما فایل تکست رو توی اکسل کپی میکنم. بعد فایل اکسل رو هم با پسوند xlsm ذخیره میکنم. تا وقتی که از فایل اکسل خارج نشدم جواب میده. اما اگر از فایل اکسل خارج شدم و دوباره وارد همون فایل اکسل که ذخیره اش کردم بشم توابع شمسی رو ندارم .
سپاس که وقت میذارین.
سلام حسین جان. احتمالاً مشکل به این دلیل هست که تنظیمات ماکرو شما غیرفعال هست و زمانی که فایل رو میبندید و دوباره باز میکنید ماکروها غیر فعال میشن. وقتی فایل رو دوباره باز میکنید کدها حذف شدن یا خیر؟ اگر کدها حذف نشدن ولی به توابع دسترسی ندارید مشکل از تنظیمات ماکروهاتون هست
سلام و عرض ادب مجدد.
اول اینکه من دست مریزاد میگم بابت این سایت آموزنده و تشکر میکنم بخاطر وقتی که میذارین.
مهندس وقتی فایل و باز میکنم کدها حذف نشدن همون طور که میفرمایین مشکل از تنظیمات ماکرو هست. اما چطور تنظیمات و اصلاح کنم؟.
سپاس.
ضمن تشکر از شما
برنامه برای من اجرا شد و لی مشکلی که وجود داره اینه که مثلا” فرمول =shamsi که تاریخ روز رو نشون میده اگر روز بعد فایل رو باز کنی با تاریخ جدید آبدیت نمیشه و همون تاریخ روز قبلش هست و اگر دبل کلیک کنی روی فرمول و اینتر کنی درست میشه اگر راهکاری وجود داره لطفا اعلام کنید
سلام حمیدجان
برای حل این مساله سه راه وجود داره:
یکی اینکه هر بار خواستی تاریخا آپدیت بشن از کلید ترکیبی ctrl+alt+shif+f9 استفاده کنی.
میتونی در event باز شدن فایلت کد Application.CalculateFullRebuild رو قرار بدی. که با هر بارر باز شدن فایل تابعت دوباره محاسبه بشه
یا در خط اول کد مربوط به تابع shamsi عبارت Application.Volatile رو قرار بدی که اینکار باعث میشه تابع شمسی با هر بار تغییر مقادیر سلول ها دوباره محاسبه بشه (مثل توابع now، offset و …).
خیلی عالی و کاربردی بود
باتشکر از شما
ممنون
سلام اقا
بابت آموزشات خیلی ممنونم دستت درد نکنه
یه سوال داشتم از خدمتت،اگه بخوایم تاریخ با / از هم جدا بشن باید چی کار کرد؟ دنبال یه چیزی مثل input mask تو اکسس میگردم واسش ولی هرچی گشتم کمتر پیدا کردم.
ممنون میشم راهنمایی کنی
سلام وحید جان
ممنون
در مورد سوالات تا جایی که من میدونم اگه بخوای input mask مثل اکسس داشته باشی راهش کدنویسی VBA هست فقط
با سلام و احترام خدمت دوستان عزیز
واقعا دستتون درد نکنه
می خواستم بدونم اگه بخواهیم مدت زمان یه تاریخی رو بدست بیاریم چگونه میشه این کا رو کرد
مثلا از 1393/07/01 تا 1394/05/31 چند روز هست .
ممنون
با استفاده از تابع diff که در مطلب راجع بهش توضیح داده شده میتونید این کار رو انجام بدید
سلام.فایل مربوط به تاریخ شمسی به هیچ صراطی مستقیم نیست!! نه note pad و نه word pad .کلا به هم ریخته نشون میده.راهی هست؟
فایلتو بفرست خودم برات آپدیت کنم
با سلام و تشکر بی نهایت از پاسخگویی شما
من همه ی موارد رو رعایت کردم متاسفانه #value! میشه به عنوان مثال من با برنامه حسابداری کلیه تاریخ فاکتورهارو دریافت کردم وبرای سررسید گزاری آنها در 120روز دیگر تاریخ صدور فاکتور را با 120 جمع کردم از تابع =addday(13940101;120) ولی ایراد گرفت حتی فرمت ستون تاریخ استخراج شده رو هم روی date گذاشتم
بزرگوار مشکل بنده حل شد بازهم تشکر
خداروشکر
من همه کارها را مرحله به مرحله انجام دادم وshamsi-date.txt را با نوت پد یا ورد پد باز میکنم اما ارور میده حتی utf8 را هم انجام دادم اما نمیشه
البته در یک کامپیوتر همه کارها را انجام دادم درست بود نمی دونم ایراد از کجاست
واقعاً ممنون
امیدوارم خدا هرچی میخوای بهت بده:-)
فقط کاش برای تاریخ هایی که با / جدا شده هم یه راه حلی میزاشتی؟:-/
انشالله در اینده نزدیک فرصت بشه ویرایشش میکنم و این مورد رو هم اضافه میکنم امیر جان
با سلام مشکل بنده با تایپ تاریخ شمسی در سلول است به عنوان مثال اگر داخل سلول تایپ کنیم 1394 اکسل این تاریخ رو با سال 1394 میلادی اشتباه میگیره یا اگر سال رو 94 تایپ کنیم به جای سال 1394 سال 1994 میلادی رو محاسبه می کنه
ممنون میشم راهنمایی کنید
سلام مرتضی جان
شما باید فرمت سلول رو از date به text یا number تغییر بدی
سلام. آقا من از این ماکرو شما استفاده کردم، منتها به طرز عجیبی ضمن شناختن درست توابعتون متأسفانه بعد اینتر کردن با پیغام معروف:
.The formula you typed contains an error
مواجه میشوم. ممنون میشم اگه بگی چجوری میشه متوجه شد ایراد از کجاست.
حل شد برادر. ایراد از کاراکتر بود. چرا تو متن از “;” استفاده کردی بجای “,”
دلیلش اینه که توی خیلی از سیستم ها عبارت جدا کننده پارامترهای اکسل “;” هست
خیلی ممنون از مطالب بسیار عالی شما
موفق باشید و سرافراز
ممنون ناصر جان
با سلام
احتراما انکود فایل ارسالی درست نیست. نه تو نوت پد نه توی ورد پد.
تو ورد آفیس با انکود ms-arabic فقط باز می کنه که اگر از اونجا کپی پیست کنم همه علامت سوال میره
MahName = “Ïí”
Case 11
MahName = “Èåãä”
Case 12
MahName = “ÇÓÝäÏ”
این هم نمونش.
با تشکر
سلام مجتبی جان. انکود فایل مشکلی نداره و روی سیستم من و خیلی از دوستان جواب میده. نمیدونم چرا توی بعضی از سیستم ها این مشکل وجود داره
سلام. ممنون از ماکروی فوق العاده ای که گذاشتید.
اگه بخوام تابعی برعکس SubtractDay ایجاد کنم که یع تعداد روز رو به روز مشخصی اضافه کنه، و همینطور این اعمال رو برای ماه و سال هم بنویسم چطور باید این کارو بکنم؟ درصورت امکان راهنمایی کنید. با تشکر
از تابع Addday میتونی استفاده کنی امیر جان
آی لاو یو
🙂 ممنونننننننن
آی لــــــــــــــــــــاو یـــــــــــــــــــو
:)) مرسی
*******آی لــــــــــــــــــــاو یـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــو*******
ممنون از محبت قشنگت محمدصادق جان
سلام
از ماژول توابع تاریخ شمسی استفاده کردم. با وارد کردن sh= دستور shamsi= هم نشون داده میشه اما نتیجه #NAME?
در سلول نمایش داده میشه. فرمت سلول روهم به جنرال هم text و هم Date فرقی نداره هیچ کدوم جواب نمیده
یه جای کار رو اشتباه کردی دوست من. فایلت رو بفرست تا برات بررسی کنم
از افزونه پرنیان 7 به راحتترین شکل ممکن میشه استفاده کرد
ممنون از اینکه اطلاعاتتون رو در اختیار سایر دوستان گذاشتید
z
سلام
چجوری میتونم تاریخی ک کاربر وارد کرده رو با امروز اختلاف بگیرم
یا واضحتر بگم چجوری میتونم 1394/09/10 رو به تاریخ 13940910 تبدیل کنم تا بتونم تابع diff رو فراخوانی کنم؟؟؟
سلام.
از تابع Replace استفاده کنید. مثال:
replace(“1394/09/01″;”/”;””)
من هدر تابع 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) تاریخ رو به تابع ارسال کنیم جواب میده
سلام …همه فرمول به درستی عمل نمیکنه وپیغام #VALUE! …. علتش چیه … ؟! لطفا راهنمایی کنید گام به گام مشکل از چیه ماکرو یا تاریخ دستگاه یا….
سلام. علتش میتونه چیزهای زیادی باشه دوست من. تا فایلتون رو نبینم نمیتونم دقیق کمکتون کنم
همه کامنت های بالا رو خوندم ولی چیزی گیرم نیومد
سلام…آقا من با فرمول addday مشکل دارم .. هر چی گفتی هم رعایت کردم اما نمیشه… فرمول های دیگه هم مشکل ندارن …. لطفا کامل راهنمایی کنید خیلی لازمش دارم
لطفا یکی در مورد فرمول addday کمک کنه… وقتی میزنم error میده اما بقیه فرمول ها رو راحت میتونم بزنم…dayweek,validdate,,shamsi,,, اینا رو راحت میزنم
جناب اسماییل پور لطفا کمک کنید
دوست من. من توضیحات رو کامل دادم. مطابق این توضیحات عمل کنید نباید مشکلی باشه. باید ببینید کجا رو دارید اشتباه میکنید
سلام
اموزش کار با توابع تاریخ شمسی در اکسل پی دی اف می خواستم برام ایمیل کنید مرسی
با سلام
عالی بود . عالی عالی
ممنون حسین جان.
آقا دمت گررررررررررررم.
خیلی ممنون
ممنون علیرضا جان
خیلیییییییییییییییی عالیییییییییییییی بود.چاکککککککککککرررررررررررررررررررررررررررررررررررمممممممممممممممممممممممممم یاسییییییییییین جانننننننننننننننننننننننننننننننننننن.ماچچچچچچچچچچچچچچچچچچ
مرسییییییییییییییییییییییی 🙂
سلام مهندس جان
تمام مطالب سایت خیلی مفید بود علی الخصوص مباحث تاریخ شمسی .خیلی ممنونم
سلام
ممنون دوست عزیز
مطالب درنت پدویا وردبصورت غیرخوانانمایش داده می شود.
locale سیستمتون رو فارسی کنید
سلام
یه سوال ؟؟؟!!!
من دوتا شیت دارم..! اولین شیت ماله امروزه ..! اطلاعات و وارد کردم حال میخواهم تاریخ امروز تو یه سلولی به صورت اتوماتیک ذخیره بشه.
یه روز بعد
من یه شیت دیگه ساختم باز اطلاعات امروزمم وارد کردم ذخیرشم کردم حالا برمیگردم به اطلاعات روز قبلم
چون روز قبلو با استفاده از کدهای بالایی!! تاریخو وارد کردم …! تاریخ امروز رو نشون میده.
چی کار کنم تو همون روز باقی بمونه و ذخیره بشه؟
سلام. شما یا باید paste as value استفاده کنید و یا تاریخ رو با کد vba قرار بدید نه فرمول
سلام چطوری میتونم تاریخی رو که به صورت دستی وارد میکنم به صورت شمسی وارد کنم؟
با استفاده از برنامه نویسی VBA میشه اینکار رو انجام داد. آیا با VBA آشنایی دارید؟
سلام نه بلد نیستم
اگه امکانش هست بگین چکار کنم که تاریخ به صورت شمسی وارد شه
حسین جان توضیحش یکم طولانیه و چون شما آشنایی نداری بعید میدونم بتونی پیادش کنی
من هدفم اینه که تاریخ چک رو که وارد میکنم موعد سررسید چک یه پیغامی بهم بده
ممنون میشم راهنمایی کنین
منم همین کارو میخوام انجام بدم
اگه متوجه شدین به منم بگین
ممنونم عزیز
خواهش میکنم
سلام ، عالی بود …
سلام. ممنون
دست شما درد نکنه خیلی عالی بود ما شرمنده ایم که فقط مصرف کننده هستیم
اختیار دارید بابک جان.
سلام
آقا یاسین دست شما درد نکنه آموزش فوق العاده خوبی بود.
من تازه با سایت شما آشنا شدم . واقعا عالیه . ان شاء اله که موفق باشید.
سلام. مرسی دوست من
سلام
وقتی از تابع =dat() استفاده می کنم بصورت ??????1394/11/25
می خواستم ببینم مشکل از کجاست . روزهای هفته رو بصورت علامت ؟ نشان میدهد.
سلام
مشکل شما از encoding هست. تنظیمات ویندوز خودتون رو روی persian قرار بدید
سلام و خسته نباشید در داخل پرانتز ()=shamsi آیا به یک سلول که که تاریخ میلادی دارد باید ارجاع داد تا تبدیل به تاریخ شمسی شود و فرمت ورودی تاریخ میلادی باید به چه صورت باشد
خیر، اگر بدون پارامتر هم استفاده کنید ممکن است. (بین پرانتز خالی باشد)
عالي بود
بيشتر مشكل كاريم با اين موارد برطرف شد
خيلي ممنون
خواهش میکنم سعید جان
اقا ياسين
اين / را بايد بصورت دستي از بين اعداد حذف كرد يا تابعي براي حذف آن وجود داره
نه سعیدجان از تابع substitute میتونی برای اینکار استفاده کنی. مثال:
=SUBSTITUTE(“1394/10/01″;”/”;””)
ممنون از راهنماییت
لطف میکنی بگی فرمولی هست که بشه باهاش عدد 13 رو به اول 94 اضافه کنه و تو تاریخ بنویسه
مثلا : 94/12/01 بشه 1394/12/01 یا 94/12/01 بشه 13941201 تا بشه ازش اختلاف تاریخ گرفت
ممنون ازت دوست من
سلام سعید جان. برای اینکار میتونی از علامت & استفاده کنی. “13”&”94/11/12″
یه درخواست دیگه هم داشتم
میشه تابعی بهم معرفی کنی که بشه باهاش از یک شیفت با اطلاعات زیاد سطرهای از ان شیت که باهم سل مشابه دارن را جداکرد و تو شیت دیگه بطور اتوماتیک و کنار هم نشون بده .
البته این کار را با اضافه کردن سطر جدید بطور مدام انجام بده .
یعنی من تو شیت اصلی اطلاعاتمو وارد کنم خودش بصورت اتوماتیک اون موردی که درخواست داده ام بیاد جدا کنه و به شیت بعدی اضافه کنه
ببخشید یکمی سوالم زیاده
ممنون از لطفت و سایت خوبت
اگه بخوای از فرمول استفاده کنی یکم پیچیده میشه و واقعا اینجا تو کامنت نمیشه جواب داد. اگه راه ساده تر هم بخوای میتونی از advanced filter استفاده کنی
سلام. ممنون از مطبلتون
یه سوال. من چطوری میتونم به کمک همین کدها تاریخ میلادی رو ب شمسی تبدیل کنم. اگر کدی برای این کار موچود هست لطفا اون رو هم بذارید.
سلام. چشم انشالله در اولین فرصت
سلام
ممنون از اطلاعات بسیار مفیدتون
من دنبال فرموای می گردم که مشخص کنه تاریخ مورد نظر چندمین هفته ساله. ممنون میشم راهنمایی بفرمایین.
سلام
متاسفانه تابعی برای اینکار در این ماژول وجود نداره و باید از ماژول دیگه ای برای اینکار استفاده کنید. الان در حال حاضر نمیتونم راهنمایی خاصی بکنم چون تا حالا با این مورد سرو کار نداشتم متاسفانه
سلام مجدد
يه سوال داشتم . ميخام بدونم ميشه كاري كرد كه هر روز خودش بياد بصورت انلاين ميزان باقي مانده روز را از يك تاريخ تا تاريخ روز ديگه را محاسبه كنه و نشون بده .
مثلا از امروز تا اخر هفته 5 روز مانده فردا تو همون سل بطور اتوماتيك بنويسه 4 روز مانده و به همين ترتيب ادامه بده
با تشكر
سلام
تابع shamsi خود به خود با refresh آپدیت میشه و به طور اتوماتیک به روز میشه
سلام چرا من میخوام یه چیزی رو حساب کنم اخطارname رومیده مشکل کجاست؟
خطای NAME علت های زیادی میتونه داشته باشه لطفا دقیق فرمولتون رو بنویسید تا بتونم کمکتون کنم
منن تمام کارهایی که گفته شده را انجام دادم ولی چجوری باید با یه کلید تاریخ شمسی جاری را ثبت کنم؟
سلام شروین جان. برای اینکار کافیه در کد اون کلید بنویسی:
ACTIVESHEET.CELLS(1,1)=SHAMSI()
خواهشا زود جواب بدید ممنون میشم
بابت آموزشتونم ممنون خیلی خوب بود عالی بود فقط کلیدشو هم بگید خیلی خوب میشه
جواب سوالت رو دادم شروین جان
سلام یاسن جان . چطوری بین تاریخ شمسی را با / یا کاما از هم تفکیک کنیم
سلام دوست عزیز
برای اینکار به اینصورت عمل کنید. فرض کنی تاریخ در سلول A1 هست.
=LEFT(A1;2)&”/”&MID(A1;3;2)&”/”&RIGHT(A1;2)
با توضیحاتی که راجع به saveکردن نهایی دادید در عمل موفق نشدم لطفا راهنماییم کنید؟؟؟
میشه بیشتر توضیح بدی دوست من؟ کجای کار به مشکل خوردی. کافیه فایل رو با پسوند XLSM ذخیره کنی
ممنون از مطلب مفید و خوبت.
من متن کد رو با استفاده از 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 استفاده می کنم. آیا تفاوت نسخه داریم؟
سلام.
من همه کامنت ها رو خوندم.
برای مشکلی که توی لغات فارسی وجود داره.
من همون ابتدا که فایل رو باز میکنم هیچ کلمه فارسی توش نداره.
فایل نوت منظورم هست. حالا همین فایل رو وقتی با utf8 هم ذخیره کنم هیچ تفاوتی ایجاد نمیکنه و کاراکترهارو به همون صورت به هم ریخته ذخیره میکنه. ممنون میشم فایل صحیح رو توی جواب کامنت بذاری. تشکر.
سلام بی نهایت ممنون
سوالی دارم من برای تفاضل روزها سال مشکل دارم
برای محاسبه جریمه تاخیر قسط بانک
کاش بتونم نمونه شو براتون بفرستم
عالی بود.ممنون
سلام
واقعا عالی ممنونم
فقط ی مشکلی کلافم کرده
وقتی کارامو انجام میدم میام بیرون و دوباره وارد میشم و shamsi=رو میزنم اصلا وجود نداره انگار کد وجود نداره.
وبعد از وارد کردن کد باید دوباره روز از نو روزی از نو.
چندین بار امتحان کردم جوابی نمیگیرم.
لطفا کمک کنید.
منم این مشکلو دارم
سلام با تشکر از برنامه نویسی معرکه شما.
واقعا عالی هست و به درد بخور .
خداقوت
سلام
من میخوام توی جداولم تاریخ رو به جای 13950203 بصورت 1395/02/03 برگردونه
چکارباید بکنم؟
با تشکر از سایت خوبتون
با تابع make_Date تاریخ رو با اسلش جدا کردم اما میخوام تابع Diff رو روش اعمال کنم نمیشه
یعنی اختلافشون رو نشون نمیده
سلام دوست عزیز
واقعا سپاس بخاطر اینکه برای این فایل کتابخونه ای که رووش خیلی زحمت هم کشیده شده ، یک داکیومنتیشن (wiki) خیلی خوب درست کردی.
مرسی از زحماتت
سلام
آقای اسماعیل پور بنده هر چه روی SHEET جدید میرم گزینه VIEW CODE خاموش هستش اگه میشه راهنمایی کنید چطور درست میشه؟
از مطالب مفیدی که داخل سایت بارگذاری میشه تشکر میکنم…..
سلام
در صورتیکه سال 1394 کبیسه نیست ولی با محاسبه فرمول DIFF ما بین تاریخ 1394/01/01 الی 1394/12/29 تعداد روز 364 محاسبه میشه نمیدونم چرا . لطفاً بررسی کنید و جوابشو برام ایمیل بزنید ممنون قبلاً از سایت خوبتون و فعالیت مثبتون کمال تشکر و قدرانی را دارم .
سلام دوباره این مشکل تو شمارش سه ماهه ها هم وجود دارد مثلاً 1394/01/01 لغایت 1394/03/31 با دستور ِDIFF جواب میده 92 روز در حالیکه جواب باید 93 میشد باز نیازمند کمک سبزتان هستیم :)) ممنون
سلام
ممنونم ازمطالب مفیدتون(دمت گرم)
با تابع make_Date تاریخ رو “/” جدا کردم اما میخوام تابع Diff رو روش اعمال کنم ولی متاسفانه نمیشه
فقط میشه
(diff(13950101;13950102 این فرمول را وارد کرد و اختلاف روز را حساب کرد که خوندنش توی هزاران تاریخ واقعا سخته بدون”/” .
ایا ممکن هست که تابع make_Date و Diff رو باهم ترکیب کرد؟
باز هم سپاس فراوان بابت مطالب مفید و کاربردی.
سلام
شما میتونی با تابع SUBSTITUTE(A1,”/”,””) همه “/” ها رو جدا کنی بعد تابع Diff رو اعمال کنی
بعد تو یه ستون دیگه با فرمول LEFT(A1,4)&”/”&MID(A1,5,2)&”/”&RIGHT(A1,2) اختلافی که با Diff محاسبه کردی دوباره بهش اسلش اضافه کنی
پست قبلی خوب نیفتاد
اسلش دار کردن تاریخ:
LEFT(A1,4)&”/”&MID(A1,5,2)&”/”&RIGHT(A1,2)
تابع SUBSTITUTE ارور NAME میده
لطفا تابع substitute که نوشتین رو قرار بدین ببینم مشکل کار کجاست
سلام. عالی بود.
مرسی مرتضی جان
یاسین عالیییییییییییی بود
ممنونم از لطفت اکرم جان
سلام
یاسین جان
من چند تا فایل اکسل داشتم ولی الان همش بهم ریخته و اومدم با نت پد باز کردم تبدیل به utf8 کردم
و دوباره تو اکسل از تب data و from text دوباره فایلو باز کردم و با کاما اونها رو از هم جدا کردم بلکه فایلم درست شه………اما نمیشه نمیدونم مشکل تو اینکد کردن یا چیز دیگه …..هر کاری کردم بازم بهم ریخته بود
ممنون ::)))
اقا کار من خیلی گیره
منتظر جوابم………………………………..
سلام ، آقا حمید رضای عزیز
ایشالله که هیچوقت کارت گیر نباشه!!
من 15 ساله که دارم با اکسل کار میکنم و تا حالا سابقه نداشته که به همچین مشکلی بر بخورم !! دلایل زیادی ممکنه داشته باشه ، از ویروسی بودن کامپیوترت تا بد سکتور داشتن هارد و … !!
خودت بهتر از همه میتونی حدس بزنی که چی عامل اون میتونه باشه
دستکاری فایل یک نرم افزار با نرم افزارهای دیگه ، ممکنه کار رو خرابتر بکنه ، سعی کن از روشهای متعارف استفاده بکنی
موفق باشی – خانیکی
ممنون از جواب شما
ممکنه هم بخاطر ویروس و یا بدسکتور باشه
روش های متعارف مثل چی؟؟
من ویروس کشی کردم و هر راه حلی که میدونستم امتحان کردم الان دیگه نمیدونم واقعا چرا فایل همه چیزش بهم ریخته فونتاش قابل خوندن نیست زبان و لوکیشن سیستم رو هم فارسی کردم ولی باز درست نشد…نت پد++ هم جواب نداد
خواهش میکنم ، آقا حمید رضا
روشهای متعارف ، یعنی روشهایی که هر نرم افزار ، مثل اکسل ، برای بازکردن ، ذخیره کردن و یا بازیابی فایلهای خودشون از قبل پیش بینی و تعریف کردند
از دیگر مواردی که ممکنه باعث بهم ریختگی فایل بشه ، تغییر خودسرانه پسوند نام فایل و یا بازکردن فایلهای ذخیره شده با نسخه های جدید یک نرم افزار ، توسط نسخه های قبلی همان نرم افزار !!
آیا تمامی فایلهای اکسل شما بهم ریخته شده است؟ یا فقط تعدادی از فایلهای خاص؟
آیا از فایلهای فوق پشتیبان هم تهیه کرده بودید؟ در اینصورت ، فایلهای پشتیبان هم به هم ریخته هستند؟
اگر تمایل دارید ، یکی از فایلهای قدیمی را که کمتر دستکاری شده است ، اما اشکال آن کماکان باقیست برای من بفرستید تا از نزدیک بررسی کنم . برای ارسال فایل از طریق ایمیل ، روی عنوان این پیام کلیک نمایید
موفق باشید – خانیکی
0919-302-6452
مرسی از جوابتون
من خودم فکر میکنم که از ویروس باشه البته ویروس کشی کردم درست نشد….
یا اینکه فونت ها مشکل داشته باشه که باید با تبدیل به utf8 بوسیله نت پد ++ حل میشد….
تمامی فایلهایی که بهم ریخته یک ویروس با چند نام داشت یکی از اونها RecoveR بود ولی باقی فایل ها که در فولدر اونها این فایل ویروس شکل نبود سالم ماندند…
ایمیل شما معلوم نیست …. اگه امکان داره یک بار دیگه بفرستید یکی از فایل ها رو براتون بفرستم
آقا حمید رضا
روی عنوان این پیام “آموزش ماکرونویسی در اینجا” کلیک کن تا وبلاگم باز بشه
همه اطلاعات من ، آنجا هست
موفق باشی – خانیکی
0919-302-6452
مرسی….فایل رو براتون فرستادم
سلام ، آقا حمید رضا
مگر شما با اکسل 97 تا 2003 کار میکنید؟!!
فایل شما با پسوند XLS متعلق به این نسخه از اکسل می باشد!!
از طرفی ، اکثر پسوند نام فایلها در اکسل ، معمولاً با حروف کوچک نوشته میشود ، اما پسوند فایل شما با حروف بزرگ نوشته شده است!!
محتویات فایل نیز هیچ تناسبی با فایلهای اکسل ندارد ، گویا پسوند فایل نرم افزار دیگری را ، به پسوند اکسل تغییر نام داده اند!!
این شیطنت ها ، میتواند کار یک ویروس یا حتی یک فرد باشد!!
خودتان گفته بودید که ویروس فوق به پوشه های خاصی حمله میکند ، پس به راحتی میتوانید عملکرد آن را بررسی کنید
یک یا چند فایل سالم را به عنوان طعمه در پوشه های آلوده قرار دهید و نتیجه آن را به دقت بررسی کنید
تغییراتی که در حجم فایل ، پسوند نام فایل و محتویات فایل داده میشود را باهم مقایسه کنید
گمان نمیکنم فایلهای از دست رفته به راحتی قابل بازیابی باشند ، فقط بایستی با روشی ، از ادامه این تهاجم پیشگیری شود
نهایتاً تنها چاره کار ، ویروس کشی ، یا نصب مجدد ویندوز و مجموعه آفیس میتواند باشد . موفق باشید – خانیکی
0919-302-6452
مرسی از پیگیری شما…
همون طور که گفتید فایل مربوط به اکسل 2003 به قبل هستش ولی پسوندو نمی دونم چرا حروف بزرگ ذخیره شده..!!
درباره محتویات باید بگم که فایل اکسل بودن قبلن ولی الان که بهم ریختن اصلن قابل خوندن نیست…الان تونستم جلوی ویروسو بگیرم تا پخش نشه ولی میخام فایل های قبلی رو برگردونم چون خیلی مهم هستند….ولی انگار کاری نمیشه کرد…با تشکر از شما که وقت گذاشتین
خواهش میکنم ، آقا حمید رضا
اگه فقط فایلهای اکسل با فرمت 2003 دچار مشکل میشن ، با Save As فرمت آنها را به روز کن
موفق باشی – خانیکی
سلام فایل نوت پد من انگلیسی باز میشه اصلا روزای هفته رو نداره مثل نمونه عکسی که شما از نوت پد گذاشتین. مشکلش چیه؟؟
سلام ، آقای عظیمی
نمونه عکس بالا نوت پد نیست ، بلکه محیط ماکرونویسی در اکسل یا بعبارتی VBA است
با کلیک راست روی نام شیت و انتخاب گزینه View Code میتونی به اونجا بری
موفق باشی – خانیکی
0919-302-6452
سلام ، آقای حامد شرقی
من با ماکرونویسی تابعی نوشته ام که تاریخ میلادی رو میگیره و تاریخ شمسی رو برمیگردونه
شما برای اینکه بتونید ستونی ، دارای تاریخهای شمسی داشته باشید ، ابتدا بایستی ستونی با تاریخ میلادی ایجاد کنید و با کمک این تابع ، تاریخ شمسی متناظر اون رو بدست بیارید . در نهایت میتونید ، ستون تاریخ میلادی رو که لازم ندارید ، مخفی کنید
یک راه دیگه اینه که ، تاریخ شمسی رو بر اساس شماره ردیف جدولتون تنظیم و محاسبه کنید!!
برای دانلود کردن این تابع و نحوه استفاده از اون ، با کلیک کردن روی عنوان بالای این پاسخ ( آموزش ماکرونویسی در اینجا ) به وبلاگ من وارد بشید ، و به پست “دانلود نمونه های آموزشی” بروید و تابع “تبدیل تاریخ میلادی به شمسی” رو دانلود کنید
موفق باشید – خانیکی
0919-302-6452
سلام. خیلی عالیه. خیلی به کارم اومد. ولی یه اشکال کوچولو داره که اگه برطرف بشه اونی میشه که من می خوام.
اگه بشه در اختلاف دو تاریخ مشخص کنه که چند روزش در سال کبیسه بوده و چند روزش در سال عادی خیلی عالی می شه.
سلام علی جان
متاسفانه تابعی برای اینکار نداره علی جان
خیلی خوب و مفید بود ممنونم.موفق باشید
ممنون حسین جان. شما هم موفق باشید
اقا یاسین میشه به سوالم چندتا کامنت بالاتر نگاه بندازی؟؟؟
سلام حمیدرضا جان. کدوم سوال؟ اون رو که آقای خانیکی جواب دادن. منظورت همونه؟
اره جواب دادن ولی مشکلم حل نشد گفتم شاید شما راه حل دیگه ای بدونی
سوال دیگه اینکه چطور فقط در محدوده تاریخی که ما معین کردیم میشه تاریخ وارد کرد؟
ایا میشه از data validation استفاده کرد؟ با توجه به اینکه فقط تاریخ میلادی رو قبول میکنه
سلام
عالی بود
ولی برای من چرا تابع mahnameوdayweek ؟؟؟؟؟؟؟؟؟؟؟ این جوری نشون میده نتیجه فرمول رو؟
سلام اقا یاسین چندروزه نیست من بجاش جواب میدم
شما زبان سیستم رو از کنترل پنل قسمت region & local –> administrative –> change system local عوض کنی بذاری روی persian درست میشه
سلام
من میخام اکسل یه ستونی رو که تاریخ های هر سطر متفاوته رو بگیره و یه ماه مونده به اون تاریخ رنگ سطرم عوض بشه میتونین کمکم کنید ،لطفا؟
یعنی مثلا تاریخ انقضا منهای امروز بشه اگه کمتر از سی بود رنگشو عوض کنه
تاریخ ها شمسی هم باشه
سلام
به نظرمن اول اون سطری که تاریخ توش هست رو تبدیل به ستون کن …بعد یک ستون جدید برای تاریخ روز ایجاد کن با استفاده از فرمول ()shamsi= بعد با تابع Diff اختلافشو بدست بیار و در نهایت بوسیله conditional formatting میتونی اونهایی که کمتر از سی روز مونده رنگشو عوض کنی
با سلام
چطور میشه دستور Shamsi() بطور خودکار به روز شه.یعنی هربار که فایل باز می شه تاریخ روز رو بهم اعلام کنه نه تاریخ قبل رو.
سلام
از کلیدهای ترکیبی alt+cnrl+shift+f9 استفاده کن تاریخ اپدیت میشه
با سلام
بسیار عالی بود و تشکر از ماکروئی که نوشتید .
با تشکر از ماکرویی که دادید . یک فایل اکسلی دارم . میخواهم تاریخ وصول چکها را از تاریخ سررسید آنها کم کنم . تا بتونم روی دیرکرد مشتریان بررسی انجام بدهم . نتونستم از این ماکرو استفاده کنم . اگر ممکنه راهنمایی بفرمایید.
آقا یاسین
سلام ، من اینکارو انجام دادم و دقیقا” تاریخ رو بفارسی نشون میده اما علیرغم اینکه این فایل رو Add_Ins کردم و در اون قسمت تیک هم خورده اما در فایل جدیدی که ایجاد میکنم خونده نمیشه چرا؟ در ضمن تیک ماکرو رو هم در Add-ins فعال کردم .
ممنون میشم راهنمائی بفرمائید .
آقا یاسین
با سلام مجدد، یکی اینکه من تا هر فایل اکسلی را که میخوام باز کنم ابتدا همین فایل ماکرو شمسی باز میشه ثانیا” امروز که همون فایل ماکرو باز شد تاریخش آپدیت نشده و مربوط به همون روزای قبلیه ، لطفا” بفرمائید مشکل کجاست !!!
ممنونم
باسلام و خداقوت خدمت شما، هرچند مطالب خیلی عالیه ولی مشکل من هنوز حل نشده. من یه ستون تاریخ های متفاوت شمسی دارم که میخوام تاریخ شش ماه بعدش رو برام حساب کنه ولی تابعی ندیدم که اینکارو انجام بده میشه راهنمایی کنید لطفا؟؟؟؟
اگر از تابع روز استفاده کنم جور در نمیاد چون همه ماه ها تعداد روزشون یکی نیست
سلام بسیار ممنون از سایت مفیدتان.
سوالی داشتم ممنون میشم پاسخگو باشید.
میخواهم در سلول های یک ستون تاریخی را وارد کنم. و فرمولی بنویسم که اگر از هرکدام از آن تاریخ ها 15 روز بگذرد . ردیفی که آن سلول در آن قرار دارد رنگ متنشان یا رنگ پس زمینه تغییر کند.
چه باید بکنم؟ خواهش میکنم راهنمایی کنید.
آقا یاسین گل دست شما درد نکته بابت این مطلب واقعا عالیت. من فایل رو دانلود کردم . ولی مثل بعضی از دوستان مشکل نافرم باز شدن نوشته های فارسی رو داشتم. راه هایی هم که گفته بودی انجام دادم . بازهم درست نشد… ممنون میشم اگر کمکم کنی. حتی سعی کردم خودم فارسی بنویسم تو vba ولی نشد.
سلام
جناب مهندس من همه اون کارها رو انجام دادم ولی ،Diff رو حساب نمی کنه.
خیلی ممنون می شم راهنمایی بفرمایید
سلام . با اجازه مهندس گرامی آقا یاسین
مشکل اینه که در فرمول به جای “;” باید از “,” استفاده کنید که در راهنمایی اشتباه نوشتاری پیش اومده دوست من
یعنی واقعا ممنون … خیلی به کارم اومد …
قخوشحالم که به کارت اومده دوست من
عالی،واقعا عالی،این سایت کلا عالیه
مرسی دوست عزیز
سلام اگه تاریخ تولد کسی رو داشته باشیم در اکسل فرمولی وجود دارد که سن اون نفر رو نشون نشون بده ؟
سلام
بله وجود داره همین مطلب رو مجدد با دقت مطالعه کنید توابعش رو توضیح دادم کامل
salam man ba sumifs mikham tabei bnvisam k tarikhaye yek sotoono negah kone beyn tarike x ta y adade sotoone rooberoosho jam bezane
SUMIFS(P12:P19;Q12:Q19; “>= 1395/02/01″; Q12:Q19; ” <= 1395/02/31") in tabe
سلام نیلوفرجان.
مشکل فرمول شما اینه که بعد از مساوی ها فاصله گذاشتی. فاصله ها رو حذف کن درست میشه
سلام ممنون ولی بازم درست نشدن
تاریخم فارسی هستا
سپاس
ممنون احسان جان
سلام جناب اسماعیلپور
ممنون از معرفی تابع بسیار کاربردی تاریخ شمسی
من این تابع رو در یه سلول استفاده کردم
=shamsi()
ولی متاسفانه خودکار آپدیت نمیشه
یعنی مثلا دیروز 13950517 بوده و امروز فایل رو باز میکنی خودکار به 13950518 تبدیل نمیشه . راهی براش هست ؟
ریکلکیولیت و ریفرش و … رو امتحان کردم نشد.
خودم فکر میکنم اگه به جای فرمول =shamsi() از یه فرمول که تاریخ میلادی رو به شمسی تبدیل کنه استفاده کنیم شاید راه گشا باشه
=miladi_shamsi(today())
ولی تابع این پست فرمول تبدیل تاریخ میلادی به شمسی رو نداشت …
ممنون میشم برای این مساله راهنماییم کنین
تشکر
سلام دوست عزیز
کافیه در کد VBA خط زیر رو به ابتدای تابع shamsi() اضافه کنی:
Application.Volatile
تشکر. این کار رو انجام دادم اما بازهم نتیجه نداد. احتمالا من به درستی انجام ندادم. میشه شما زحمتش رو بکشید و فایل ویرایش شده رو بذارید تا هم من و هم دیگران استفاده کنیم؟
ممنون از شما، کارم راه افتاد
خواهش میکنم دوست من
سلام
با سپاس از اطلاعات مفیدتون ، من قصد دارم یک شمارنده واسه تاریخ تعریف کنم که وقتی 21 روز از تاریخ ارسال تجهیزاتم گذشت ردیف اون تجهیز رو واسم مشخص کنه . ممنون میشم راهنمایی کنید
سلام مینا جان
با استفاده از تابع diff و گرفتن اختلاف اون با تابع shamsi میتونید اینکار رو بکنید
بسیار عااالییییی
از شما سپاسگزارم که دانشتون رو به اشتراک میذارید
پیروز و سربلند باشید
ممنون از لطفت حامد جان
سلام جناب آقای اسماعیل پور عزیز
بنده از توابع ارائه شده استفاده کردم و یک DATA BASE سفارشات برای بخش تدارکاتمان آماده کردم.تو این DATA BASE تاریخ های مراحل مختلف سفارش ثبت میشه و با تابع DIFF هم زمان واقعی با زمان استاندارد برای هر فعالیت مقایسه میشه و اختلاف نشون داده میشه.متسفانه بعد از ورود اطلاعات 60 مورد سفارش(کمتر از یک ماه است که اطلاعات وارد میشه) فایل اکسل باز نمیشه.به نظر شما علت چیست؟
ممنون میشم راهنمایی کنید.
سلام یه جدول فایل اکسل که چند صفحه هست رو بخام به صورت پی دی اف یک صفحه ذخیره کنم میشه؟!
سلام بله میشه. save as pdf رو بزنید.
جناب اسماعیل پور ممکنه به من هم کمک کنید ؟
در خصوص بروزرسانی خودکار تاریخ شمسی موقع ورود به اکسل بود که راهش رو فرمودید اما من نتونستم عملی کنم.
میشه زحمت درج کد رو بکشید و کد کامل رو بدید
سلام. به چه مشکلی خوردید؟ یک خط بود تمامش که
سلام
من همه کارهایی که بالا توضیح دادیدو انجام دادم ولی همچنان نمیتونم تفاوت دوتا تاریخو بدست بیارم، وقتی به عنوان مثال مینویسم (13940114;13940107)Diff= ابتدا بجای جواب عدد صفر میگذاره و وقتی دوباره سلول و انتخاب و اینتر میکنم ?Name#. می شه لطفا راهنمایی کنید. تشکر
اخه به کد نویسی تسلط ندارم
وقتی این که گفتین رو اول شمسی اضافه میکنم ارور میده و میگه
invalid outside procedure
در واقع من میخوام وقتی کاربر فایل اکسل رو باز میکنه تاریخ به روز توی خونه مربوطه دیده بشه.
الان در حالت عادی تاریخ آخرین سیو نشون داده میشه. مثلا اگه 1/5/95 فایل رو ذخیره کرده باشم و امروز بازش کنم تاریخ سلول همون 1/5/95 هست. باید یه بار دابل کلیک کنم روی سلول و اینتر بزنم تا تاریخ بشه 28/5/95
اگه دقیقا و مبتدیانه بگید چیکار کنم خیلی خیلی کمک بزرگی کردید بهم . زیاد به کد نویسی تسلط ندارم .
آقا واقعاً ممنون؛ اینکه رایگان مطلبی در اختیار عموم میزارید نشانه دیدگاه خالصانه و بزرگمنشانه شما عزیزانه- مطالبتون بسیار مفید بودن مچکرم
سلام خسته نباشيد.
سايتتون واقعا عاليه…
من ميخوام دوتاريخ شمسي را از هم كم كنم به نحوي كه نتيجه تعداد ماه ها رو برگردونه. ميشه اين كارو كرد؟چطوري؟
سلام
دمتون گرم از این آموزش .
مرسی
آقاي اسماعيل پورخواهش ميكنم به سوال من جواب بديد خيلي نياز دارم
سلام
متشکرم. خیلی عالی بود
با سلام، من میخوام یک ستون رو که محتوی تاریخ شمسی روز های چند ماه هست رو به ترتیب روز مرتب کنم. اگر کسی میدونه چطور میشه اینکار رو انجام داد ممنون میشم بگه.
سلام
در یک ستون کمکی با استفاده از تابع right روزها رو جدا کنید و بعد بر اساس این ستون کمکی مرتب کنید
سلام ساعت جاري رو چجوري بذارم؟
حمید
سلام … تنها از فرمول ()Shamsi= به درستی عمل میکنه بقیه که میزنم این میگه #VALUE! …. علتش چیه … ؟!
با سلام من طبق روشی که شما گفین پیشرفتم ولی چطوری xlsm را داخل کادر save type قرار دهیم و هر گاه از اکسل بیرون میروم و دوباره اکسل را باز میکنم و =sh رامیزنم ان را نشان نمیدهد و اجرا هم نمیکند چرا ؟؟؟؟؟ کمکم کنید ممنون
با سلام
من توی محل کارم خیلی لازمه که سن اشخاص رو به سال و ماه روز داشته باشم چکارکنم لطفا کمک کنید
ع س
از تابع diff استفاده کنید کامنتها رو بخونید
سلام به شما مدیر سایت و شما خواننده ی محترم
یکی از پر کاربردترین تابع های اکسل همین تابع تاریخ شمسی هست.
برای راحتی کار با این توابع شما میتونید توابعی که لازم دارید رو بجای اسم انگلیسی با اسم فارسی فراخوانی کنید برای این منظور برید به ماژول1 و اسم تابع مورد نظر رو با سرچ پیدا کنید و بعد اسم تابع رو در هر جای اون تابع اومده به فارسی تغییر بدید و برای فراخوانی تابع در محیط اکسل تابع رو با حروف فارسی فراخوانی کنید!! (عملا دیگه نیازی نیست تغییر زبان بدید و انگلیسی کنید) برای من که تابع ()DAT= مورد استفاده بود dayweek که به فارسی روز هفته رو وارد میکرد برداشتم (لازم نداشتمش) و با تغییر اسم تابع و دستور داخل تابع به ()تا= خیلی کارم راحت شد.
مرسی بابت مطالب خوبتون
چرا کسی جواب منو نمیده؟؟؟؟؟؟ من طبق همین روشی که شما گفتین شمسی سازی را انجام دادم و اجرا هم شد ولی وقتی از فایل بیرون امدم و دوباره وارد فایل شدم توابع وجود داشت ولی نمیشد از انها استفاده کرد و هر وقت() SHAMSI=را میزنم صفر را نشان میدهد؟؟؟؟؟؟؟؟؟؟
سلام من وقتی از تابع shamsi() استفاده میکنم روز بعد تاریخ اپدیت نمیشود چرا؟؟؟؟؟؟؟؟؟ و بعضی وقتا تابع شمسی تاریخ دیروز را به جای امروز وارد میکند چرا
سلام. ممنون از مطلب عالی و مفیدتون.
یه سوالی داشتم اینکه اگه من بخوام تعداد روزهایی که بین دو تا تاریخ که با این فرمت نوشته شده (95/05/23) و در دو سلول گذاشتم رو بدست بیارم باید از چه تابعی استفاده کنم، چون تابع DIFF رو که استفاده کردم ارور داد. لازمه فرمت تاریخ سیستم رو تغییر بدم؟ یا اینکه کلا فرمت تاریخ نویسی رو در اکسل تغییر بدم. ممنون میشم اگه جواب بدین.
خیلی ممنون از شما.
خیلی بهره بردم. خسته نباشید
فقط کامنتهای فارسی را وقتی وارد ماژول اکسل 2013 میکنم همشون به شکل علامت سوال درمیان.
سلام .ممنون از مطلب مفیدتون
یه سوال دارم.چجور میتونم اختلاف دو سلول را که محتوای آنها تاریخ شمسیه که به صورت دستی وارد شده، حساب کنم؟
بسیار عالی بود
کار من رو که خیلی راحت کرد
ممنونم از شما
ممنون از نظر لطفت مصطفی جان
سلام
واقعا از مطالعه این وبسایت لذت بردم ، کاربردی و سهل الوصول …
من یک سوال دارم ممنون میشم راهنماییم کنید :
آیا برای محاسبه دیرکرد پرداخت مشتریان ( دیرکرد پرداخت چک ) میشه تابعی تعریف کرد ؟
مثلا اگر تاریخ چک از تاریخ صدور فاکتور بیشتر از 100 روز شد ، براش بتونم بر اساس یه ضریب دیرکرد پرداخت حساب کنم .
سپاس
سلام مریم خانوم
بله میشه. کافیه ما با استفاده از تابع if نتیجه حاصل از تابع diff رو چک کنید و در صورتی که بیشتر از 100 بود محاسبات مدنظرتون رو انجام بدید
من با تابع Diff اختلاف تاریخ امروز با یه تاریخ دیگه رو حساب میکنم.
اما حاصل هر روز آپدیت نمیشه.مصلا اگه اختلاف دیروز عدد 10 بوده، امروز پس از گذشت 1 روز، باید اختلاف بشه 9.اما این اتفاق نمیفته
اگه کسی میتونه کمک کنه
یا به عبارتی تابع shamsi() آپدیت نمیشه
سلام
قبلا هم در این خصوص توضیح داده بودم دوست عزیز
اگر میخواید تابع شما خودکار به روز بشه کافیه عبارت:
Application.Volatile
رو به ابتدای تابع Shamsi() کد خودتون (کد داخل ماژول نه فرمول) اضافه کنید. اما یادتون باشه با اینکار هر بار ک تغییری در شیتتون بدید تابع شمسی دوباره محاسبه میشه و این باعث میشه پردازش فایل شما بیشتر بشه
این کارو کردم ولی بازم آپدیت نمیشه
مشکلم حل شد.واقعا ممنونم جناب
خداروشکر که مشکلتون حل شد
سلام. من كل اين مراحل رو اجرا كردم وانجام شد.
ولي در آخر وقتي =sh مي زنم و اينتر
مي زنم…ارور #name مي ده… مشكل از كجاست؟
سلام
وقتی =sh میزنید نباید اینتر بزنید باید گزینه shamsi رو انتخاب کنید.
سلام
من یه فایل اکسل دارم ستون تاریخ جای ماه و روز که بینشون اسلش/ است عوض شده چطور میتونم درستش کنم.
به نام خدا
با سلام محضر برادر و دوست عزیز استاد گرانقدر جناب اسماعیل پور
اما بعد، با تشکر از حوصله در پاسخگویی به سوالات مطرح شده از سوی مشتاقان فراگیری اکسل
من که واقعا استفاده می برم.
ارادتمند شما حامد
سلام.
من وقتی notepad رو باز می کنم هم فارسی ها روو به زبان دیگه ایی نشون میده که قابل خوندن نیست.
چه کنم؟
سلام وقتی دستور shamsi= رو میزنم تاریخ بصورت 13950820 نشون میده و بینشون / نمی ذاره
سلام
من میخواستم فرمول الارم در اکسل رو اگه میشه برای تاریخ ببنویسید
ممنون میشم
سلام و خسته نباشید
آقا تابع AddDay مشکل داره نظرات دیگران رو هم خوندم چند نفر دیگر از دوستان هم مشکل داشتن. همه توابع به درستی کار می کنن ولی این تابع فقط مشکل داره و وقتی عددی رو به تاریخ مورد نظر بعد از سمیکالن اضافه می کنم ارور میده.
لطفا راهنمایی بفرمایید
با تشکر
با سلام ، قبل از هر چیز از مطالب بسیار کاربردی سایتتون تشکر میکنم.
یه سوال داشتم: در اکسل با کلیک راست روی نام Sheet برای انتخاب view code، این گزینه خاموشه! یعنی من اصلن نمیتونم انتخابش کنم.( قسمت ماکرو هم تو تنظیمات فعاله) مشکل از کجاست؟
خیلی ممنون
سلام
ممنون از مطلب کارآمدتون. کدوم آموزشگاه اکسل حرفه ای در تهران رو پیشنهاد می کنید؟
با سلام خدمت همه بزرگواران
ی سوال داشتم: میخواستم تاریخ اعتبار یه سری مدارک رو در اکسل ثبت کنم و میخوام از طریق فرمول نویسی بیاد تاریخ درج شده رو با تاریخ روز مقایسه کنه و بهم آلارم بده
میشه کمکم کنید؟؟
سلام
مطلبتون عالی و کاربردی بود
ممنون :)))
همه مطالب عالی بود. تشکر و خسته نباشید
فقط مثال previouse mah اشتباه تایپی داره .
اگر میشد اختلاف روز ماه سال رو هم به تفکیک میداد عالی میشد. یعنی دقیقا لنگ همین مطلبم.
در ضمن اگه گروهی در تلگرام دارید ممنون میشم منم ادد کنید. 09214312663
سلام خسته نباشید خیلی ممنونم از سایت عالیتون
فقط چرا من همه مراحل رو درست طبق دستور انجام میدم ولی وقتی اکسل رو میبندم و یه فایل اکسل باز میکنم تمامی فرمول شمسی میپره ؟؟؟ صد بار هم چک کردم درست بود؟
با سلام
آيا ميشه در اكسل فرمولي بكار برد تا با وارد كردن تاريخ استخدام فردي در يك سلول آن سلول يا سلول كناري آن سالهاي گذشته خدمتي آن فرد را نشان دهد مثلا فردي در سال 1390/10/11 استخدام شده و خود اكسل به صورت خودكار در سلول كناري عدد 5 سال نمايش دهد كه اين فرد از اين تاريخ تا 1395/10/11 (5 )سال خدمت كرده است
سلام
خسته نباشید ممنون بابت مطالب آموزشی
من یه سوال داشتم ورژن که آموزش میدید چنده چون من 2013 کار میکنم اکثر عنوانهایی که میگیدو پیدا نمیکنم ممنون
سلام خدمت دوستان اگر هنوز بعضیا مشکل ؟ در VBA دارن میتونن وارد این قسمت در صفحه VBA بشن
TOOLS<OPTION
تب EDITOR FORMAT رو انتخاب کنید بعد تو قسمت FONT یه فنت فارسی( مثلا B NAZANIN )انتخاب کنید بعد OK حالا نوشته رو کپی کنید
با سلام خدمت همه دوستان عزیزم خصوصا مدیریت محترم.
سوالی که من داشتم در مورد کم کردن دوتاریخ از هم هستش(به صورت شمارش معکوس روز ،ساعت و دقیقه) که این عملیات را در قالب نمودارpieبه ما نشان بده.برای نشون دادن مدت زمان باقی مانده برای اتمام پروژه لازم دارم.
اگه کسی بتونه راهنماییم کنه ممنون میشم
با سلام من تمام مراحل را همان طوری که شما گفته بودین رفتم و توابع shamsi , dat . … بود ولی موقع کار کردن و استفاده#name? را نشان میده چرا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با سلام و خسته نباشید
میشه برنامه ایی در فایل درج کرد که شماره هفته رو هم بدهد؟
سلام من دو تاریخ شمسی رو میخوام از هم کم کنم نمیشه باید چکار کنم؟
ازتابع diffاستفاده کنین
سلام من فایل text رو دانلود کردم ولی چون utf-8 نیست همه نوشته هاش به هم ریخته به کاراکترهای ناخوانا تبدیل شده است. میشه فایلش رو مجدد آپلود کنید و فرمت صحیح
با سلام من طبق روش گفته شده کار کردم و لی هر وقت توابع را میزنم علامتname # را نشون میده چرا خواهش میکنم کمکم کنید؟؟؟؟؟؟؟؟؟؟
علی
01.22.2017 در 4:22 ب.ظ
با سلام من طبق روش گفته شده کار کردم و لی هر وقت توابع را میزنم علامتname # را نشون میده چرا خواهش میکنم کمکم کنید؟؟؟؟؟؟؟؟؟؟
سلام
من میخوام یه تاریخ شمسی مثل 1395/02/05 با همین فرمت رو توی اکسل با یه عددی جمع کنم. مثل 7 که جواب بشه 1395/02/12 آیا امکانش هست؟ بی زحمت جوابتونو برام ایمیل کنید
ممنونم
مثال: (7;13940114)AddDay= نتیجه: 13940121
بعد از تابع =make_date(13940121) استفاده کنید
علی جان من عین این دستور رو زدم ولی کار نکرد
خطا میده
باسلام و تشکر درمورد نشان دادن سال کبیسه فرمول بین تمامی سالها هر چهار سال یک بار در نظر میگیره بجز بین سال های ۱۳۷۱ تا ۱۳۷۵ ایا این یک خطای برنامه نویسی محسوب نمیشه
باسلام من مشکل مرتب سازی تاریخ تولد دارم مثلا به جای 36/2/18باید بزنم 1336/02/18تعداد این مرتب سازی هم زیاده ضمن اینکه با اکسلم زیاد اشنا نیستم.ممنون میشم راهنمایی کنید
سلام مهندس اسماعیل پور
بسیار مفید بود . ممنموم
بسیار عالی
ممنون از شما
فقط با توجه به اینکه توابع نمیتوانند تاریخی غیر از تاریخ جاری رو به شمسی تبدیل کنند اگر چند تغییر بدین این کار انجام میشه و فقط کافیه بنویسید
=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
سلام دوستان
دستورadddayتو اکسل من درست کار نمیکنه
عین دستور نوشته شده رو مینویسم ولی خطا میده
با عرض سلام
چگونه میشود تاریخ شمسی را در اکسل از همدیگر کسر نمود وحاصل آن تعداد روز اعلام گرددمثلا
دریک سلول تاریخ اعتبار گواهی تا تاریخ1396/02/31 وجود دارد که اگر از تاریخ 1395/12/30 کسر شود 62 روز اعتبار گواهی را اعلام نماید(در صورت مقدور تاریخ روز از سیستم اخذ شود وبه صورت دستی وارد نگردد)
ممنون
سلام وقتتون به خیر.
ایا امکان هست تاریخی که به صورت ۱۳۹۵/۰۲/۱۴را به صورت ۱۳۹۵۰۲۱۴ نوشت ؟در صورت خیر. چگونه می توان دو تاریخ ۱۳۹۵/۰۱/۱۵ از تاریخ ۱۳۹۴/۱۲/۱۲ کسر کرد. ممنون می شم پاسخ بدید.
سلام مهندس جان
خیلی از لطفت ممنون
فایل را با نوت پد باز کردم و تمام نوشته ها و توابع را در module کپی کردم و پنجره هارا بستم و با xlsmآنرا save as کردم و فایل اکسل را باز کردم و توابه مثلا shamsi= را تایپ کردم علامت name را نشان میدهد
ممنون میشم راهنمائی فرمائید
3پاس فراوان
سلام
من میخوام امار شرکتم رو اکسل وارد کنم وقتی میزنم به طور مثال 95/1/1 تبدیل میشه به1995/1/1 من میخوام تبدیل بشه به 1395/1/1 لطفا راهنمایی کنید با تشکر
سلام
یک فایل اکسل که تاریخ های شمسی داخلش هست رو وقتی می خوام اختلاف دو تاریخ رو بدست بیارم داخل سلولی که باید اختلاف دو تاریخ باشه #value! رو نشون میده ، و وقتی همون تاریخ رو روی سلول خودش تایپ میکنم درست میشه و جواب میده .
ضمن اینکه وقتی روی سلول تاریخ های موجود کلیلک میکنم رد سمت راست نوار فرمول نشون میده و وقتی تایپ میکنم میاد سمت چپ .
ممنون میشم کمک کنید .
با تشکر لطفا نحوه محاسبه تفاضل تاریخ 1394/01/12 و 1395/08/30 چگونه بدست میآید.
از سایت خوبتون سپاسگذارم.
سلام
لینگ دانلود ماکرو رو پیداا نکردم
لطفا راهنمایی بفرمایید
با سلام
اگه بخواهیم بگیم که هر تاریخی که این ردیف یا این سلول پر شد رو در ی سلول دیگه به ما نشون بده چیکار باید بکنیم
با تشکر از سایت و مطالب بسیار بسیار مفید
سلام
من به شدت به این مورد احتیاج دارم و همه ی مراحلی که گفتید رو انجام دادم ولی تابع شمسی رو بهم نشون نمیده 🙁
چی کار کتم؟
دستور اضافه کردن تعدادی روز به تاریخ اجرا نمیشود
لطفا راهنمایی کنید
ممنون ، مشکلم حل شد ، قسمت format cells مشکل داشت ، باید روی حالت text میبود.
سلام و وقت بخیر
بابت توضیحات بی نهایت سپاسگزاریم از شما… خیلی کامل بود.
یه سوال::: وقتی تبدیل انجام میشود بین تاریخ ها اسلش نمیاد چطوری میشه اینو اضافه کرد؟؟؟؟؟
و یه خواهش از شما دارم که بگید برای هر بار استفاده از ماکرو برای موارد مختلف این فایل ها را چه گونه سرج کنیم … یعنی با چه نامی…
به عبارت دیگر من همیشه در کار با ماکرو مشکل دارم چرا که فایل را ندارم
نمیدونم متوجه سوالم شدید یا نه؟؟؟؟؟؟؟؟؟
امکان داره مثال های دیگری را زده و فایل های دیگری را قرار دهید؟؟؟
سپاس
سلام و ممنون از آموزشتون
تو نظرات خواندم که بچه ها گفتند تاریخ اتومات بروز میشه ولی برای من اتومات بروز نمیشه یعنی اکسل رو می بندم و باز میکنم به تاریخ جدید بروز نمیشه فقط هر وقت دستور رو فراخوانی میکنم تاریخ جدید رو نشان می دهد.
لطفا راهنماییم کنید.office2010
سلام وقتتون بخیر
من میخوام یه فرمولی بنویسم که یه تاریخی رو وارد میکنیم خودش 7 روز بعد و 28 روز بعد و خودش حساب کنه
خواهش میکنم راهنماييم کنید
سلام، وقت بخیر
منم مثل خیلی از دوستان این مشکل رو دارم که وقتی از فایل اکسلم خارج میشم توابع کار نمیکنن.بعد که میرم تو قسمت ماژول 1 میبینم کدهایی که کپی کردم سرجاشون وجود دارند ولی وقتی مینویسم ()sh= تابع رونمیاره.به همون روش که فرمودید ذخیره کردم فایل اکسلمو.
چیکار کنم.البته متن فارسی توابع هم در notepad و wordpad یه جور عجیب غریبه
سلام خیلی خوب بود فقط میشه بین روز ماه سال علامتی گذاشت مثلا / ممنون
با سلام
چطور میتونم از یک تاریخ چند ماه رو کم کنم ممنون
با سلام
خیلی خوب بود ، بسیار سپاسگزارم
سلام وقت بخیر
من به یک تابع نیازدارم که تاریخ شمسب رو بگیره و شماره هفته ماه مندرج در اون تاریخ رو بده، اگر امکان داره من رو راهنمایی کنید
سلام.من مشکلی که دارم وقتی مثلا میزنم 28/12/1396
و اونو اتو فیل میکنم میشه 29/12/96 بعد30/12/96 بعد31/12/96 بعد32/12/96 همینطور الی اخر تشخیص نمیده که وارد ماه و سال بعدی شدیم که بشه1/1/97 البته در تاریخ میلادی این مشکل نیست ممنون میشم کمک کنید.
سلام
بسیار خوب و کاربردی است
سپاسگذارم
سلام
من تاریخ رو به صورت 96/09/20 در سلول (h3) وارد اکسل 2010 میکنم بعد مثلا تاریخ 96/09/1 در سلول (i3) رو وارد میکنم بعد مثلا فرمول =h3-i3 رو میزنم ولی ارور میده و اختلاف دو تاریخ رو بهم نمیده باید تاریخ رو به شکل 960920 وارد کنم تا اختلاف رو بهم بده راه حلی هست که اختلاف رو با تاریخ اسلش (/)دار بهم بده
*** بسیار بسیار عالی بود //// یه دنیا تشکر از زحمات شما عزیز ****
سلام فوق العاده بود ممنون
سلام
خیلی عالی بود دستتون درد نکنه
سلام
خیلی عالی بود.فقط من یک فایل vba با excel 2010 نوشتم .ولی وقتی اون فایل را در سیستم دیگه ای با excel 2016کپی میکنم در Function Shamsi بع عبارت date در Dif = DateDiff(“d”, Miladi_mabna, Date) ارور میگیره .لطفا راهنماییم کنید.
سلام
خسته نباشین
از یک تاریخ شمسی چند ماه رو چگونه کم کنیم ؟
سلام
برای اینکار میتونید از تابع SubtractDay استفاده کنید.
سلام. با تشکر و عرض پوزش؛ پیشنهاد می گردد در این ماژول، قسمت «ماه قبل» را به شرح ذیل اصلاح کنید تا تاریخ به صورت کامل و صحیح به یک ماه قبل برگردد:
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
Function PreviousMah(ByVal F_Date As Long) As Long
If (F_Date Mod 10000) = 1 Then
PreviousMah = (Int(F_Date / 10000) – 1) * 10000 + 12
Else
PreviousMah = F_Date – 100
End If
End Function
__________________________________________
همچنین من برای خودم فرمول های «فصل قبل» و «سال قبل» را نیز به شرح زیر به ماژول اضافه کردم:
__________
Function PreviousFasl(ByVal F_Date As Long) As Long
‘اين تابع سه ماه از تاريخ موردنظر کم ميکند
If (F_Date Mod 10000) = 1 Then
PreviousFasl = (Int(F_Date / 10000) – 3) * 10000 + 12
Else
PreviousFasl = F_Date – 300
End If
End Function
________________________
Function PreviousSal(ByVal F_Date As Long) As Long
‘اين تابع يک سال از تاريخ موردنظر کم ميکند
PreviousSal = (F_Date – 10000)
End Function
سلام خسته نباشید
برای ایجاد یک تقویم باز شونده شمسی در اکسل باید چکار کرد؟
یعنی بشه تاریخ رو انتخاب کرد
سلام و خسته نباشید
تاریخ بروز نمیشه
چیکار باید کرد
سلام .
من با استفاده از تابع m2s(today()) در یک سلول تاریخ روز گذاشتم.ولی هر وقت سند باز میکنم تاریخ صدور ببینم تاریخ تغییر میکنه به تاریخ روز و نمی دونم درج صدور فاکتور چه روزی بوده.
لطفا راهنمایی بفرمایید.
سلام
آقای یاسین اسماعیل پور فایل متنی به اشتباه با ANSI واسه بار اول ذخیره شده که کلمات را درست نشون نمیده .
سلام. درست میفرمایید اصلاح شد
سلام .چگونه اختلاف دوتاریخ شمسی راپیداکنم.که بین شان ممیزدارند
با سلام و تشکر از شما مطلب مفید و کاربردی بود. ممنون از توضیحات خوبتون
سلام به شما استاد بزرگوار که بی چشم داشت مطالب ناب را در اختیار دانشجویان قرار می دهید ، خدا قوت .
استاد پیشنهادی که داشتم در صورت امکان آموزش ماژول تاریخ شمسی و این که اصلا چه جوری پیاده سازی شده است را آموزش بفرمایید . حتی اگر مبلغی را هم بفرمایید واقعا منت گذاشته اید بر دانشجویان.
متشکرم
سلام وقت بخیر
من از ابتدا فکر کنم مشکل دارم
میخوام برم داخل view code که برم وارد تنظیمات بشم این دکمه برام غیر فعاله!!
امکانش هست دلیلش رو بگید لطفا؟؟؟
سلام من فایلی دارم که تاریخ ها از فروردین به اسفند مرتب شده ولی من میخوام از اسفند به فروردین مرتب بشه، چیکار باید بکنم؟
سلام. سورتتون رو از ascending به descending تغییر بدید
سلام بسیار ممنون از اموزشتون
من وقتی فایل رو ذخیره میکنم برای اولین اجرا درست جواب میده
ولی وقتی فایل روز دیگه باز میشه تاریخ بروز نمیشه و تاریخ گذشته رو نشون میده
دست شما درد نکنه
اجرتون با خدا
سلام
تاریخ های شمسی در یکی از فایل های Excel به جای راست به چپ بودن چپ به راست هست تعداد موارد هم خیلی بالاست و سورت کردن تاریخ ها رو با مشکل مواجه میکنه و بر اساس روز سورت میکنه به جای این که بر اساس سال سورت کنه. چگونه این تاریخ رو میشه با یه دستور چپ به راست کرد.
ممنون
با سلام
من میخوام یه4000 نفره تاریخ به صورت زیر نوشته شده به صورت تاریخ تولد بنویسم چکار باید انجام بدم ممنون میشم سریع کمکم کنید .تشکر
4000 نفره به صورت زیر
53 سال و 2 ماه و 3 روز
به تولد شمسی تبدیل شود
لطفا ایمیل کنید
سلام دوست عزیز
با تشکر تابع AddDay را اجرا نمی کند لطفا راهنمایی کنید
سلام علت رایافتمرتفاوت کاراکتر در کیبورد بود سپاس
خواهش میکنم. خداروشکر که مشلتون حل شد
سلام سینا جان. فقط مشکلتون با تابع addDay هست یا بقیه توابع هم کار نمیکنند؟
سلام دوست عزیز من این کارو کردم خیلی خوب کار میکنه و تاریخ هر روز رو در کنار ستون هایی که نیازه مینویسه . اما مشکل اینه وقتی در سیستم های دیگه فایل ران میشه همه تاریخ ها رو به اون روزی که در اون سیستم ران شده تبدیل میکنه. لطفا راهنمایی کنید.
سلامت باشین
اگه شما در فرمول تون مستقیما” و یا غیر مستقیم از تابع Today استفاده کرده باشید ، قطعا” با این مشکل مواجه میشید
برای حل این مشکل دوتا راه حل وجود داره :
اول : خودتون بصورت دستی تاریخ رو در سلول مربوطه تایپ کنید
دوم : ماکرویی نوشته بشه که بصورت خودکار ، کار فوق رو انجام بده
موفق باشین
سلام جناب آقای اسماعیل پور عزیز
ضمن تشکر از برنامه کاریردی ارائه شده .علیرغم اینکه فایل برنامه را با پسوند
(Excel Macro-Enabled Workbook (*.xlsm ذخیره کرده ام . برنامه فقط در صفحه اولیه کاربرد داره وبا بستن اون .برنامه در صفحات جدید قابل استفاده نیست [توضیحا در اکسل 2010 مورد استفاده من در باکس انتخاب پسوند فقط Excel Macro-Enabled Workbook قید شده و(*.xlsm) موجود نمیباشد].
لطفا راهنمائی فرمایید
با تشکر
با سلام بر سرکار خانم توسلی
جناب اسماعیل پور خیلی زحمت میکشن ، لطف شون به همه زیاده و وقت شون کم !
اگر توابع بالا توی یکی از شیت ها کار میکنه ، پس خیالتون راحت باشه که فرمت فایل تون درسته
فقط تنها اشتباهی که کردید ، بجای اینکه ماژول جدید ایجاد کنید و برنامه رو داخل اون کپی کنید ، در قسمت مربوط به فقط یک شیت کپی کرده اید !
اگر بازم مشکل تون حل نشد ، فایل تون رو برام بفرستید تا بررسیش کنم
موفق باشید – خانیکی
( با کلیک بر روی نام کاملم در بالا میتونید به من دسترسی داشته باشید )
سلام ممنون و متشکر
سلام پرویز جان. خواهش میکنم
سلام روز بخیر
تابع next mah درست کار نمیکنه
باسلام و تشکر
اگه شماره هفته رو هم در فرمول اضافه کنید خیلی عالی میشه مثلن تاریخ ۱۳۹۹۰۵۰۶ رو بدیم خروجی بده ۱۹ یعنی هفته نوزدهم سال .
با سلام و عرض ادب و احترام
تشکر میکنم از محبتی که فرمودید و اطلاعات خوبی رو عرضه کردید.
من در اکسل فایلی رو دارم که در اون جدولی با تاریخ هایی به فاصله یکماه قرار گرفته . چگونه میتوانم سلولهایی که مربوط به تاریخ است رو از میلادی به شمسی تبدیل کنم مثلا تاریخ 1399/5/25 به 1999/5/25 تبدیل نشه و همینطور پشت سر هم تاریخها به شمسی باشه یعنی سال 1400 ؛ 1400 باشه نه 2000 . همینطور که میدانید ماههای میلادی هم از لحاظ تعداد روز و هم از جایگیری در فصلها متفاوت هست . ممنون میشم اگر یاری فرمایید .
فایلی که اشاره کردم مربوط به یک قرض الحسنه ساده در جمع محلی ، و هیئتی است. حتماً اجر اخروی نیز دارد.
سلام وقت بخیر
ببخشید من فایل تاریخ و روزهای هفته رو میخواستم برای ماکرو نویسی
چطوری تهیه کنم
خیلی ممنون
سلام آقا هادی
شما می توانید با کلیک بر روی نام کامل من در بالا ، به وبلاگ من بروید
اولین فایلی که برای دانلود گذاشتم “توابع کاربردی تاریخ شمسی در اکسل” هست
که این توابع رو با ماکرونویسی در اکسل ایجاد کرده ام
و شما می تونید به راحتی به ماکروی نوشته شده دسترسی داشته باشید و ازش الگو بگیرید
و برای استفاده از اون توابع ، اون ماکرو رو در فایل های اکسل خودتون کپی کنید
موفق باشید – خانیکی
با سلام و تشکر
لطفا تاریخ هایی که بصورت 99/05/02 هستند و عد 13 در ابتدای سال ندارند را هم کاش در فرمت برنامه تان داشتید که فرمول های آنها را هم بتوانیم استفاده کنیم
سلام خسته نباشید
خیلی از این توابع ارور value میدن میشه راهنمایی کنید باید چیکار کنم
من فقط از دو تابع Shamsi وdat تونستم استفاده کنم که داخل تابع datهم مجور شدم روز هفته رو حذف کنم چون نمایش نمیداد و به جاش “؟”میذاشت
ممنون
با سلام و عرض خسته نباشید بابت آموزش های قشنگتون.
من یه فایل رو با اکسل 2007 شمسی ساز رو طبق آموزش شما گذاشتم و قبل از save as توی منوی کشویی می آورد اما به محض اینکه روی منوی مدنظر شما save as کردم یه پیام error به من داد و فایل رو بدون شمس ساز به من تحویل داد. پیام error رو هم پایین براتون مینویسم ممنون میشم مشکل منو حل بفرمایید.
privacy warning: this document contains macros activex controls xml expansion pack in for mation or web components
سلام آقا محسن
چون اون فایل دارای ماکرونویسی بوده
و اگه اون فایل ناشناخته و غیر ایمن باشه
این احتمال وجود داره که بتونه برای سیستم تون مشکل ایجاد کنه
جهت اطمینان از امنیت اون فایل ، به شما اخطار میده
و اگه شما ایمن بودن اون رو تایید نکنین ، ماکرو رو حذف میکنه
که احتمالا” شما اون رو تایید نکردین و حذف شده
دوباره فایل رو Save Az کنید ، اما ایمن بودنش رو تایید کنین تا مشکل تون حل بشه
اگه بازم مشکلی داشتین ، روی نام کاملم در بالا کلیک کنین
موفق باشین – خانیکی
سلام و وقت بخیر :
ممنون بابت اطلاعات مفیدتون من یه فایل تاریخ داشتم که یا استفاده ار کد نویسی شما بین تاریخ ها / انداختم ولی الان نمیتونم تاریخ شمسی رو به میلادی تبدیل کنم لطفا راهکار ارائه فرمایید
سلام به شما
یک سری هم به وبلاگ بنده بزنید
در آنجا فایلی را برای دانلود گذاشته ام که شامل “توابع کاربردی تاریخ شمسی” است
که این توابع با ماکرو نویسی تهیه شده اند
از این ماکرو نیز می توانید در برنامه های خودتان استفاده کنید
امیدوارم که برایتان مفید باشد
در صورت بروز مشکل یا پرسش و ابهامی با کلیک روی نام کامل من در بالا ، با من تماس بگیرید
موفق باشید – خانیکی
سلام
محوه وارد کردن این تابع به افیس 2016 رو هم میشه توضیح بدید
این قسمت رو (((با انتخاب این گزینه پنجره Visual Basic for Applications باز میشه که از اون میتونیم برای کدنویسی VBA در اکسل استفاده کنیم. در اینجا میتونیم کدهای مربوط به کار با تاریخ شمسی در اکسل رو به فایل اکسل خودمون اضافه کنیم.
برای اینکار ابتدا مثل تصویر زیر از منوی Insert گزینه Module رو انتخاب کنید.))) نمیتونم پیدا کنم که کد رو وارد کنم
ممنون
سلام محمد جان
روی نام شیت مثلا” Sheet1 کلیک راست کن
بعدش از منوی باز شده گزینه ی View Code رو انتخاب کن
بایستی محیط VBA برات باز بشه
و بتونی ادامه مراحل رو انجام بدی
بازم اگه به مشکلی خوردی ، با من تماس بگیر تا راهنماییت کنم
موفق باشی – خانیکی
سلام و عرض خسته نباشید
من می خواستم تو یه سلول تاریخ تولدم رو بنویسم و در سلول بعدی خود اکسل سن منو محاسبه کنه .نمی دونم چه تابعی بنویسم راهنماییم کنید
سلام واحترامات!
ماه فعلی را چگونه پیداکنیم که ماه فعلی چی ماه است.
سلام
من میخوام برای هر خانه یک تاریخ اختصاص بدم که وقتی بیش از دو روز به اون تاریخ مونده متن تاریخ اون خانه سبز نشون بده ، از دو روز تا تاریخ ثبت شده زرد و وقتی از اون تاریخ گذشت، متن تاریخ رو قرمز نشون بده.
میشه راهنماییم کنید ممنون میشم.
سلام من اقیس2010 دارم
الان مراحل نصب رو انجام دادم فقط روی فایل اکسلی که ماکرو هست کار میکنه روی هیچ اکسل دیگه ای کار نمیکنه چکارکنم
همچنین فایل با فرمت ماکرو هست
سلام امیر جان. با چه پیغام خطایی مواجه میشید؟ ممکنه فایلهایی که میخواید باز کنید مربوط به نسخه های جدیدتر اکسل باشه
سلام وقت بخیر مهندس
آیا در محاسبات افزونه سال های کبیسه لحاظ میشه؟!
تشکر از زحمات شما
سلام وقت بخیر
من میخواستم مثلا 2 ماه و 13 روز را به تاریه 01/02/1399 اضافه کنم لطفا راهنمایی بفرمایید فرمولش در اکسل چیست؟