# Workbook Analysis: F2_25RXXTRACK_RunSheet_DR_Alfa.xlsm

## Executive Summary

- Sheets: 23
- Formula cells: 32295
- Dependency edges: 112544
- Defined names: 37
- VBA project: yes
- Extracted macro source files: 33
- Charts/drawings/images: 42 charts, 17 drawings, 15 images

## Sheets

| Sheet | State | Used Range | Cells | Formulas | Merged | Validations | CF Rules | Charts | Images |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| HOWTO | hidden | A1:O64 | 47 | 2 | 29 | 0 | 0 | 0 | 1 |
| Version Info | hidden | A1:J24 | 47 | 0 | 0 | 0 | 0 | 0 | 0 |
| Event Info | visible | A1:AG73 | 604 | 162 | 24 | 2 | 13 | 0 | 3 |
| Tyres | visible | A1:AQ48 | 1146 | 1023 | 52 | 2 | 4 | 0 | 0 |
| P_Race_F23 | visible | A1:BR202 | 2749 | 1819 | 900 | 1 | 599 | 0 | 0 |
| P_Test_F23 | hidden | A1:AF83 | 740 | 483 | 219 | 1 | 154 | 0 | 0 |
| Pressure_Race_F23 | hidden | A1:BR183 | 2482 | 1419 | 634 | 1 | 599 | 0 | 0 |
| Pressure_Test_F23 | hidden | A1:AE83 | 643 | 353 | 151 | 1 | 142 | 0 | 0 |
| Pressure_Test_F23_W | hidden | A1:BH102 | 727 | 395 | 119 | 1 | 172 | 0 | 0 |
| PressureTest_F4R | hidden | A1:AD69 | 398 | 208 | 89 | 1 | 191 | 0 | 0 |
| PressureRace_F4R | hidden | A1:AD86 | 453 | 264 | 102 | 2 | 104 | 0 | 0 |
| Setup_o | hidden | B2:AE66 | 306 | 108 | 98 | 0 | 10 | 1 | 2 |
| Setup_F3 | hidden | B1:AZ245 | 441 | 175 | 85 | 0 | 40 | 1 | 2 |
| Setup_F2 | visible | B1:AZ249 | 526 | 228 | 105 | 0 | 8 | 1 | 2 |
| BaseSheet | hidden | A1:EU68 | 213 | 48 | 35 | 0 | 15 | 0 | 0 |
| Template Race | hidden | A1:EV235 | 3081 | 2652 | 358 | 5 | 42 | 4 | 2 |
| FIA Checks | visible | B2:AW90 | 366 | 18 | 146 | 0 | 0 | 0 | 6 |
| RP_Race | visible | A1:EM115 | 2444 | 1954 | 364 | 9 | 46 | 1 | 3 |
| RP_Test | hidden | A1:EM128 | 4557 | 3976 | 526 | 9 | 45 | 1 | 3 |
| RP | hidden | A1:DE119 | 1345 | 917 | 681 | 7 | 87 | 1 | 2 |
| FP | visible | A1:FG198 | 8319 | 6705 | 1245 | 4 | 482 | 0 | 2 |
| q | visible | A1:FG198 | 8319 | 6705 | 1245 | 4 | 482 | 0 | 2 |
| R1 | visible | A1:EU235 | 3138 | 2681 | 353 | 7 | 46 | 4 | 2 |

## Formula Hotspots

| Sheet | Formulas | Non-empty cells | Used range |
| --- | --- | --- | --- |
| FP | 6705 | 8319 | A1:FG198 |
| q | 6705 | 8319 | A1:FG198 |
| RP_Test | 3976 | 4557 | A1:EM128 |
| R1 | 2681 | 3138 | A1:EU235 |
| Template Race | 2652 | 3081 | A1:EV235 |
| RP_Race | 1954 | 2444 | A1:EM115 |
| P_Race_F23 | 1819 | 2749 | A1:BR202 |
| Pressure_Race_F23 | 1419 | 2482 | A1:BR183 |
| Tyres | 1023 | 1146 | A1:AQ48 |
| RP | 917 | 1345 | A1:DE119 |

## Cross-Sheet Formula Links

| Formula sheet | Referenced sheet | Count |
| --- | --- | --- |
| FP | Event Info | 3090 |
| q | Event Info | 3090 |
| FP | Tyres | 257 |
| q | Tyres | 257 |
| Template Race | Tyres | 128 |
| R1 | Tyres | 128 |
| Setup_F3 | Tyres | 54 |
| RP | Tyres | 49 |
| RP_Test | Event Info | 40 |
| RP | Event Info | 39 |
| RP_Test | Tyres | 29 |
| RP_Race | Event Info | 28 |
| R1 | Event Info | 27 |
| RP_Race | Tyres | 26 |
| Setup_o | Tyres | 24 |
| Setup_F2 | Tyres | 24 |
| P_Test_F23 | P_Race_F23 | 16 |
| Template Race | Event Info | 14 |
| Pressure_Race_F23 | Tyres | 13 |
| Setup_F3 | Event Info | 11 |
| Setup_F2 | Event Info | 11 |
| Event Info | Tyres | 10 |
| Setup_o | Event Info | 10 |
| Tyres | Event Info | 7 |
| P_Race_F23 | Tyres | 6 |
| P_Race_F23 | Event Info | 5 |
| P_Test_F23 | Event Info | 5 |
| Pressure_Race_F23 | Event Info | 5 |
| FP | Pressure_Race_F23 | 4 |
| q | Pressure_Race_F23 | 4 |

## Likely App Inputs

These are non-formula cells that formulas reference. They are good candidates for editable fields, source data, or imported tables.

| Cell | Nearby label | Current value | Referenced by |
| --- | --- | --- | --- |
| RP_Test!BS23 | run # | 1 | 1153 |
| RP_Test!BS24 | 1 | 2 | 1153 |
| RP_Test!BS25 | 2 | 3 | 1153 |
| RP_Test!BS26 | 3 | 4 | 1153 |
| RP_Test!BS27 | 4 | 5 | 1153 |
| RP_Test!BS28 | 5 | 6 | 1153 |
| RP_Test!BS29 | 6 | 7 | 1153 |
| RP_Test!BS30 | 7 | 8 | 1153 |
| RP_Test!BS31 | 8 | 9 | 1153 |
| RP_Test!BS32 | 9 | 10 | 1153 |
| RP_Test!BS33 | 10 | 11 | 1153 |
| RP_Test!BS34 | 11 | 12 | 1153 |
| RP_Test!BS37 |  | 13 | 1153 |
| RP_Test!BS38 | 13 | 14 | 1153 |
| RP_Test!BS39 | 14 | 15 | 1153 |
| RP_Test!BS40 | 15 | 16 | 1153 |
| RP_Test!BS41 | 16 | 17 | 1153 |
| RP_Test!BS42 | 17 | 18 | 1153 |
| RP_Test!BS43 | 18 | 19 | 1153 |
| RP_Test!BS44 | 19 | 20 | 1153 |
| RP_Test!BS45 | 20 | 21 | 1153 |
| RP_Test!BS46 | 21 | 22 | 1153 |
| RP_Test!BS47 | 22 | 23 | 1153 |
| RP_Test!BS48 | 23 | 24 | 1153 |
| RP_Test!BS51 |  | 25 | 1153 |

## Likely Terminal Outputs

These formula cells are not referenced by other formulas in the workbook graph. They are candidate displayed results or report-only fields.

| Cell | Nearby label | Cached value | Formula |
| --- | --- | --- | --- |
| HOWTO!B1 |  | 'User manual, runsheet  2302' | ="User manual, runsheet  " &A1 |
| Event Info!J4 | 00:45:00 | 27 | =ROUNDUP(86400*K4/$C$31,0)+1 |
| Event Info!L4 | 00:40:00 | 21 | =ROUNDUP(86400*M4/$C$31,0)+1 |
| Event Info!N4 | 00:30:00 | 21 | =ROUNDUP(86400*O4/$C$31,0)+1 |
| Event Info!J5 | 01:00:00 | 30 | =ROUNDUP(86400*K5/$C$31,0)+1 |
| Event Info!L5 | 00:45:00 | 21 | =ROUNDUP(86400*M5/$C$31,0)+1 |
| Event Info!N5 | 00:30:00 | 21 | =ROUNDUP(86400*O5/$C$31,0)+1 |
| Event Info!N6 | 00:30:00 | 21 | =ROUNDUP(86400*O6/$C$31,0)+1 |
| Event Info!T9 |  | 'Weekend Ideal SM' | ="Weekend Ideal "&C9 |
| Event Info!V9 | S4 | datetime.time(0, 0) | =(IF(IFERROR(MIN(V5:AE5),"")="","",IFERROR(MIN(V5:AE5),""))+IF(IFERROR(MIN(V6:AE6),"")="","",IFERROR |
| Event Info!V14 | Weekend Ideal All | datetime.time(0, 0) | =(IF(IFERROR(MIN(V10:AE10),"")="","",IFERROR(MIN(V10:AE10),""))+IF(IFERROR(MIN(V11:AE11),"")="","",I |
| Event Info!S47 | just the rectangle | 5150 | =50*103 |
| Event Info!T53 | 90 | 40.90909090909091 | =T54/103 |
| Event Info!U53 | 90 | 81.00000000000001 | =U54/50 |
| Tyres!L2 |  | 'F2_25R09BUDA' | ='Event Info'!C7 |
| Tyres!AP2 | DRV | 'SM' | ='Event Info'!C9 |
| Tyres!L3 |  | 'Budapest' | ='Event Info'!C5 |
| Tyres!T4 |  | 0 | =T3/$O$3*1000 |
| Tyres!U4 |  | 0 | =U3/$O$3*1000 |
| Tyres!V4 |  | 0 | =V3/$O$3*1000 |
| Tyres!W4 |  | '#VALUE!' | =W3/$O$3*1000 |
| Tyres!X4 |  | None | =IF(X3="","",X3/$O$3*1000) |
| Tyres!Y4 |  | None | =IF(Y3="","",Y3/$O$3*1000) |
| Tyres!Z4 |  | None | =IF(Z3="","",Z3/$O$3*1000) |
| Tyres!AA4 |  | None | =IF(AA3="","",AA3/$O$3*1000) |

## VBA / Macro Findings

| Source file | Stream | Lines | Procedures |
| --- | --- | --- | --- |
| Questa_cartella_di_lavoro.cls | Root Entry/VBA/Questa_cartella_di_lavoro | 9 |  |
| Sheet8.cls | Root Entry/VBA/Sheet8 | 9 |  |
| Foglio2.cls | Root Entry/VBA/Foglio2 | 9 |  |
| Foglio3.cls | Root Entry/VBA/Foglio3 | 12 | CheckBox1_Click |
| Foglio7.cls | Root Entry/VBA/Foglio7 | 9 |  |
| Modulo1.bas | Root Entry/VBA/Modulo1 | 239 | Import_run1 |
| Remaining_Laps_to_show_fp.cls | Root Entry/VBA/Remaining_Laps_to_show_fp | 38 | TextBox1_Change, TextBox2_Change |
| Modulo2.bas | Root Entry/VBA/Modulo2 | 73 | StartTimer_Perf, RefreshTimer_Perf, StartTimer_Race, RefreshTimer_Race |
| Foglio5.cls | Root Entry/VBA/Foglio5 | 9 |  |
| Foglio20.cls | Root Entry/VBA/Foglio20 | 126 | Worksheet_Change |
| Foglio12.cls | Root Entry/VBA/Foglio12 | 9 |  |
| Remaining_Laps_to_show_race.cls | Root Entry/VBA/Remaining_Laps_to_show_race | 41 | TextBox1_Change, TextBox2_Change |
| Feuil1.cls | Root Entry/VBA/Feuil1 | 12 | ComboBox2_Change |
| Others.bas | Root Entry/VBA/Others | 60 | Showlap, ISFORMULA, Graphscale |
| Module3.bas | Root Entry/VBA/Module3 | 81 | TirePrint |
| Sheet1.cls | Root Entry/VBA/Sheet1 | 10 |  |
| Foglio27.cls | Root Entry/VBA/Foglio27 | 23 | ToggleButton1_Click, Show_Click |
| Sheet2.cls | Root Entry/VBA/Sheet2 | 9 |  |
| Sheet4.cls | Root Entry/VBA/Sheet4 | 9 |  |
| Module1.bas | Root Entry/VBA/Module1 | 29 | AddTyreSet |
| Feuil3.cls | Root Entry/VBA/Feuil3 | 12 | ComboBox2_Change |
| Feuil2.cls | Root Entry/VBA/Feuil2 | 12 | ComboBox2_Change |
| Foglio18.cls | Root Entry/VBA/Foglio18 | 126 | Worksheet_Change |
| Foglio26.cls | Root Entry/VBA/Foglio26 | 90 | Worksheet_Change |
| Module2.bas | Root Entry/VBA/Module2 | 2 |  |
| Foglio25.cls | Root Entry/VBA/Foglio25 | 23 | ToggleButton1_Click, Show_Click |
| Module4.bas | Root Entry/VBA/Module4 | 5 | CheckBox4_Click |
| Sheet3.cls | Root Entry/VBA/Sheet3 | 9 |  |
| Sheet5.cls | Root Entry/VBA/Sheet5 | 9 |  |
| Sheet6.cls | Root Entry/VBA/Sheet6 | 9 |  |
| Sheet7.cls | Root Entry/VBA/Sheet7 | 9 |  |
| Foglio1.cls | Root Entry/VBA/Foglio1 | 9 |  |
| Foglio28.cls | Root Entry/VBA/Foglio28 | 90 | Worksheet_Change |

## Translation Model Notes

- Treat each visible worksheet with user-facing layout as a candidate app screen or workflow area.
- Treat hidden sheets, defined names, and dense formula-only regions as candidate domain/model layers.
- Rebuild formulas as pure deterministic functions first. The dependency CSV is the starting point for ordering calculations and discovering shared submodels.
- Rebuild macros as commands/events. Extracted procedures should be classified into UI actions, data movement, printing/export, validation, and calculation orchestration.
- Preserve workbook constants referenced by many formulas as editable configuration or imported event metadata.
- Investigate terminal outputs with domain stakeholders before implementing UI, because some may be helper/check cells rather than user-visible results.

## Output Files

- JSON model: `F2_25RXXTRACK_RunSheet_DR_Alfa_analysis.json`
- Formula CSV: `F2_25RXXTRACK_RunSheet_DR_Alfa_formulas.csv`
- Dependency CSV: `F2_25RXXTRACK_RunSheet_DR_Alfa_dependencies.csv`
