Skip to content

Prashamv/ScheduleManager

Repository files navigation

ScheduleManager

ScheduleManager is a generic Windows Excel schedule generator. It rebuilds a schedule template into ScheduleManager.xlsm with manager-friendly inputs, protected printable schedules, rotation records, custom work-time dropdowns, and standard VBA macros.

Repository description:

Excel/VBA schedule manager for generating three printable schedules with Saturday rotation, requested days off, custom work times, protected records, and preserved workbook styling.

Project Code

  • build_schedule.py: Windows Excel COM build script that creates the final macro-enabled workbook from the source .xlsm.
  • modScheduleGenerator.bas: exported standard VBA module containing GenerateSchedules and ClearRequestedDays.
  • ScheduleManager.xlsm: generated workbook ready for Excel Desktop on Windows.
  • VALIDATION.md: validation notes for workbook structure, macro behavior, styling, and copy/open checks.
  • .gitignore: excludes temporary Excel/cache files.

Manager Use

  1. Open ScheduleManager.xlsm in Microsoft Excel Desktop for Windows.
  2. Enable macros when Excel asks.
  3. Use ManagerInput to update employee names, Active ON/OFF, SaturdayRotation ON/OFF, daily work-time dropdowns, requested days off, and the three custom schedule start dates.
  4. Click GenerateSchedules.
  5. Review or print PrintableSchedule1, PrintableSchedule2, or PrintableSchedule3.

Sheets

  • ManagerInput: the only sheet managers should edit.
  • PrintableSchedule1, PrintableSchedule2, PrintableSchedule3: protected printable schedules.
  • Records: visible protected history of generated schedule records and fairness counts.
  • _RotationEngine, _SaturdayOrder, _ScheduleData: helper sheets, set very hidden.

Each printable schedule displays its selected start date in cell C5. Daily work-time dropdowns on ManagerInput update the printable day headers and the calculated hours in row 5.

Adding an Employee

Enter the employee in a blank row on ManagerInput, set Active: ON/OFF to ON, choose whether they participate in SaturdayRotation, and set requested days to YES or NO. Blank employee-name rows are ignored.

Saturday Rotation

Employees with SaturdayRotation set to ON are included in the Saturday rotation. Employees marked OFF are excluded from automatic Saturday rotation. When a Saturday-working employee needs an automatic weekday off, the macro prefers Monday, Tuesday, and Wednesday before using Thursday or Friday.

Rebuild

Run the build script from this folder on Windows with Excel installed:

& "C:\Program Files\Unity\Hub\Editor\6000.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\python\python.exe" .\build_schedule.py

You may also pass a source workbook path:

python .\build_schedule.py "C:\path\to\source_schedule.xlsm"

The build script enables Excel's user-level AccessVBOM setting so it can create the standard VBA module. This is only needed for rebuilding the workbook, not for managers using the finished workbook.

VBA Source

The workbook imports modScheduleGenerator.bas as a standard VBA module. It does not use Excel 4.0 macro sheets, ActiveX controls, shell commands, external links, internet access, or downloaded code.

About

Excel/VBA schedule manager for generating three printable schedules with Saturday rotation, requested days off, custom work times, protected records, and preserved workbook styling.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages