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.
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 containingGenerateSchedulesandClearRequestedDays.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.
- Open
ScheduleManager.xlsmin Microsoft Excel Desktop for Windows. - Enable macros when Excel asks.
- Use
ManagerInputto update employee names, Active ON/OFF, SaturdayRotation ON/OFF, daily work-time dropdowns, requested days off, and the three custom schedule start dates. - Click
GenerateSchedules. - Review or print
PrintableSchedule1,PrintableSchedule2, orPrintableSchedule3.
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.
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.
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.
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.pyYou 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.
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.