I built a real project scheduling engine entirely in Excel — now I’m stress-testing it with 1,200 tasks
▲ 11 r/MSProject+1 crossposts

I built a real project scheduling engine entirely in Excel — now I’m stress-testing it with 1,200 tasks

I started ProjectEngine because Excel is often the only tool everyone has access to, while proper scheduling software such as MS Project or Primavera P6 is not always available.

Most Excel Gantt charts are essentially visual tables, so I wanted to see whether Excel could support an actual scheduling engine instead.

ProjectEngine is now an open-source Excel/VBA application with:

  • dependency-driven scheduling;
  • FS, SS and FF relationships with lag;
  • Critical Path, Longest Path and float analytics;
  • baseline, actual and forecast tracking;
  • milestones, summaries and Level of Effort tasks;
  • non-destructive TEST and SCENARIO workflows;
  • an interactive Gantt with drag and resize;
  • dashboards and S-curves;
  • English and French interfaces.

It remains completely local and Excel-native. There is no installer, server or account.

The project has now reached 12 GitHub stars, and the latest release has been downloaded 36 times, which is much more interest than I expected for such a niche tool.

The current challenge is performance at scale.

My stress-test workbook contains roughly 1,200 tasks, 2,000 task-related Shapes and 1,180 dependency links. I have already moved most calculations into indexed in-memory structures and replaced around 3,100 dependency Shape segments with a single generated SVG layer.

The scheduling engine itself is now relatively fast. The remaining work is mostly about reducing the cost of projecting the result back into Excel without giving up the native interactive Gantt.

I am currently finishing that performance work before publishing the next release.

I would be interested in feedback from both project managers and developers:

  • Is the purpose of the project clear from the repository?
  • Would an Excel-native scheduling engine be useful in your environment?
  • What size of schedule would you realistically try with it?
  • What would prevent you from replacing a conventional Excel Gantt with something like this?

Project and source code:

https://github.com/TMailletFR/ProjectEngine

u/DeathMaillet — 3 days ago
▲ 12 r/vba

Scaling an Excel/VBA Gantt from 60 to 1,200 tasks — where would you optimize next?

I’ve been doing a fairly deep performance pass on an Excel/VBA scheduling engine, and I think I’ve reached an interesting architectural limit.

The current stress test is around 1,200 tasks, ~2,000 business shapes and ~1,180 dependency links.

A lot has already been optimized:

  • scheduling core and analytics run from compiled/indexed structures
  • the watcher is almost free
  • rendering is local/incremental
  • ~3,100 dependency Shapes were replaced with a single SVG layer

Despite that, a very small local change can still take ~10–13s, while a heavily propagated change can take 35–90s.

The surprising part is that COM writes are no longer the main problem.

On one propagated case, 661 shapes were updated with 3,811 COM property writes, but those writes only took ~1.2s.

The real cost is now mostly before the writes:

  • a global O(n²) hierarchy pass still runs before the local filter and costs ~8s by itself
  • timeline geometry is recalculated thousands of times and repeatedly reads .Left and .Width from worksheet cells, creating thousands of COM reads
  • style-only updates such as CP/LP still pass through geometry-building code
  • a fixed “change set too large” threshold forces a broad render path once more than 400 IDs change

My next step is probably to make the renderer much more transactional:

  • precompute hierarchy in O(n)
  • preload timeline geometry into arrays
  • render directly from changed IDs
  • remove the fixed fallback threshold
  • create a true style-only path for CP/LP
  • keep the current renderer as a fallback

What I’m curious about is this:

For people who have pushed Excel/VBA renderers hard, where did you find the real practical limit?

At this stage I’m not really looking for the usual “use arrays instead of cells” advice — that part is already done. I’m more interested in projection/cache structures, COM-read avoidance, or architectural tricks that gave you a real order-of-magnitude improvement.

reddit.com
u/DeathMaillet — 17 days ago
▲ 126 r/vba

I had no idea VBA could go this far

When I started my last project, I saw VBA as a slightly obscure way to automate repetitive Excel work and push formulas a bit further.

Then every time I thought I had reached its limit, I found another door.

What began as a few scheduling calculations gradually turned into dependency graphs, critical-path analysis, incremental recalculation, automated tests and an interactive Gantt built with Excel shapes.

The real turning point was when I stopped treating Excel as the application and started treating it as the interface. The workbook handles inputs and outputs, while most of the actual logic runs in memory through arrays, dictionaries and separate modules.

VBA is still old, awkward and occasionally infuriating. But I expected it to do a little more than Excel formulas.

It turned out it could do a lot more.

I’m curious: what did you build that made you realise VBA was more capable than you initially thought?

reddit.com
u/DeathMaillet — 21 days ago

I built an open-source scheduling engine for Excel after years of managing projects without Microsoft Project

Hi everyone,

Over the past months I've been building an open-source scheduling engine entirely in Excel/VBA.

The original idea was simple.

Throughout my career, I've worked with teams that already managed their schedules in Excel but either didn't have Microsoft Project licenses, didn't need a full enterprise scheduling tool, or simply preferred staying in an environment that everyone already knew.

I wanted to see how far a native Excel planning engine could realistically go.

Today the project includes:

  • Dependency-based scheduling (FS / SS / FF + lags)
  • Interactive Gantt chart
  • Critical Path analysis
  • Total & Free Float
  • Incremental recalculation
  • Scenario simulation
  • Planning diagnostics
  • S-Curve
  • Fully documented architecture

The project has just reached version 1.0.1 and is completely open source.

GitHub:

https://github.com/TMailletFR/ProjectEngine

A few questions immediately come to mind:

  • Could you see yourself using something like this in your organization?
  • If not, what would stop you?
  • Which scheduling features would you consider essential before trusting it on a real project?
  • If you already manage schedules in Excel, what are the biggest pain points you've run into?

I'd really appreciate any feedback, whether it's about missing functionality, usability, or simply whether you think Excel is the wrong platform for this kind of tool.

Thanks!

Gantt

S-Curve

reddit.com
u/DeathMaillet — 1 month ago