
لینک کوتاه : https://magicfile.ir/?p=4642
دانلود برنامه کد VBA برای ایجاد برنامه شیفت کاری به صورت شمسی در اکسل
اگر به دنبال سیستمی حرفهای برای برنامهریزی شیفت کاری کارکنان در اکسل هستید که با تاریخ شمسی کار کند، این کد ماکرو دقیقاً همان چیزی است که نیاز دارید. این کد با طراحی زیبا، امکانات هوشمند و پشتیبانی از تقویم شمسی، یک جدول برنامه شیفت با امکانات کامل ایجاد میکند.
معرفی ماکرو برنامهریزی شیفت کاری پیشرفته با تاریخ شمسی در اکسل VBA
کدی که در این پست معرفی میشود، یک ماکروی حرفهای در محیط Excel VBA است که بهصورت کاملاً خودکار، یک برنامه شیفت کاری برای کارکنان ایجاد میکند. این ماکرو بهویژه برای سازمانها، شرکتها، بیمارستانها یا هر مجموعهای که نیاز به زمانبندی روزانه شیفت کارکنان دارند بسیار کاربردی است. قابلیت استفاده از تاریخ شمسی، طراحی زیبا، گزارشگیری، فرمولهای آماری و رنگبندی پویا، این ابزار را به یک سیستم جامع برای مدیریت شیفتها تبدیل کرده است.
فرآیند دریافت اطلاعات اولیه و ایجاد ساختار اصلی شیت
ابتدا کاربر باید تعداد کارکنان، نام هر کارمند، تاریخ شروع شیفت بهصورت شمسی و تعداد روزهای برنامهریزی را وارد کند. سپس تاریخ شمسی توسط تابع ShamsiToMiladi
به میلادی تبدیل میشود تا قابلیت محاسبه زمان داشته باشد. یک شیت جدید با نام "برنامه شیفت" ساخته میشود و اطلاعات کارکنان به همراه عنوان اصلی در بالای شیت درج میگردند. تاریخ هر روز با فرمت شمسی در ردیف بالا ظاهر میشود و ستونهای بعدی برای ثبت شیفتهای روزانه آماده میشوند.
لیست کشویی انتخاب شیفت و رنگبندی خودکار
در ادامه، برای هر سلول مربوط به شیفتهای روزانه، لیست کشوییای حاوی چهار گزینه "صبح"، "عصر"، "شب" و "مرخصی" تعریف میشود. بهصورت پیشفرض همه سلولها با مقدار "مرخصی" پر میشوند تا کاربر راحتتر دادهها را اصلاح کند. این سلولها بهصورت خودکار براساس نوع شیفت رنگبندی میشوند؛ برای مثال، "صبح" به رنگ سبز، "عصر" زرد، "شب" آبی و "مرخصی" قرمز رنگ میشود. این ویژگی به افزایش خوانایی و تشخیص سریع نوع شیفت کمک میکند.
محاسبه آمار و گزارشگیری خودکار از شیفتها
ماکرو بهصورت هوشمند ستونهایی برای محاسبه تعداد شیفتهای صبح، عصر، شب، تعداد روزهای مرخصی، مجموع ساعات کاری و روزهای کاری برای هر کارمند ایجاد میکند. هر نوع شیفت ۸ ساعت در نظر گرفته شده و جمع ساعات کاری نیز بر اساس آن محاسبه میشود. در انتهای جدول، یک ردیف جمعبندی برای محاسبه مجموع ساعات و تعداد هر نوع شیفت برای کل کارکنان درج میشود. این محاسبات با استفاده از فرمولهای COUNTIF
و SUM
انجام میگیرند و کاملاً داینامیک هستند.
قالببندی گرافیکی، فریز عنوانها و تجربه کاربری بهتر
در پایان، قالببندی گرافیکی به شیت اعمال میشود. ردیف عنوانها ضخیم و رنگ پسزمینه آبی روشن دریافت میکنند، ستون نام کارکنان نیز با رنگ سبز کمرنگ جدا میشود و کل جدول دارای خطوط مرزی است. همچنین پنجره به گونهای فریز میشود که ردیف عنوان و ستون نام کارکنان هنگام اسکرول ثابت بمانند. این طراحی موجب میشود هنگام مشاهده یا ویرایش شیفتها، تجربه کاربری بسیار حرفهای و کاربردی ایجاد گردد. در نهایت، پیامی برای موفقیتآمیز بودن اجرای ماکرو به کاربر نمایش داده میشود.
نمونه تصاویر در زمان اجرا
✨ ویژگیهای اصلی کد
-
✅ ایجاد خودکار شیت جدید با نام «برنامه شیفت» و حذف شیت قبلی در صورت وجود.
-
✅ دریافت تعداد کارکنان، نام آنها، تاریخ شمسی شروع و تعداد روزهای برنامه از کاربر.
-
✅ نمایش تاریخها به شمسی با کمک توابع اختصاصی شما.
-
✅ ایجاد جدول کامل شیفتها با لیست کشویی (صبح، عصر، شب، مرخصی).
-
✅ رنگبندی خودکار شیفتها برای خوانایی بهتر:
-
صبح: سبز روشن
-
عصر: زرد روشن
-
شب: آبی روشن
-
مرخصی: قرمز روشن
-
-
✅ محاسبه خودکار آمار شیفتها برای هر نفر:
-
تعداد شیفتهای صبح، عصر، شب، مرخصی
-
جمع کل ساعت کاری (هر شیفت = ۸ ساعت)
-
تعداد روزهای کاری (روزهای غیرمرخصی)
-
-
✅ خلاصهسازی آماری در انتهای جدول برای مشاهده جمع کل شیفتها و ساعات کل.
-
✅ طراحی و قالببندی حرفهای و زیبا با رنگهای ملایم، فونت فارسی، فریز کردن عنوان و ترازبندی خودکار.
📌 استفاده از تقویم شمسی در اکسل VBA
در این پروژه از توابع سفارشی برای تبدیل تاریخ شمسی به میلادی (ShamsiToMiladi
) و نمایش تاریخ شمسی (To_Hejri
و Slash
) استفاده شده است. همچنین تابع IsValidShamsiDate
برای اعتبارسنجی تاریخ شمسی ورودی پیادهسازی شده است.
🧠 چطور از این کد استفاده کنیم؟
-
وارد محیط VBA Editor (Alt + F11) شوید.
-
یک ماژول جدید ایجاد کرده و این کد را در آن قرار دهید.
-
از طریق اجرای
Sub GenerateAdvancedShiftSchedule()
برنامه را اجرا کرده و مراحل را طی کنید.
📷 پیشنمایش جدول نهایی
نام کارکنان | ۱۴۰۴/۰۳/۰۱ | ۱۴۰۴/۰۳/۰۲ | ... | شیفت صبح | شیفت عصر | شیفت شب | مرخصی | جمع ساعت | روزهای کاری |
---|---|---|---|---|---|---|---|---|---|
علی حسینی | صبح | شب | ... | ۱ | ۰ | ۱ | ۰ | ۱۶ | ۲ |
✅ نتیجهگیری
این ماکرو ابزاری فوقالعاده برای سازماندهی و تحلیل شیفتهای کاری در اکسل با پشتیبانی از تاریخ شمسی است. مناسب برای استفاده در شرکتها، بیمارستانها، کارخانهها و هر جایی که نیاز به برنامهریزی کاری دقیق دارید.
برای شما کاربران عزیز پیشنهاد دانلود داده می شود.