{"text_format":"1","workbook":"xlsx","n_sheets":11,"sheets":["Instructions","Ad Week Calendar","Data Import","Ad Summary","Lift Query","Ad Week Planner","Ad Database Import","BrandList","Ad Tracker","⚙ VBA Setup","SQL"],"not_rendered":{"charts":0,"images":0,"macros":1,"external_links":0,"defined_names":7,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":3,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Instructions","index":0,"n_rows":438,"n_cols":3,"rows_kept":438,"cut":false,"hidden":false,"merged":[[243,1,247,1],[248,1,252,1]]}
["NEX AD PLANNER  -  USER INSTRUCTIONS"]
["Reference guide for the Ad Planner workbook"]
[]
["OVERVIEW"]
["This workbook is the central tool for building NEX ad weeks. It pulls QuantaSense"]
["sales data, calculates ad week elasticity (lift) at the SKU level, lets you query"]
["results by week or vendor, and exports the final ad lineup to PowerPoint templates"]
["for the marketing team."]
[]
["TAB DIRECTORY"]
["Instructions\t\tThis tab. Reference for the whole workbook."]
["Ad Week Calendar\t\tStatic reference of NEX fiscal week codes."]
["Data Import\t\tQuantaSense data lives here. Loaded via the Import button - no manual paste."]
["Ad Summary\t\tOutput of BuildAdSummary. SKU-level lift table."]
["Lift Query\t\tFilter Ad Summary by week, description, Class, or Sub-Class."]
["Ad Week Planner\t\tBuild a single ad week. Drives the PowerPoint export."]
["BrandList\t\tSingle column of brand names. Used by the Brand auto-detect formula."]
["Ad Tracker\t\tAuto-populated history of every PowerPoint export. Don't edit directly."]
["VBA Setup\t\tSetup notes for the macro environment."]
["SQL\t\tReference SQL queries for QuantaSense extracts."]
[]
["STANDARD WEEKLY WORKFLOW"]
["1.\tPull QuantaSense data\t\tRun the SQL on the SQL tab to export 26 weeks of data including the ad week(s) you want to analyze. Save the export as an .xlsx file (default QuantaSense V1 format)."]
["2.\tImport the file\t\tOn the Data Import tab, click the Import Data Dump button. Pick the .xlsx file from the file dialog. Macro validates headers, wipes any old data, and loads the new data automatically. No manual paste."]
["3.\tRun BuildAdSummary\t\tClick the Build button on the Ad Summary tab. Enter the week(s) you want analyzed (comma-separated for multiple). Macro produces SKU-level lift table sorted by Lift %."]
["4.\tReview and query\t\tUse the Verdict filter on Ad Summary to see STRONG / MODERATE / WEAK items. For vendor-level rollups (e.g. all MacBook Air across multiple weeks), use the Lift Query tab."]
["5.\tBuild the ad week\t\tOn the Ad Week Planner tab, fill in B3 (Ad Week #), E3 (Vehicle: AE / FE / X / EMAIL / LE / HL), B5 (Start Date), and E5 (End Date). Mark items YES in column S to include in the export. Brand in column T auto-fills from BrandList."]
["6.\tExport to PowerPoint\t\tClick Export. Choose layout when prompted (AE/FE/EMAIL) or auto-routed (LE/HL). Save the resulting .pptx with the prompted filename. Macro automatically appends the export to the Ad Tracker tab with all 15 columns including Start Date and End Date. Send PowerPoint to marketing."]
[]
["AD SUMMARY  -  THE ELASTICITY TABLE"]
["Generated by BuildAdSummary. One row per Transaction RIN per ad week."]
["Columns"]
["Ad Week\t\tThe fiscal week code (e.g. 2026:Wk18)."]
["Parent RIN\t\tRoll-up RIN. Multiple Transaction RINs may share one Parent."]
["Transaction RIN\t\tIndividual SKU. This is what drives the ad."]
["Description\t\tProduct description from Style NEW column."]
["Ad Wk Units\t\tUnits sold in the selected ad week."]
["Ad Wk Rev ($)\t\tRevenue in the selected ad week."]
["Baseline Avg/Wk\t\tAverage weekly units when NOT promoted (LC26W methodology)."]
["Baseline Weeks\t\tNumber of un-promoted weeks used to compute baseline."]
["Unit Lift\t\tAd units minus baseline avg. Incremental units driven by the ad."]
["Lift %\t\tUnit lift / baseline avg. The headline elasticity number."]
["Rev Lift ($)\t\tIncremental revenue vs un-promoted weekly average."]
["Verdict\t\tSTRONG (>=50% lift), MODERATE (>=20%), WEAK (<20%), or LOW DATA / NEW LAUNCH."]
["Average Selling Price\t\tAd Wk Rev / Ad Wk Units."]
["Group\t\tQuantaSense Group code (e.g. 0226 = Mobile Electronics)."]
["Dept\t\tQuantaSense Department code."]
["Class\t\tQuantaSense Class code."]
["Sub-Class\t\tQuantaSense Sub-Class. Often the brand level (Apple, Anker, etc.)."]
["How baseline is calculated"]
["BASELINE = UN-PROMOTED RUN-RATE"]
["The Baseline Avg/Wk is the average weekly units this SKU sold during the Last 26 Weeks EXCLUDING ad weeks (LC26W methodology in QuantaSense). This is the right comparison for elasticity: it answers 'what does this SKU sell when we DON'T promote it?' - not 'what's the calendar-year average?'"]
[]
["Verdict thresholds"]
["STRONG\t\tLift % >= 50%. The ad worked - significant incremental volume vs run-rate."]
["MODERATE\t\tLift % between 20% and 50%. Ad performed acceptably."]
["WEAK\t\tLift % below 20%. Ad did not move the needle materially."]
["NEW LAUNCH\t\tNo baseline weeks available. Item is new - no LY data to compare."]
["LOW DATA (n wks)\t\tFewer than 4 baseline weeks. Result is not statistically meaningful."]
[]
["LIFT QUERY  -  VENDOR / PRODUCT ROLLUP"]
["Filter Ad Summary by ad week, description text, or Sub-Class. Returns a weighted"]
["Lift % across the selection - the right number to quote when discussing vendor"]
["performance with marketing or buyers."]
["*** IMPORTANT ***"]
["The Ad Summary tab only contains the week(s) you selected last time you ran BuildAdSummary. If you want to query WK18 AND WK24, BOTH must be entered (comma-separated) when BuildAdSummary prompts you for ad weeks. If your query is missing a week, re-run BuildAdSummary with all weeks needed."]
[]
["Filters"]
["B3 - Ad Week(s)\t\tComma-separate multiple weeks. Blank = all weeks in the table."]
["B4 - Description contains\t\tFree text. Case-insensitive partial match."]
["B5 - Class contains\t\tFree text. Filter by product Class (e.g. Hardware, Accessories)."]
["B6 - Sub-Class contains\t\tFree text. Filter by Sub-Class, often vendor-level (Apple, Anker)."]
["Weighted Lift % (the headline number)"]
["This is NOT a simple average of each row's Lift %. The Lift Query calculates:"]
["\tTotal Unit Lift  /  Total Baseline Units"]
["This number matches the actual incremental units the ad drove. It treats every UNIT equally instead of every SKU equally. This is the lift % to quote externally to marketing, vendors, and leadership."]
["Bottom line:"]
["    •  Single-row Lift % in Ad Summary  =  correct for that SKU only"]
["    •  Simple average across SKUs  =  inflates results, do not use"]
["    •  Weighted Lift % from Lift Query  =  the honest rollup, defensible externally"]
[]
["AD WEEK PLANNER  -  BUILDING THE EXPORT"]
["Where you build the actual ad week before exporting to PowerPoint."]
["Setup cells (rows 3 and 5)"]
["B3 - Ad Week #\t\tThe ad week label, e.g. WK28X. Drives the export filename."]
["E3 - Vehicle\t\tAE = standard ad. FE = front end. X / EMAIL = email template. LE = Large Event (multi-page). HL = Holiday Layout (8-grid single page)."]
["B5 - Ad Start Date\t\tFirst day the ad runs. Written to the Ad Tracker on export."]
["E5 - Ad End Date\t\tLast day the ad runs. Written to the Ad Tracker on export."]
["Item rows (rows 10-89)"]
["Each row is one product. Mark column S (INCLUDE?) = YES for items to export."]
["Column J (Call Out) feeds the New, Special Pricing, or Other Info line on the slide."]
["Column T (Brand) auto-fills via formula from BrandList tab. Locked - do not type into it."]
["Vehicle-specific behavior"]
["AE / FE\t\tSingle slide. 7 / 9 / 4 slot layouts. Max items = layout slot count."]
["X / EMAIL\t\tSingle slide. Email_Templates.pptx. 3 or 4 slot layouts."]
["LE\t\tMulti-page. Large_Event_Template.pptx. 7 slots per slide. Auto-paginates up to 30 slides (210 items max)."]
["HL\t\tSingle slide. 8-grid_Holiday_Layout.pptx. 8 slots: 2 hero positions + 6 grid items. Max 8 items."]
["Locked formula columns"]
["Several columns are protected to prevent accidental deletion of formulas. The"]
["ProtectPlanner macro re-locks them and re-writes the Brand formula whenever it runs."]
["Locked columns: I (Savings), L/M/N (LY data), R (Elasticity), T (Brand)."]
[]
["DATA IMPORT  -  LOAD THE QUANTASENSE EXPORT"]
["The Data Import tab holds the raw QuantaSense V1 export. BuildAdSummary and Lift"]
["Query both read from this tab. Loading is now automatic - do not paste manually."]
["How to load"]
["1.  Run the SQL on the SQL tab in QuantaSense and save the export as .xlsx"]
["2.  Click the Import Data Dump button on the Data Import tab"]
["3.  Pick your .xlsx file from the file picker"]
["4.  Macro validates headers, wipes old data, loads new data"]
["*** ALWAYS WIPES AND REPLACES ***"]
["Each import wipes any existing data in rows 5+ before loading the new file. If you need data from two different pulls in the same view, combine them in QuantaSense first, then export."]
[]
["Expected file format"]
["QuantaSense V1 .xlsx with sheet name 'Ad Planner V1'."]
["Row 1 = title, row 2 = blank, row 3 = headers, row 4+ = data."]
["13 columns: Group | Dept | Class | Sub-Class | SKU | Style NEW | Week | Metrics | Sales $ | Sales U | Sales $ LC26W | Sales U LC26W | Inv OH U LC26W"]
["AD TRACKER  -  HISTORICAL EXPORT LOG"]
["Auto-populated tab. Every PowerPoint export appends one row per included item."]
["Don't type into this tab directly - the macro manages it."]
["What gets logged per export"]
["A - Export Date\t\tTimestamp from when the export ran."]
["B - Ad Week\t\tFrom B3 of the planner."]
["C - Vehicle\t\tFrom E3 of the planner."]
["D - Start Date\t\tFrom B5 of the planner."]
["E - End Date\t\tFrom E5 of the planner."]
["F - Brand\t\tFrom column T of the planner (auto-detected)."]
["G - Trans RIN\t\tFrom column A of the planner."]
["H - Parent RIN\t\tFrom column B of the planner."]
["I - VPN\t\tFrom column C of the planner."]
["J - Description\t\tFrom column G of the planner."]
["K - Cost\t\tFrom column E of the planner."]
["L - Retail\t\tFrom column F of the planner."]
["M - Promo Price\t\tFrom column H of the planner."]
["N - Savings\t\tFrom column I of the planner."]
["O - Call Out\t\tFrom column J of the planner."]
["Replace-by-week-vehicle behavior"]
["If you re-export the same Ad Week + Vehicle combination (e.g. fixed a typo and"]
["re-ran), the macro deletes the prior rows for that pair and writes fresh ones."]
["No duplicates, no manual cleanup."]
["POWERPOINT TEMPLATE FILES"]
["All template .pptx files must be in the same folder as this workbook."]
["AE_and_FE_Templates.pptx\t\tUsed for AE (standard ad) and FE (front end) vehicles. Contains 3 slide layouts: Hero+6 (7 slots), 9-up grid (9 slots), Hero+3 (4 slots)."]
["Email_Templates.pptx\t\tUsed for X / EMAIL vehicles. Contains 3 layouts: Feature hero+3 (4 slots), 2x2 grid (4 slots), Single column (3 slots)."]
["Large_Event_Template.pptx\t\tUsed for LE (Large Event) vehicle. 7 slots per slide. Auto-paginates for large item counts."]
["8-grid_Holiday_Layout.pptx\t\tUsed for HL (Holiday Layout) vehicle. Single slide with 8 positions: 2 hero slots and 6 grid items. Ideal for holiday/seasonal promotions with a compact visual layout."]
[]
["COMMON GOTCHAS"]
["•\tMacro errors after editing\t\tIf you edit code in the VBA editor and the macro stops working, restart Excel. Sometimes VBA caches stale state."]
["•\tEmpty PowerPoint output\t\tMake sure all .pptx template files (AE_and_FE_Templates, Email_Templates, Large_Event_Template, 8-grid_Holiday_Layout) are in the same folder as the workbook."]
["•\tLift Query missing data\t\tRe-run BuildAdSummary with the missing week(s) included in the prompt. Lift Query only sees what's currently in the Ad Summary."]
["•\tWrong Group / Dept showing\t\tRe-import the Data Dump file. The macro validates V1 column order on import - if validation passed, the data is right."]
["•\tSave As cancelled\t\tAll export macros are all-or-nothing. Cancelling Save As exits cleanly without modifying anything. The Ad Tracker is only updated after a successful save."]
["•\tBrand showing blank in Tracker\t\tThe Brand auto-fill formula scans Description against BrandList. If the description doesn't contain a known brand keyword, Brand will be blank. Add the missing brand to BrandList tab and re-run ProtectPlanner to refresh."]
["•\tTracker layout outdated error\t\tIf the macro complains the tracker is outdated, delete rows 3+ on the Ad Tracker tab and re-run the export. Macro will rebuild the tab with the current 15-column layout."]
["•\tStart/End Date blank in Tracker\t\tFill in B5 (Ad Start Date) and E5 (Ad End Date) on the planner before exporting. The macro writes both to columns D and E of the Ad Tracker."]
["•\tHL template not found\t\tPlace 8-grid_Holiday_Layout.pptx in the same folder as this workbook. Set Vehicle = HL in cell E3."]
["•\tAverage Selling Price wrong\t\tMacro now writes the ASP formula automatically per row. Don't type into column M of Ad Summary - it gets overwritten on every BuildAdSummary run."]
["Import Data To DB SHEET ***Button"]
["User & System Instruction Manual: Master Ad Tracker Automation Pipeline"]
[]
["This manual details the architecture, operations, and execution steps for the consolidated NEX Ad Tracker Master Module. This system automates the processing of advertising data by linking your Excel Ad Week Planner, a live remote Oracle RMS Database, formatted PowerPoint Production Templates, and a historical tracking archive."]
[]
["1. System Architecture & Flow"]
[]
["The master macro functions as an automated data pipeline. Instead of requiring manual copy-pasting or separate database queries, it moves through a 6-stage transaction lifecycle:"]
[]
["[Ad Week Planner] (Filter \"YES\" items)"]
["        │"]
["        ▼"]
["[Stage 1 & 2: Parse & Validate Layout Capped Slots]"]
["        │"]
["        ▼"]
["[Stage 3: Oracle RMS Database Lookup] ──► (Fallback: Pull live VPN, Cost, Dept, Class, "]
["        │                                  and Retail Price only if Planner Col F is empty)"]
["        ▼"]
["[Stage 4 & 5: Background PPT Generation] ──► (Pushes data into named shape placeholders "]
["        │                                     \"Slide_X_Slot_Y\" completely out-of-view)"]
["        ▼"]
["[Stage 6: Archive Logging] ──► (Appends data to historical [Ad Tracker] ledger)"]
[]
["2. Pre-Flight Worksheet Prerequisites"]
[]
["For the automation engine to run successfully, your active workbook must contain specific tabs, layouts, and explicit cell targets."]
[]
["Sheet 1: Ad Week Planner"]
[]
["This is your primary command center dashboard."]
[]
["Cell B3: Must contain the numeric Ad Week (e.g., 24)."]
[]
["Cell E3: Must contain the Vehicle Type (e.g., FE, AE, LE, or EMAIL)."]
[]
["Cell B4: Contains a static administrative element pushed automatically to the Bulk Load sheet."]
[]
["Row 9 Headers: Column T must be explicitly labeled Brand or execution will halt."]
[]
["Data Row Boundaries: The grid scans strictly from row 10 through 89."]
[]
["Column S (INCLUDE?): Items must be flagged with an exact string match of YES to be pulled into the current processing stack."]
[]
["Column F (Retail): Enter custom retail pricing here."]
[]
["Pricing Priority Rule: If Column F contains a value, the script writes it directly to the output. If Column F is blank, the script dynamically pulls the standard retail price from Oracle RMS instead."]
[]
["Sheet 2: Bulk Load"]
[]
["The transaction ledger destination sheet."]
[]
["Row 4 Headers: Must contain RIN and Wk somewhere along the row layout. The macro searches for these strings to find their column indexes dynamically."]
[]
["Data Row Structure: New records append starting at the first clean, open row underneath row 4."]
[]
["Sheet 3: SQL"]
[]
["Cell Range rngrmsquery: Must contain the raw Oracle SQL query text block, utilizing the keyword token ITEMS as its placeholder value."]
[]
["3. How to Use the Automation Pipeline (Step-by-Step)"]
[]
["Step 1: Prep the Data Grid"]
[]
["Open the Ad Week Planner sheet. Populate your items between rows 10 and 89. Ensure your item numbers are in the Trans RIN column."]
[]
["Step 2: Set the Inclusion Filters"]
[]
["In Column S (INCLUDE?), type YES next to every item you want to compile into your PowerPoint presentation and export to your log files."]
[]
["Step 3: Configure Your Price Fallbacks"]
[]
["If an item has a special promotional or event retail price, type it into Column F."]
[]
["If you want the item to pull its standard retail price directly from the corporate live database, leave Column F completely blank."]
[]
["Step 4: Execute the Macro"]
[]
["Click the assigned macro button, or press Alt + F8, select ExportAdPlannerMasterProcess, and click Run."]
[]
["Step 5: Select Your Layout Configuration"]
[]
["Depending on the vehicle text provided in cell E3, an automated configuration prompt will appear:"]
[]
["If Vehicle equals...","Prompt Behavior","Layout Target Rules"]
["LE","Bypasses prompt (Automatic Large Event)","Generates multi-slide packs (7 slots per slide). Max 210 items."]
["EMAIL / X","Displays Email Layout Prompt","Option 1: Hero + 3 items (4 slots)"]
[]
[null,null,"Option 2: 2x2 Grid (4 slots)"]
[]
[null,null,"Option 3: Single Column (3 slots)"]
["AE / FE","Displays Ad Layout Prompt","Option 1: Hero + 6 items (7 slots)"]
[]
[null,null,"Option 2: 9-up Grid (9 slots)"]
[]
[null,null,"Option 3: Hero + 3 items (4 slots)"]
["Type 1, 2, or 3 into the prompt box and click OK."]
[]
["Step 6: Select the Destination Path"]
[]
["A file dialog window will slide open. The script automatically guesses an optimized filename string using your structural configurations (e.g., 24_AE_FE_20260529.pptx). Choose your directory path and click Save."]
[]
["4. Understanding the Technical Outputs"]
[]
["When the code finishing running, a processing box will summarize your operations. Behind the scenes, the following updates occur instantly:"]
[]
["A. PowerPoint Presentation Generation"]
[]
["The module opens your target template completely out-of-view (WithWindow:=0). This processes the slides quietly in your computer's background memory without screen flickering or slow canvas rendering."]
[]
["The script searches the slide deck for specific text box targets labeled precisely as Slide_X_Slot_Y (e.g., Slide_1_Slot_2)."]
[]
["It replaces those blocks with beautifully formatted product blocks:"]
[]
["Plaintext"]
["[Description Text]"]
["VPN: [Supplier Part Number]"]
["RIN: [Item Master Number]  <-- If blank or \"TBD\", turns RED automatically"]
["Retail: $XX.XX"]
["Promo: $XX.XX"]
["Save: $XX.XX"]
["[Custom Row Call Out Text]"]
[]
["B. Bulk Load Mapping Record Matrix"]
[]
["Data entries are automatically mapped to the Bulk Load worksheet rows using the following permanent columns:"]
[]
["Column B & C: Split out Vendor/Supplier credentials (ID and Name) using a split rule parsed from the Oracle recordset."]
[]
["Column E & F: Live product VPN and Description."]
[]
["Column G: Maps Call Out comments."]
[]
["Column I: Writes an escalating sequence number starting at 1."]
[]
["Column P: Writes the final evaluated retail value (Local Column F input wins; Oracle Database defaults as fallback)."]
[]
["Column Q: Mapped promotional price."]
[]
["Column U & AQ: Automated cost matching values."]
[]
["Column AM & AN: Department and class assignments."]
[]
["Column AO: Populates cell B4 static info."]
[]
["Column AP: Mapped parent items."]
[]
["C. The Ad Tracker Ledger History Archive"]
[]
["The script verifies if a sheet named Ad Tracker exists. If missing, it builds one from scratch with polished dark-navy layouts (RGB(13, 21, 53)) and standardized cell formatting."]
[]
["Obsolete Data Purging: To prevent duplicate record pollution, the macro automatically scans your history and purges any rows that match your current Ad Week and Vehicle combo before writing new lines."]
[]
["Batch Logging: Appends all active elements into a clean row layout alongside an explicit execution time stamp (mm/dd/yyyy h:mm AM/PM)."]
[]
["5. Troubleshooting & Error Traps"]
[]
["The master script includes a pair of containment boundaries to prevent file corruption if something goes wrong:"]
[]
["Oracle Database Fault Handler: If your network profile loses connection or database privileges timeout, the program drops out safely, resets your mouse cursor, and provides an actionable error message."]
[]
["PowerPoint Execution Fault Handler: If a template slide layout is corrupted or missing its named shape targets (like Slide_1_Slot_1), the engine intercepts the error, stops the script, closes the background file without saving, and rolls back changes to prevent broken layouts."]
["Ad Database Import"]
["1. System Overview & Purpose"]
[]
["This tool acts as a bridge between an Excel-based Promotional Ad Item worksheet and a centralized MS Access Ad Database (AdDB.accdb)."]
[]
["Instead of manually re-keying data from Excel into Access, users highlight rows in Excel and run the macro. The script maps individual columns dynamically, formats values according to retail rules, cleans up technical identifiers (like RINs), and creates new database records automatically."]
[]
["Key Workflows"]
[]
["1. Dynamic Mapping: The script automatically scans row 4 of your spreadsheet to match column headers against database fields, allowing flexibility if columns move."]
[]
["2. Data Cleansing: It intercepts item data—specifically converting raw numbers or prefixed values into standard operational formats."]
[]
["3. Reference Verification: It syncs with a SharePoint-hosted database (LookupMaster.accdb) to pull real-time buyer, department, and marketing hierarchy data."]
[]
["2. Technical Prerequisites & Setup"]
[]
["For this tool to function smoothly, your local workstation and network environment must meet the following criteria:"]
[]
["Windows Environment: The utility uses standard Windows Script Host (WScript.Network) to automatically identify who is submitting data."]
[]
["Active Directory / Network Access: You must have read/write access to the network paths:"]
[]
[]
["\\\\nexad.nexweb.us\\HQ\\Common\\JackF\\Ad Database\\AdDB.accdb (The main Ad Database)"]
[]
["\\\\intranet.nexad.nexweb.us@SSL\\DavWWWRoot\\M\\MS\\Data Files\\LookupMaster.accdb (The master lookup table)"]
[]
["Local Directory Permissions: The script must be allowed to create and modify a cache folder located at C:\\temp\\."]
[]
["Excel Library Reference: Open the VBA Editor ($Alt + F11$), go to Tools > References, and ensure Microsoft ActiveX Data Objects (ADODB) 6.1 Library (or latest version) is checked."]
[]
["3. Spreadsheet Layout Requirements"]
[]
["The macro does not look at hardcoded column letters (e.g., Column B is always Vendor). Instead, it maps fields dynamically based on a Header Row configuration."]
[]
["Row 4 (The Header Map): Excel row 4 must contain the exact text headers that the macro looks for. Key names include:"]
[]
[]
["RIN: The item or list number."]
[]
["Supplier Name, Supplier #, Style # (VPN)."]
[]
["NEX Price, Adv Price, MSRP, NEX Cost."]
[]
["Page, Priority, New Item Y/N, Online Exclusive Y/N."]
[]
["Row 1 (The Column Letter Calculator): Row 1 is utilized silently by the script to calculate cell addresses. Do not merge cells in Row 1 or Row 4."]
[]
["Validation Check Columns: The script checks columns A and D of any highlighted row. If both cells A and D are completely empty, the macro skips that row as a safeguard against posting blank lines."]
[]
["4. How Data Fields Are Processed"]
[]
["When you run the copy mechanism, data is transformed based on the following logic:"]
[]
["Excel Header (Row 4)","Target Database Field","Applied Logic / Transformation"]
["RIN","RIN or Item List","Automatically prefixes pure numbers with an \"R\". For example, 12345 becomes R12345. If it already starts with an \"R\" or \"L\", it uploads as-is."]
["RIN","Featured RIN","Strips any accidental or intentional prefix, leaving only the numerical digits. R12345 or L12345 both upload purely as 12345."]
["Page","Page","Standardizes page listings into a two-digit string format. E.g., Page 4 becomes 004."]
["New Item Y/N","New Item","If left blank, it defaults to \"N\" in the database."]
["Online Exclusive Y/N","Online Exclusive","If left blank, it defaults to \"N\" in the database."]
["Order Frequency","Order Frequency","If the spreadsheet reads BAS, the macro appends replenishment logic to save it as BAS (AR)."]
["Additionally, organizational parameters (such as GMM, DMM, Buyer, and Group Name) are automatically cross-referenced and loaded into the database based on the Dept number entered into the UserForm."]
[]
["5. Step-by-Step User Instructions"]
[]
["Step 1: Prepare Your Data"]
[]
["Open your promotional spreadsheet. Ensure that row 4 contains your header mappings and that your promotional rows (below row 4) are completely filled out."]
[]
["Step 2: Highlight Rows to Export"]
[]
["Using your mouse, select the rows you want to export to the Access Database."]
[]
["Tip: You only need to highlight at least one cell in each target row; the macro looks at your entire row selection (Selection)."]
[]
["Step 3: Launch the UserForm"]
[]
["Press Ctrl + A on your keyboard (or run the macro ShowForm manually)."]
[]
["The script will look up the latest metadata from SharePoint, cache it locally in your C:\\temp\\ folder, and open the tracking form interface (frmAdItems)."]
[]
["Step 4: Populate Promotional Metadata"]
[]
["Fill out the global event details required by the form:"]
[]
["1. Enter the FY (Fiscal Year) and Week Prefix."]
[]
["2. Select your Week Suffix (Version) from the drop-down. The system will look up the corresponding promotional dates automatically."]
[]
["3. Fill in your Phone contact extension and Dept number."]
[]
["Step 5: Execute the Export"]
[]
["Click the submission/execution button on the form linked to Copy2DB."]
[]
["The macro will loop row-by-row through your selection, validate the data, map the spreadsheet columns against row 4, apply the data rules, and push the records live into the main database file located at \\\\nexad.nexweb.us\\HQ\\...."]
[]
["Step 6: Verification"]
[]
["Once finalized, a completion message will appear:"]
[]
["\"Please check your input in the Ad Database to verify. You may need to add Imaging, Parent RIN, RPC Dates or other information manually...\""]
[]
["Open your MS Access database application to verify that all rows were created successfully, checking both the RIN or Item List field (with the alpha prefix) and the Featured RIN field (numbers only)."]
[]
["6. Troubleshooting & Error Codes"]
[]
["\"Error Posting\" Message Box"]
[]
["Cause: This occurs if a data type mismatch happens. For example, if you typed letters into a column mapped to an Access database field configured strictly as a Currency or Date data type."]
[]
["Resolution: Check your selected spreadsheet rows to ensure dates, costs, and prices do not contain stray text notes."]
[]
["\"Could not connect to database...\" Input Box"]
[]
["Cause: The system cannot establish a link to AdDB.accdb. This happens due to network disruptions, a lack of disk space on the network drive, or because another user has opened the database in a destructive \"Exclusive Lock\" mode."]
[]
["Resolution: Verify your network connection to the HQ shared directory. If the path has changed, type the updated database filepath directly into the prompt box provided to update the system configuration."]

{"sheet":"Ad Week Calendar","index":1,"n_rows":104,"n_cols":5,"rows_kept":104,"cut":false,"hidden":false,"merged":[[1,0,1,4],[103,0,103,4],[0,0,0,4]]}
["NEX · AD WEEK CALENDAR"]
["Enter every ad week here. QS Week Code is required — the macro reads it to identify ad weeks in the paste. Add a new row each time you run a new ad. Multiple ad weeks can exist in the same 26-week pull."]
["Ad Week #\n(e.g. WK25)","Vehicle\n(AE / SF / X)","Ad Name / Theme","QS Week Code\n(e.g. 2025:Wk25)","Notes"]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
["TIP: The macro scans this entire table for QS Week Codes and matches them against the Data Import paste. If a code in this table is not found in the paste, that week is simply skipped — no error."]

{"sheet":"Data Import","index":2,"n_rows":4,"n_cols":13,"rows_kept":4,"cut":false,"hidden":false,"merged":[[10440,6,10440,7],[91251,6,91251,7],[44932,6,44932,7],[50353,6,50353,7],[105555,6,105555,7],[48268,6,48268,7],[21141,6,21141,7],[100149,6,100149,7],[98064,6,98064,7],[83849,6,83849,7],[81764,6,81764,7],[35445,6,35445,7],[35439,6,35439,7],[98153,6,98153,7],[96062,6,96062,7],[56878,6,56878,7],[21441,6,21441,7],[98364,6,98364,7],[35745,6,35745,7],[110699,6,110699,7],[32190,6,32190,7],[64591,6,64591,7],[13515,6,13515,7],[32707,6,32707,7],[18492,6,18492,7],[49096,6,49096,7],[14761,6,14761,7],[12676,6,12676,7],[84267,6,84267,7],[26980,6,26980,7],[15355,6,15355,7],[79244,6,79244,7],[114442,6,114442,7],[100227,6,100227,7],[15600,6,15600,7],[52683,6,52683,7],[97996,6,97996,7],[95911,6,95911,7],[11779,6,11779,7],[11954,6,11954,7],[10980,6,10980,7],[81474,6,81474,7],[14272,6,14272,7],[12765,6,12765,7],[12976,6,12976,7],[73599,6,73599,7],[27280,6,27280,7],[89988,6,89988,7],[87903,6,87903,7],[62861,6,62861,7],[60776,6,60776,7],[13276,6,13276,7],[36533,6,36533,7],[34448,6,34448,7],[77520,6,77520,7],[20233,6,20233,7],[97156,6,97156,7],[34537,6,34537,7],[74361,6,74361,7],[12742,6,12742,7],[58061,6,58061,7],[29131,6,29131,7],[27046,6,27046,7],[114231,6,114231,7],[3278,6,3278,7],[62610,6,62610,7],[66497,6,66497,7],[21561,6,21561,7],[85482,6,85482,7],[37982,6,37982,7],[93184,6,93184,7],[35897,6,35897,7],[99786,6,99786,7],[109573,6,109573,7],[107488,6,107488,7],[52286,6,52286,7],[25159,6,25159,7],[23074,6,23074,7],[102082,6,102082,7],[99997,6,99997,7],[85782,6,85782,7],[39463,6,39463,7],[4672,6,4672,7],[94392,6,94392,7],[37105,6,37105,7],[110781,6,110781,7],[108696,6,108696,7],[53494,6,53494,7],[51409,6,51409,7],[51403,6,51403,7],[114117,6,114117,7],[6179,6,6179,7],[13881,6,13881,7],[86990,6,86990,7],[37405,6,37405,7],[84899,6,84899,7],[51709,6,51709,7],[5574,6,5574,7],[12831,6,12831,7],[10746,6,10746,7],[72359,6,72359,7],[6402,6,6402,7],[104298,6,104298,7],[63400,6,63400,7],[112211,6,112211,7],[52677,6,52677,7],[6113,6,6113,7],[13815,6,13815,7],[112695,6,112695,7],[66376,6,66376,7],[98142,6,98142,7],[51817,6,51817,7],[11925,6,11925,7],[92736,6,92736,7],[83516,6,83516,7],[107040,6,107040,7],[28026,6,28026,7],[90734,6,90734,7],[88649,6,88649,7],[71759,6,71759,7],[12225,6,12225,7],[93036,6,93036,7],[90951,6,90951,7],[44632,6,44632,7],[107340,6,107340,7],[105255,6,105255,7],[11046,6,11046,7],[50870,6,50870,7],[117812,6,117812,7],[71493,6,71493,7],[9874,6,9874,7],[25088,6,25088,7],[23003,6,23003,7],[120114,6,120114,7],[12176,6,12176,7],[77131,6,77131,7],[55404,6,55404,7],[202,6,202,7],[110410,6,110410,7],[118112,6,118112,7],[116027,6,116027,7],[33698,6,33698,7],[110621,6,110621,7],[94321,6,94321,7],[77431,6,77431,7],[32201,6,32201,7],[48213,6,48213,7],[110927,6,110927,7],[31913,6,31913,7],[110921,6,110921,7],[108836,6,108836,7],[53634,6,53634,7],[7315,6,7315,7],[94621,6,94621,7],[86041,6,86041,7],[40811,6,40811,7],[53940,6,53940,7],[55115,6,55115,7],[53934,6,53934,7],[5530,6,5530,7],[24722,6,24722,7],[41111,6,41111,7],[39026,6,39026,7],[118034,6,118034,7],[44447,6,44447,7],[17326,6,17326,7],[78939,6,78939,7],[76854,6,76854,7],[17320,6,17320,7],[89977,6,89977,7],[118340,6,118340,7],[31624,6,31624,7],[55148,6,55148,7],[44747,6,44747,7],[17626,6,17626,7],[77154,6,77154,7],[17620,6,17620,7],[730,6,730,7],[77148,6,77148,7],[91458,6,91458,7],[31924,6,31924,7],[53363,6,53363,7],[5863,6,5863,7],[12465,6,12465,7],[77454,6,77454,7],[75369,6,75369,7],[37562,6,37562,7],[82875,6,82875,7],[51866,6,51866,7],[30139,6,30139,7],[3789,6,3789,7],[34393,6,34393,7],[121699,6,121699,7],[64412,6,64412,7],[97101,6,97101,7],[20178,6,20178,7],[18093,6,18093,7],[98904,6,98904,7],[39370,6,39370,7],[37285,6,37285,7],[96813,6,96813,7],[67889,6,67889,7],[59006,6,59006,7],[20389,6,20389,7],[4089,6,4089,7],[73310,6,73310,7],[64712,6,64712,7],[18393,6,18393,7],[95316,6,95316,7],[37585,6,37585,7],[118840,6,118840,7],[59306,6,59306,7],[57221,6,57221,7],[12987,6,12987,7],[10902,6,10902,7],[73610,6,73610,7],[25206,6,25206,7],[71525,6,71525,7],[18120,6,18120,7],[46483,6,46483,7],[44398,6,44398,7],[119140,6,119140,7],[117055,6,117055,7],[57521,6,57521,7],[11202,6,11202,7],[71825,6,71825,7],[106317,6,106317,7],[44698,6,44698,7],[95343,6,95343,7],[18015,6,18015,7],[111738,6,111738,7],[109653,6,109653,7],[118574,6,118574,7],[45198,6,45198,7],[9761,6,9761,7],[116789,6,116789,7],[82641,6,82641,7],[36322,6,36322,7],[34237,6,34237,7],[113245,6,113245,7],[74061,6,74061,7],[59846,6,59846,7],[36539,6,36539,7],[119597,6,119597,7],[117512,6,117512,7],[70012,6,70012,7],[19367,6,19367,7],[110999,6,110999,7],[24788,6,24788,7],[119814,6,119814,7],[42885,6,42885,7],[40800,6,40800,7],[103508,6,103508,7],[21567,6,21567,7],[100575,6,100575,7],[98490,6,98490,7],[1715,6,1715,7],[109647,6,109647,7],[9417,6,9417,7],[82526,6,82526,7],[72125,6,72125,7],[32941,6,32941,7],[80435,6,80435,7],[2015,6,2015,7],[41839,6,41839,7],[82826,6,82826,7],[25539,6,25539,7],[25533,6,25533,7],[97130,6,97130,7],[39843,6,39843,7],[9233,6,9233,7],[116766,6,116766,7],[86156,6,86156,7],[39837,6,39837,7],[37752,6,37752,7],[100466,6,100466,7],[2315,6,2315,7],[230,6,230,7],[42139,6,42139,7],[40054,6,40054,7],[25839,6,25839,7],[23754,6,23754,7],[73333,6,73333,7],[117066,6,117066,7],[38052,6,38052,7],[89939,6,89939,7],[32652,6,32652,7],[40354,6,40354,7],[2042,6,2042,7],[16352,6,16352,7],[93275,6,93275,7],[71548,6,71548,7],[16346,6,16346,7],[14261,6,14261,7],[2348,6,2348,7],[79271,6,79271,7],[32952,6,32952,7],[30861,6,30861,7],[8944,6,8944,7],[6859,6,6859,7],[93575,6,93575,7],[93569,6,93569,7],[9161,6,9161,7],[64357,6,64357,7],[79571,6,79571,7],[31167,6,31167,7],[7159,6,7159,7],[104270,6,104270,7],[102185,6,102185,7],[116489,6,116489,7],[64663,6,64663,7],[9461,6,9461,7],[23765,6,23765,7],[70078,6,70078,7],[23759,6,23759,7],[21674,6,21674,7],[86473,6,86473,7],[7459,6,7459,7],[102485,6,102485,7],[3489,6,3489,7],[121399,6,121399,7],[18959,6,18959,7],[90505,6,90505,7],[33218,6,33218,7],[116371,6,116371,7],[89688,6,89688,7],[68178,6,68178,7],[25039,6,25039,7],[274,6,274,7],[115004,6,115004,7],[268,6,268,7],[14578,6,14578,7],[14572,6,14572,7],[109598,6,109598,7],[38096,6,38096,7],[36011,6,36011,7],[115019,6,115019,7],[66615,6,66615,7],[16874,6,16874,7],[14789,6,14789,7],[52400,6,52400,7],[52617,6,52617,7],[52611,6,52611,7],[115325,6,115325,7],[36311,6,36311,7],[7387,6,7387,7],[113234,6,113234,7],[66915,6,66915,7],[5296,6,5296,7],[99019,6,99019,7],[52700,6,52700,7],[50615,6,50615,7],[28820,6,28820,7],[102496,6,102496,7],[100411,6,100411,7],[52911,6,52911,7],[45209,6,45209,7],[43124,6,43124,7],[105832,6,105832,7],[7687,6,7687,7],[113534,6,113534,7],[29126,6,29126,7],[78705,6,78705,7],[86407,6,86407,7],[29120,6,29120,7],[89743,6,89743,7],[43424,6,43424,7],[106132,6,106132,7],[104047,6,104047,7],[59813,6,59813,7],[57728,6,57728,7],[7414,6,7414,7],[79005,6,79005,7],[76920,6,76920,7],[60030,6,60030,7],[29420,6,29420,7],[21718,6,21718,7],[36022,6,36022,7],[43724,6,43724,7],[90962,6,90962,7],[98664,6,98664,7],[74662,6,74662,7],[112968,6,112968,7],[28554,6,28554,7],[114742,6,114742,7],[38857,6,38857,7],[58520,6,58520,7],[36731,6,36731,7],[80572,6,80572,7],[49962,6,49962,7],[17299,6,17299,7],[58886,6,58886,7],[122461,6,122461,7],[65174,6,65174,7],[72876,6,72876,7],[79478,6,79478,7],[48868,6,48868,7],[19944,6,19944,7],[79472,6,79472,7],[43468,6,43468,7],[51170,6,51170,7],[49085,6,49085,7],[20161,6,20161,7],[81774,6,81774,7],[79689,6,79689,7],[20155,6,20155,7],[111793,6,111793,7],[65474,6,65474,7],[63389,6,63389,7],[79778,6,79778,7],[18159,6,18159,7],[57983,6,57983,7],[41683,6,41683,7],[120691,6,120691,7],[118606,6,118606,7],[20461,6,20461,7],[15000,6,15000,7],[55987,6,55987,7],[55981,6,55981,7],[53896,6,53896,7],[79505,6,79505,7],[18459,6,18459,7],[105783,6,105783,7],[104602,6,104602,7],[58283,6,58283,7],[56198,6,56198,7],[41983,6,41983,7],[39898,6,39898,7],[118906,6,118906,7],[72587,6,72587,7],[15300,6,15300,7],[56287,6,56287,7],[106083,6,106083,7],[48796,6,48796,7],[118329,6,118329,7],[101439,6,101439,7],[41905,6,41905,7],[87224,6,87224,7],[85139,6,85139,7],[25605,6,25605,7],[85133,6,85133,7],[122210,6,122210,7],[37796,6,37796,7],[102785,6,102785,7],[45498,6,45498,7],[16574,6,16574,7],[119886,6,119886,7],[95649,6,95649,7],[97918,6,97918,7],[95833,6,95833,7],[81618,6,81618,7],[24331,6,24331,7],[54935,6,54935,7],[95922,6,95922,7],[74127,6,74127,7],[57827,6,57827,7],[40937,6,40937,7],[88431,6,88431,7],[24631,6,24631,7],[55235,6,55235,7],[63966,6,63966,7],[43447,6,43447,7],[96325,6,96325,7],[39038,6,39038,7],[101746,6,101746,7],[80764,6,80764,7],[23374,6,23374,7],[100297,6,100297,7],[86082,6,86082,7],[81438,6,81438,7],[95742,6,95742,7],[36208,6,36208,7],[34123,6,34123,7],[106883,6,106883,7],[104798,6,104798,7],[45264,6,45264,7],[33518,6,33518,7],[105109,6,105109,7],[103024,6,103024,7],[47822,6,47822,7],[114296,6,114296,7],[91262,6,91262,7],[75080,6,75080,7],[73899,6,73899,7],[27580,6,27580,7],[25495,6,25495,7],[98604,6,98604,7],[39070,6,39070,7],[88203,6,88203,7],[851,6,851,7],[115581,6,115581,7],[1068,6,1068,7],[62681,6,62681,7],[41237,6,41237,7],[39152,6,39152,7],[48939,6,48939,7],[1368,6,1368,7],[8781,6,8781,7],[46909,6,46909,7],[44824,6,44824,7],[34423,6,34423,7],[2141,6,2141,7],[2135,6,2135,7],[29213,6,29213,7],[14998,6,14998,7],[48405,6,48405,7],[17300,6,17300,7],[64794,6,64794,7],[62709,6,62709,7],[15209,6,15209,7],[21811,6,21811,7],[100537,6,100537,7],[108239,6,108239,7],[48705,6,48705,7],[7813,6,7813,7],[113660,6,113660,7],[54126,6,54126,7],[7807,6,7807,7],[5722,6,5722,7],[100837,6,100837,7],[41303,6,41303,7],[56935,6,56935,7],[76614,6,76614,7],[115163,6,115163,7],[106583,6,106583,7],[13859,6,13859,7],[67025,6,67025,7],[64940,6,64940,7],[17440,6,17440,7],[72642,6,72642,7],[52166,6,52166,7],[6250,6,6250,7],[90180,6,90180,7],[7868,6,7868,7],[11768,6,11768,7],[75657,6,75657,7],[26072,6,26072,7],[47355,6,47355,7],[12248,6,12248,7],[12531,6,12531,7],[15366,6,15366,7],[74894,6,74894,7],[79877,6,79877,7],[4366,6,4366,7],[2281,6,2281,7],[75957,6,75957,7],[26372,6,26372,7],[99481,6,99481,7],[97396,6,97396,7],[53194,6,53194,7],[60896,6,60896,7],[36888,6,36888,7],[92090,6,92090,7],[1062,6,1062,7],[46381,6,46381,7],[9694,6,9694,7],[90511,6,90511,7],[50681,6,50681,7],[1269,6,1269,7],[92907,6,92907,7],[33373,6,33373,7],[1324,6,1324,7],[16206,6,16206,7],[14121,6,14121,7],[93129,6,93129,7],[2581,6,2581,7],[1602,6,1602,7],[2532,6,2532,7],[7953,6,7953,7],[79544,6,79544,7],[22257,6,22257,7],[29959,6,29959,7],[103068,6,103068,7],[105903,6,105903,7],[43284,6,43284,7],[79810,6,79810,7],[22557,6,22557,7],[62381,6,62381,7],[103368,6,103368,7],[101283,6,101283,7],[15066,6,15066,7],[60385,6,60385,7],[103357,6,103357,7],[45124,6,45124,7],[87856,6,87856,7],[99857,6,99857,7],[105301,6,105301,7],[98044,6,98044,7],[86364,6,86364,7],[3007,6,3007,7],[10120,6,10120,7],[50154,6,50154,7],[62155,6,62155,7],[31551,6,31551,7],[47940,6,47940,7],[40823,6,40823,7],[1488,6,1488,7],[56690,6,56690,7],[73079,6,73079,7],[68947,6,68947,7],[22628,6,22628,7],[85336,6,85336,7],[83251,6,83251,7],[35751,6,35751,7],[25964,6,25964,7],[68615,6,68615,7],[74036,6,74036,7],[90805,6,90805,7],[38827,6,38827,7],[69594,6,69594,7],[93118,6,93118,7],[33584,6,33584,7],[47888,6,47888,7],[31588,6,31588,7],[58936,6,58936,7],[28326,6,28326,7],[105249,6,105249,7],[122727,6,122727,7],[6479,6,6479,7],[101505,6,101505,7],[87290,6,87290,7],[85205,6,85205,7],[30003,6,30003,7],[27918,6,27918,7],[44307,6,44307,7],[22512,6,22512,7],[15089,6,15089,7],[60907,6,60907,7],[58822,6,58822,7],[18425,6,18425,7],[82346,6,82346,7],[22812,6,22812,7],[20727,6,20727,7],[66040,6,66040,7],[94403,6,94403,7],[92318,6,92318,7],[37116,6,37116,7],[20816,6,20816,7],[59122,6,59122,7],[113751,6,113751,7],[99536,6,99536,7],[21027,6,21027,7],[37416,6,37416,7],[92618,6,92618,7],[87157,6,87157,7],[35331,6,35331,7],[35325,6,35325,7],[49635,6,49635,7],[58849,6,58849,7],[73159,6,73159,7],[83392,6,83392,7],[113996,6,113996,7],[38168,6,38168,7],[97696,6,97696,7],[38162,6,38162,7],[19187,6,19187,7],[66681,6,66681,7],[112000,6,112000,7],[52466,6,52466,7],[120953,6,120953,7],[73453,6,73453,7],[63666,6,63666,7],[13925,6,13925,7],[57153,6,57153,7],[28229,6,28229,7],[26144,6,26144,7],[87757,6,87757,7],[26138,6,26138,7],[121164,6,121164,7],[99247,6,99247,7],[106949,6,106949,7],[49662,6,49662,7],[121253,6,121253,7],[78525,6,78525,7],[15906,6,15906,7],[117427,6,117427,7],[41003,6,41003,7],[100531,6,100531,7],[76529,6,76529,7],[81540,6,81540,7],[65240,6,65240,7],[8253,6,8253,7],[79844,6,79844,7],[10294,6,10294,7],[97618,6,97618,7],[26116,6,26116,7],[81318,6,81318,7],[34999,6,34999,7],[95622,6,95622,7],[48122,6,48122,7],[103324,6,103324,7],[46037,6,46037,7],[67314,6,67314,7],[17140,6,17140,7],[58127,6,58127,7],[88731,6,88731,7],[3415,6,3415,7],[109262,6,109262,7],[3409,6,3409,7],[60596,6,60596,7],[117355,6,117355,7],[91044,6,91044,7],[100831,6,100831,7],[35842,6,35842,7],[76829,6,76829,7],[14115,6,14115,7],[28795,6,28795,7],[61202,6,61202,7],[112555,6,112555,7],[37519,6,37519,7],[76703,6,76703,7],[86924,6,86924,7],[27390,6,27390,7],[25305,6,25305,7],[6413,6,6413,7],[17229,6,17229,7],[15144,6,15144,7],[53450,6,53450,7],[110470,6,110470,7],[101288,6,101288,7],[56209,6,56209,7],[39909,6,39909,7],[99437,6,99437,7],[39903,6,39903,7],[98790,6,98790,7],[113094,6,113094,7],[113088,6,113088,7],[96788,6,96788,7],[67864,6,67864,7],[28680,6,28680,7],[105603,6,105603,7],[91388,6,91388,7],[89303,6,89303,7],[41803,6,41803,7],[89297,6,89297,7],[42978,6,42978,7],[72997,6,72997,7],[75299,6,75299,7],[28980,6,28980,7],[3948,6,3948,7],[43772,6,43772,7],[61864,6,61864,7],[37862,6,37862,7],[76174,6,76174,7],[20761,6,20761,7],[117,6,117,7],[69338,6,69338,7],[77040,6,77040,7],[53032,6,53032,7],[36142,6,36142,7],[91344,6,91344,7],[34057,6,34057,7],[55334,6,55334,7],[53249,6,53249,7],[114862,6,114862,7],[85938,6,85938,7],[9015,6,9015,7],[6930,6,6930,7],[69638,6,69638,7],[21234,6,21234,7],[77340,6,77340,7],[83942,6,83942,7],[34357,6,34357,7],[99954,6,99954,7],[105375,6,105375,7],[7230,6,7230,7],[60151,6,60151,7],[12651,6,12651,7],[67853,6,67853,7],[84242,6,84242,7],[1558,6,1558,7],[89597,6,89597,7],[32310,6,32310,7],[84197,6,84197,7],[82112,6,82112,7],[19493,6,19493,7],[65806,6,65806,7],[106203,6,106203,7],[13625,6,13625,7],[73153,6,73153,7],[21327,6,21327,7],[56853,6,56853,7],[27929,6,27929,7],[87457,6,87457,7],[25838,6,25838,7],[59155,6,59155,7],[106649,6,106649,7],[14043,6,14043,7],[105675,6,105675,7],[76751,6,76751,7],[7530,6,7530,7],[60451,6,60451,7],[10866,6,10866,7],[4137,6,4137,7],[71896,6,71896,7],[111586,6,111586,7],[5042,6,5042,7],[4074,6,4074,7],[4374,6,4374,7],[4585,6,4585,7],[4674,6,4674,7],[5282,6,5282,7],[1302,6,1302,7],[48188,6,48188,7],[69627,6,69627,7],[40703,6,40703,7],[102316,6,102316,7],[100231,6,100231,7],[86016,6,86016,7],[118004,6,118004,7],[101114,6,101114,7],[22100,6,22100,7],[14398,6,14398,7],[101108,6,101108,7],[6047,6,6047,7],[70846,6,70846,7],[21261,6,21261,7],[68755,6,68755,7],[52455,6,52455,7],[27857,6,27857,7],[83059,6,83059,7],[83931,6,83931,7],[114535,6,114535,7],[55001,6,55001,7],[37818,6,37818,7],[54213,6,54213,7],[101739,6,101739,7],[61342,6,61342,7],[40120,6,40120,7],[77731,6,77731,7],[75646,6,75646,7],[25905,6,25905,7],[23820,6,23820,7],[40209,6,40209,7],[63733,6,63733,7],[92246,6,92246,7],[40420,6,40420,7],[20744,6,20744,7],[75946,6,75946,7],[18659,6,18659,7],[54240,6,54240,7],[52155,6,52155,7],[12085,6,12085,7],[9994,6,9994,7],[11948,6,11948,7],[78063,6,78063,7],[86946,6,86946,7],[54990,6,54990,7],[98062,6,98062,7],[40775,6,40775,7],[79064,6,79064,7],[14698,6,14698,7],[22400,6,22400,7],[109724,6,109724,7],[99323,6,99323,7],[17000,6,17000,7],[72202,6,72202,7],[14909,6,14909,7],[77623,6,77623,7],[77617,6,77617,7],[75532,6,75532,7],[31298,6,31298,7],[9953,6,9953,7],[91873,6,91873,7],[48734,6,48734,7],[12750,6,12750,7],[91847,6,91847,7],[52663,6,52663,7],[67293,6,67293,7],[90817,6,90817,7],[38081,6,38081,7],[88489,6,88489,7],[86404,6,86404,7],[122281,6,122281,7],[60662,6,60662,7],[98273,6,98273,7],[96188,6,96188,7],[44362,6,44362,7],[77051,6,77051,7],[74966,6,74966,7],[60751,6,60751,7],[120234,6,120234,7],[102016,6,102016,7],[85716,6,85716,7],[93418,6,93418,7],[64494,6,64494,7],[40486,6,40486,7],[117583,6,117583,7],[117672,6,117672,7],[117883,6,117883,7],[35559,6,35559,7],[25772,6,25772,7],[121098,6,121098,7],[121398,6,121398,7],[120414,6,120414,7],[118629,6,118629,7],[92552,6,92552,7],[35259,6,35259,7],[97973,6,97973,7],[76246,6,76246,7],[122161,6,122161,7],[120980,6,120980,7],[119206,6,119206,7],[117121,6,117121,7],[121747,6,121747,7],[107532,6,107532,7],[121981,6,121981,7],[62447,6,62447,7],[60362,6,60362,7],[107766,6,107766,7],[105681,6,105681,7],[46147,6,46147,7],[120207,6,120207,7],[118238,6,118238,7],[39729,6,39729,7],[87223,6,87223,7],[110747,6,110747,7],[118449,6,118449,7],[75310,6,75310,7],[73225,6,73225,7],[73219,6,73219,7],[118538,6,118538,7],[116453,6,116453,7],[87529,6,87529,7],[50424,6,50424,7],[87523,6,87523,7],[48339,6,48339,7],[111047,6,111047,7],[32627,6,32627,7],[30542,6,30542,7],[48639,6,48639,7],[80566,6,80566,7],[78481,6,78481,7],[64266,6,64266,7],[112794,6,112794,7],[33780,6,33780,7],[112788,6,112788,7],[121601,6,121601,7],[119516,6,119516,7],[110962,6,110962,7],[121290,6,121290,7],[116419,6,116419,7],[114417,6,114417,7],[112332,6,112332,7],[116719,6,116719,7],[114634,6,114634,7],[94903,6,94903,7],[92818,6,92818,7],[33284,6,33284,7],[49673,6,49673,7],[47588,6,47588,7],[119668,6,119668,7],[119446,6,119446,7],[31522,6,31522,7],[9543,6,9543,7],[105441,6,105441,7],[72251,6,72251,7],[50572,6,50572,7],[119617,6,119617,7],[111078,6,111078,7],[114659,6,114659,7],[112874,6,112874,7],[112852,6,112852,7],[118672,6,118672,7],[109044,6,109044,7],[94829,6,94829,7],[92744,6,92744,7],[92738,6,92738,7],[35451,6,35451,7],[19151,6,19151,7],[71038,6,71038,7],[21453,6,21453,7],[121379,6,121379,7],[61845,6,61845,7],[100157,6,100157,7],[42870,6,42870,7],[42864,6,42864,7],[40779,6,40779,7],[105578,6,105578,7],[83851,6,83851,7],[26564,6,26564,7],[121590,6,121590,7],[64303,6,64303,7],[76366,6,76366,7],[28866,6,28866,7],[26781,6,26781,7],[76360,6,76360,7],[104118,6,104118,7],[19487,6,19487,7],[120023,6,120023,7],[96716,6,96716,7],[39429,6,39429,7],[19787,6,19787,7],[96710,6,96710,7],[94625,6,94625,7],[17702,6,17702,7],[80410,6,80410,7],[118149,6,118149,7],[82712,6,82712,7],[80627,6,80627,7]],"merged_total":122975,"flags":["merged_cut"]}
["NEX · QUANTASENSE DATA IMPORT"]
["Paste your QuantaSense export starting at row 5. Pull up to 26 weeks of data — include all ad weeks you want to analyze plus surrounding baseline weeks. Pull your full category group. Same column structure always applies."]
["COLUMN ORDER MUST MATCH: SKU | Style NEW | Week | Metrics | Sales $ | Sales U LC26W | Sales U | Sales $ LC26W  -- Pull Trailing 26 Complete Weeks with LC26W metrics selected in QuantaSense."]
["Group","Dept","Class","Sub-Class","SKU","Style NEW","Week","Metrics","Sales $","Sales U","Sales $ LC26W","Sales U LC26W","Inv OH U LC26W"]

{"sheet":"Ad Summary","index":3,"n_rows":5,"n_cols":18,"rows_kept":5,"cut":false,"hidden":false,"merged":[[2,14,2,16],[2,0,2,2],[2,12,2,13]]}
["NEX · AD ELASTICITY SUMMARY"]
["Run BuildAdSummary to populate. Paste QuantaSense data into Data Import first. Filter by Verdict or sort by Lift %. Predecessor lookup: enter Parent RIN in search box and run LookupPredecessor."]
["Run: Macros > BuildAdSummary",null,null,"Ad Weeks:","2025:Wk31",null,"Count:","635 Transaction RINs","Last Run:","auto-filled","Last run: May 20 2026 12:23 PM","Predecessor:","Enter predecessor Parent RIN here",null,"Run: Macros > LookupPredecessor",null,null,640]
[]
["Ad Week","Parent RIN","Transaction RIN","Description","Ad Wk Units","Ad Wk Rev ($)","Baseline Avg/Wk","Baseline Weeks","Unit Lift","Lift %","Rev Lift ($)","Verdict","Average Selling Price","Group","Dept","Class","Sub-Class"]

{"sheet":"Lift Query","index":4,"n_rows":16,"n_cols":17,"rows_kept":16,"cut":false,"hidden":false,"merged":[[7,0,7,7]]}
["LIFT QUERY"]
[null,"Inputs Go Here"]
["Ad Week(s):"]
["Description contains:"]
["Class contains:"]
["Sub-Class contains:"]
[]
["RESULTS"]
["SKUs matched:"]
["Total Ad Units:"]
["Total Ad Rev:"]
["Total Unit Lift:"]
["Total Rev Lift:"]
["Weighted Lift %:"]
[]
["Ad Week","Parent RIN","Transaction RIN","Description","Ad Wk Units","Ad Wk Rev ($)","Baseline Avg/Wk","Baseline Weeks","Unit Lift","Lift %","Rev Lift ($)","Verdict","Avg Selling Price","Group","Dept","Class","Sub-Class"]

{"sheet":"Ad Week Planner","index":5,"n_rows":89,"n_cols":21,"rows_kept":89,"cut":false,"hidden":false,"merged":[[4,4,4,5],[80,0,80,19],[82,0,82,19],[81,0,81,19],[5,4,5,5],[88,0,88,19],[79,0,79,19],[1,0,1,19],[2,4,2,5],[0,0,0,19],[87,0,87,19],[86,0,86,19],[85,0,85,19],[5,1,5,2],[83,0,83,19],[4,1,4,2],[3,1,3,5],[6,1,6,5],[84,0,84,19],[2,1,2,2],[7,0,7,19]]}
["NEX · AD WEEK PLANNER"]
["Fill context below. Use Ad Elasticity Summary and Comparable Items tabs to inform item selection. Set INCLUDE? = YES when finalized. Run ExportToPowerPoint to build the slide."]
["Ad Week #:",null,null,"Vehicle (AE/SF/X/LE/HL):"]
["Theme / Anchor:"]
["Ad Start Date:",null,null,"Ad End Date:"]
["LY Ad Week #:",null,null,"LY Theme:"]
["LY Pages Ran:"]
["▶  EXPORT TO POWERPOINT:  Complete rows below → set INCLUDE? = YES  →  Developer tab → Macros → ExportToPowerPoint → Run  |  First-time setup: see '⚙ VBA Setup' tab"]
["Trans RIN","Parent RIN","VPN","UPC","Cost","Retail","Description","Promo\nPrice","Savings","Call Out\n(New, Special Pricing, Other Info)","Ad Info","Predecessor\nRIN","LY Ad\nUnits","LY Units\nLift %","LY Rev\nLift ($)","Curr\nIOH","GM %","Vendor\nFunded?","Elasticity\n(LY)","INCLUDE?","Brand"]
[null,null,null,null,null,null,null,null,{"$f":"F10-H10","v":0},null,null,null,{"$f":"VLOOKUP(L10,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L10,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L10,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$f":"IF(N10=\"\",\"\",IF(N10>=0.5,\"STRONG\",IF(N10>=0.2,\"MODERATE\",\"WEAK\")))","v":{"$error":"#N/A"}},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G10)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,{"$f":"F11-H11","v":0},null,null,null,{"$f":"VLOOKUP(L11,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L11,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L11,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G11)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L12,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L12,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L12,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G12)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L13,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L13,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L13,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G13)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L14,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L14,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L14,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G14)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L15,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L15,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L15,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G15)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L16,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L16,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L16,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},"YES",{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G16)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L17,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L17,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L17,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G17)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L18,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L18,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L18,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G18)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L19,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L19,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L19,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G19)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L20,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L20,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L20,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G20)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L21,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L21,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L21,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G21)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L22,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L22,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L22,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G22)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L23,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L23,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L23,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G23)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L24,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L24,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L24,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G24)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L25,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L25,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L25,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G25)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L26,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L26,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L26,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G26)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L27,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L27,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L27,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G27)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L28,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L28,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L28,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G28)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L29,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L29,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L29,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G29)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L30,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L30,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L30,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G30)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L31,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L31,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L31,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G31)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L32,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L32,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L32,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G32)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L33,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L33,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L33,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G33)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L34,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L34,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L34,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G34)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L35,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L35,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L35,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G35)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L36,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L36,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L36,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G36)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L37,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L37,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L37,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G37)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L38,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L38,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L38,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G38)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L39,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L39,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L39,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G39)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L40,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L40,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L40,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G40)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L41,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L41,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L41,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G41)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L42,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L42,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L42,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$f":"IF(N42=\"\",\"\",IF(N42>=0.5,\"STRONG\",IF(N42>=0.2,\"MODERATE\",\"WEAK\")))","v":{"$error":"#N/A"}},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G42)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L43,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L43,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L43,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G43)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L44,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L44,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L44,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G44)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L45,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L45,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L45,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G45)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L46,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L46,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L46,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G46)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L47,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L47,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L47,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G47)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L48,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L48,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L48,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G48)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L49,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L49,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L49,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G49)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L50,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L50,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L50,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G50)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L51,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L51,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L51,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G51)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L52,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L52,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L52,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G52)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L53,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L53,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L53,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G53)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L54,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L54,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L54,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G54)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L55,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L55,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L55,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G55)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L56,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L56,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L56,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G56)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L57,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L57,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L57,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G57)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L58,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L58,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L58,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G58)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L59,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L59,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L59,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G59)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L60,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L60,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L60,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G60)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L61,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L61,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L61,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G61)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L62,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L62,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L62,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G62)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L63,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L63,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L63,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G63)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L64,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L64,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L64,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G64)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L65,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L65,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L65,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G65)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L66,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L66,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L66,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G66)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L67,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L67,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L67,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G67)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L68,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L68,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L68,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G68)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L69,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L69,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L69,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G69)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L70,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L70,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L70,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G70)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L71,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L71,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L71,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G71)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L72,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L72,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L72,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G72)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L73,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L73,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L73,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G73)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L74,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L74,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L74,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$f":"IF(N74=\"\",\"\",IF(N74>=0.5,\"STRONG\",IF(N74>=0.2,\"MODERATE\",\"WEAK\")))","v":{"$error":"#N/A"}},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G74)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,{"$f":"F75-H75","v":0},null,null,null,{"$f":"VLOOKUP(L75,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L75,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L75,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G75)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L76,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L76,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L76,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G76)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L77,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L77,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L77,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G77)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,0,null,null,null,{"$f":"VLOOKUP(L78,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L78,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L78,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G78)), 0)), \"\")","v":""}]
[null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"VLOOKUP(L79,'Ad Summary'!C:K,3,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L79,'Ad Summary'!C:K,8,FALSE)","v":{"$error":"#N/A"}},{"$f":"VLOOKUP(L79,'Ad Summary'!C:K,9,FALSE)","v":{"$error":"#N/A"}},null,null,null,{"$error":"#N/A"},null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G79)), 0)), \"\")","v":""}]
["HOW TO USE THIS PLANNER",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G80)), 0)), \"\")","v":""}]
["1.  Enter the Ad Week # and Vehicle in the context block above. Also add the flight to the Ad Week Calendar tab.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G81)), 0)), \"\")","v":""}]
["2.  Enter the PARENT RIN (Style NEW number only — digits before the colon) for each product being considered.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G82)), 0)), \"\")","v":""}]
["3.  NEW ITEMS: If the product is new this year with no LY data, enter the predecessor's Parent RIN in the Predecessor column so the tracker can use it as the LY baseline.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G83)), 0)), \"\")","v":""}]
["4.  RIN: enter the transaction RIN if the item is already built in the system. Leave TBD for brand-new items.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G84)), 0)), \"\")","v":""}]
["5.  Also Available: enter variant info in free text — e.g.  256GB: ModelABC RIN1234 | 512GB: ModelXYZ TBD",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G85)), 0)), \"\")","v":""}]
["6.  Pull LY performance from QuantaSense: ad flight dates + same dates LY, all Parent RINs in the group, paste into Data Import tab.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G86)), 0)), \"\")","v":""}]
["7.  Set INCLUDE? = YES / NO / REVIEW for each item. Only YES rows export to PowerPoint.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G87)), 0)), \"\")","v":""}]
["8.  Click Export to PowerPoint. Choose your layout. File saves next to this workbook automatically.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G88)), 0)), \"\")","v":""}]
["9.  After the ad runs, paste the post-flight QuantaSense data into the Data Import tab. Performance Log builds over time.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"$f":"IFERROR(INDEX(BrandList!$A$2:$A$1000, MATCH(TRUE, ISNUMBER(SEARCH(TRIM(BrandList!$A$2:$A$1000), G89)), 0)), \"\")","v":""}]

{"sheet":"Ad Database Import","index":6,"n_rows":359,"n_cols":47,"rows_kept":359,"cut":false,"hidden":false,"merged":[[2,35,2,36],[2,1,2,6],[2,7,2,10],[2,11,2,24],[2,26,2,29],[2,30,2,34]]}
[]
[]
["Week","ITEM INFO",null,null,null,null,null,"MARKETING",null,null,null,"PRICING",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"IMAGE",null,null,null,"ORDER INFO",null,null,null,null,"COOP"]
["Wk","Supplier #","Supplier Name","RIN","Style #   (VPN)","Item Description (as will appear in Ad)","Ad Information (as will appear in Ad)","Page","Priority","New Item Y/N","Online Exclusive Y/N","% OFF","$ OFF","FIXED","NoChg","NEX Price","Adv Price","Change Type","MSRP","% Off MSRP","NEX Cost","Adv Cost","Pricing Strategy","Multi Buy","Billback","Call Outs","Grouping Info","SAMPLES","IMAGE","AD GROUPING","Order Frequency","BULK BUY?","OTB Locations \n (Not on POG)","PO#s","Units","Coop $","COOP COLLECT","YEAR","DEPT ","CLASS","THEME","PARENT","Reg Cost","REG GM%","START DATE","END DATE","SOH \n1.29.26"]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,"YFB",null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]
[null,null,null,null,null,null,null,null,null,"N","N",null,null,null,null,null,null,"FIXED",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2026]

{"sheet":"BrandList","index":7,"n_rows":1,"n_cols":1,"rows_kept":1,"cut":false,"hidden":false,"merged":[]}
["Brand List"]

{"sheet":"Ad Tracker","index":8,"n_rows":10,"n_cols":15,"rows_kept":10,"cut":false,"hidden":false,"merged":[[0,0,0,14]]}
["AD TRACKER  -  Historical record of every PowerPoint export"]
[]
["Export Date","Ad Week","Vehicle","Start Date","End Date","Brand","Trans RIN","Parent RIN","VPN","Description","Cost","Retail","Promo Price","Savings","Call Out"]
["2026-05-29T14:18:17",30,"FE",0,19407452,19191152,"EP233670","Microsoft Surface Pro 12-Inch Copilot Plus PC 16GB Platinum 256GB",948.56,999.99,"TBD"]
["2026-05-29T14:18:17",30,"FE",0,19407453,19191151,"EP236981","Microsoft Surface Laptop 13-Inch Copilot Plus PC Snapdragon X Plus 16GB Platinum 256GB_D",1038.9000000000001,1099.99,"TBD"]
["2026-05-29T14:18:17",30,"FE",0,19437855,19437852,"EP2-32341","Microsoft 365 Military Appreciation Edition",85.53,99.99,"TBD"]
["2026-05-29T14:18:17",30,"FE",0,19437855,19437852,"EP2-32341","Microsoft 365 Military Appreciation Edition",85.53,99.99,"TBD"]
["2026-05-29T14:18:17",30,"FE",0,19191169,19191154,"EP219862","Microsoft Surface Thunderbolt Dock Black",134.1268,179.99,"TBD"]
["2026-05-29T14:18:17",30,"FE",0,17087865,17087863,"8XA00168","Microsoft Surface Pro Keyboard with Pen Storage Black",116.17,159.99,"TBD"]
["2026-05-29T14:18:17",30,"FE",0,"TBD",null,null,"NEW ITEM",null,null,"TBD"]

{"sheet":"⚙ VBA Setup","index":9,"n_rows":1286,"n_cols":1,"rows_kept":1286,"cut":false,"hidden":false,"merged":[[1,0,1,0],[4,0,4,0],[0,0,0,0],[5,0,5,0],[811,0,811,0],[3,0,3,0],[2,0,2,0],[6,0,6,0]]}
["NEX AD TRACKER — VBA Macro Setup"]
["This workbook uses three macros: BuildAdSummary, BuildComparables, and ExportToPowerPoint. All three live in separate modules. Setup is one-time only."]
["  STEP 1:  Press Alt + F11 to open the VBA Editor"]
["  STEP 2:  For EACH macro below — click Insert > Module, paste the code, then close and repeat for the next one"]
["  STEP 3:  After pasting all three macros, press Ctrl+S in Excel and save as .xlsm when prompted"]
["  STEP 4:  Always open the .xlsm version going forward — the .xlsx version will not run macros"]
["  STEP 5:  AE_and_FE_Templates.pptx, Email_Templates.pptx, Large_Event_Template.pptx, and 8-grid_Holiday_Layout.pptx must be in the same folder as this workbook for PowerPoint export"]
["  STEP 6:  To run macros: Developer tab > Macros > select macro name > Run.  If Developer tab is not visible: File > Options > Customize Ribbon > check Developer."]
["  STEP 7:  Insert two UserForms for the week and group selectors (replaces the old temp-sheet approach):"]
["           Right-click VBAProject > Insert > UserForm > set (Name) = frmWeekSelector > Caption = \"Select Ad Week(s) to Analyze\""]
["           Add: ListBox (lstWeeks), 2 buttons (btnSelectAll, btnDeselectAll), btnConfirm, btnCancel. See UserForm code below."]
["  STEP 8:  Create second UserForm: (Name) = frmGroupSelector > Caption = \"Select Group(s) to Import\""]
["           Add: ListBox (lstGroups), 2 buttons (btnSelectAll, btnDeselectAll), btnConfirm, btnCancel. See UserForm code below."]
["  NOTE:    After inserting UserForms, delete the old button handler subs: WeekSelectorSelectAll/DeselectAll/Confirm/Cancel and GroupSelectorSelectAll/DeselectAll/Confirm/Cancel"]
[]
["══════════════════════════════════════════════════════════════════"]
["  USERFORM REPLACEMENT FOR WEEK SELECTOR AND GROUP SELECTOR"]
["  NEX Ad Planner v17 — Replace temp-sheet selectors with UserForms"]
["══════════════════════════════════════════════════════════════════"]
[]
["These UserForms replace the _WeekSelector and _GroupSelector"]
["temporary sheets. Instead of creating/deleting hidden sheets"]
["with ActiveX checkboxes (slow to populate), the macros now"]
["show a lightweight VBA UserForm dialog with a ListBox."]
[]
["SETUP INSTRUCTIONS (one-time):"]
["──────────────────────────────"]
["1. Open VBA Editor (Alt+F11)"]
["2. In the Project Explorer, right-click \"VBAProject (NEX_Ad_Planner_v17)\""]
["3. Click Insert > UserForm"]
["4. In the Properties window (bottom-left), set (Name) = frmWeekSelector"]
["5. Set Caption = \"Select Ad Week(s) to Analyze\""]
["6. Set Width = 320, Height = 380"]
["7. Add these controls (use the Toolbox to drag them onto the form):"]
[]
["   Control        Name              Properties"]
["   ─────────      ──────────────    ──────────────────────────────"]
["   ListBox        lstWeeks          Top=10, Left=10, Width=295, Height=260"]
["                                    MultiSelect = fmMultiSelectMulti"]
["                                    ListStyle = fmListStyleOption"]
["   CommandButton  btnSelectAll      Top=280, Left=10, Width=70, Height=24"]
["                                    Caption = \"Select All\""]
["   CommandButton  btnDeselectAll    Top=280, Left=85, Width=70, Height=24"]
["                                    Caption = \"Deselect All\""]
["   CommandButton  btnConfirm        Top=320, Left=10, Width=140, Height=28"]
["                                    Caption = \"Confirm Selection\""]
["   CommandButton  btnCancel         Top=320, Left=160, Width=140, Height=28"]
["                                    Caption = \"Cancel\""]
[]
["8. Double-click the form and paste this code into the form's code window:"]
[]
["═══ BEGIN frmWeekSelector CODE ═══════════════════════════════════"]
[]
["Option Explicit"]
[]
["Public SelectedWeeks As String    ' comma-separated result"]
["Public Cancelled As Boolean"]
[]
["Private Sub UserForm_Initialize()"]
["    Cancelled = True"]
["    SelectedWeeks = \"\""]
["End Sub"]
[]
["Private Sub btnSelectAll_Click()"]
["    Dim i As Long"]
["    For i = 0 To lstWeeks.ListCount - 1"]
["        lstWeeks.Selected(i) = True"]
["    Next i"]
["End Sub"]
[]
["Private Sub btnDeselectAll_Click()"]
["    Dim i As Long"]
["    For i = 0 To lstWeeks.ListCount - 1"]
["        lstWeeks.Selected(i) = False"]
["    Next i"]
["End Sub"]
[]
["Private Sub btnConfirm_Click()"]
["    Dim i As Long"]
["    Dim result As String"]
["    result = \"\""]
["    For i = 0 To lstWeeks.ListCount - 1"]
["        If lstWeeks.Selected(i) Then"]
["            If result <> \"\" Then result = result & \", \""]
["            result = result & lstWeeks.List(i)"]
["        End If"]
["    Next i"]
["    If result = \"\" Then"]
["        MsgBox \"No weeks selected. Check at least one week.\", vbExclamation, \"NEX\""]
["        Exit Sub"]
["    End If"]
["    SelectedWeeks = result"]
["    Cancelled = False"]
["    Me.Hide"]
["End Sub"]
[]
["Private Sub btnCancel_Click()"]
["    Cancelled = True"]
["    Me.Hide"]
["End Sub"]
[]
["Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)"]
["    If CloseMode = vbFormControlMenu Then"]
["        Cancel = True"]
["        Cancelled = True"]
["        Me.Hide"]
["    End If"]
["End Sub"]
[]
["═══ END frmWeekSelector CODE ═════════════════════════════════════"]
[]
[]
["9. Now create the GroupSelector form. Right-click VBAProject again:"]
["   Insert > UserForm"]
["10. Set (Name) = frmGroupSelector"]
["11. Set Caption = \"Select Group(s) to Import\""]
["12. Set Width = 420, Height = 380"]
["13. Add these controls:"]
[]
["   Control        Name              Properties"]
["   ─────────      ──────────────    ──────────────────────────────"]
["   ListBox        lstGroups         Top=10, Left=10, Width=395, Height=260"]
["                                    MultiSelect = fmMultiSelectMulti"]
["                                    ListStyle = fmListStyleOption"]
["   CommandButton  btnSelectAll      Top=280, Left=10, Width=70, Height=24"]
["                                    Caption = \"Select All\""]
["   CommandButton  btnDeselectAll    Top=280, Left=85, Width=70, Height=24"]
["                                    Caption = \"Deselect All\""]
["   CommandButton  btnConfirm        Top=320, Left=10, Width=195, Height=28"]
["                                    Caption = \"Confirm Selection\""]
["   CommandButton  btnCancel         Top=320, Left=215, Width=195, Height=28"]
["                                    Caption = \"Cancel\""]
[]
["14. Double-click the form and paste this code:"]
[]
["═══ BEGIN frmGroupSelector CODE ══════════════════════════════════"]
[]
["Option Explicit"]
[]
["Public SelectedGroups As String   ' pipe-separated result for internal use"]
["Public Cancelled As Boolean"]
[]
["Private Sub UserForm_Initialize()"]
["    Cancelled = True"]
["    SelectedGroups = \"\""]
["End Sub"]
[]
["Private Sub btnSelectAll_Click()"]
["    Dim i As Long"]
["    For i = 0 To lstGroups.ListCount - 1"]
["        lstGroups.Selected(i) = True"]
["    Next i"]
["End Sub"]
[]
["Private Sub btnDeselectAll_Click()"]
["    Dim i As Long"]
["    For i = 0 To lstGroups.ListCount - 1"]
["        lstGroups.Selected(i) = False"]
["    Next i"]
["End Sub"]
[]
["Private Sub btnConfirm_Click()"]
["    Dim i As Long"]
["    Dim result As String"]
["    result = \"\""]
["    For i = 0 To lstGroups.ListCount - 1"]
["        If lstGroups.Selected(i) Then"]
["            If result <> \"\" Then result = result & \"|\""]
["            result = result & lstGroups.List(i)"]
["        End If"]
["    Next i"]
["    If result = \"\" Then"]
["        MsgBox \"No groups selected. Check at least one group.\", vbExclamation, \"NEX\""]
["        Exit Sub"]
["    End If"]
["    SelectedGroups = result"]
["    Cancelled = False"]
["    Me.Hide"]
["End Sub"]
[]
["Private Sub btnCancel_Click()"]
["    Cancelled = True"]
["    Me.Hide"]
["End Sub"]
[]
["Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)"]
["    If CloseMode = vbFormControlMenu Then"]
["        Cancel = True"]
["        Cancelled = True"]
["        Me.Hide"]
["    End If"]
["End Sub"]
[]
["═══ END frmGroupSelector CODE ════════════════════════════════════"]
[]
[]
["══════════════════════════════════════════════════════════════════"]
["  HOW THE MACROS USE THE USERFORMS"]
["══════════════════════════════════════════════════════════════════"]
[]
["WEEK SELECTOR (in NEX_BuildAdSummary module):"]
["─────────────────────────────────────────────"]
["The old code created a _WeekSelector sheet with checkboxes, then"]
["exited. The user clicked Confirm which called WeekSelectorConfirm."]
[]
["The NEW code replaces that two-step pattern with a single-step flow:"]
[]
["  1. BuildAdSummary scans unique weeks from the paste (same as before)"]
["  2. Instead of building a sheet, it populates frmWeekSelector.lstWeeks"]
["  3. Calls frmWeekSelector.Show vbModal — macro PAUSES here"]
["  4. When the user clicks Confirm or Cancel, the form hides"]
["  5. Macro reads frmWeekSelector.SelectedWeeks and continues"]
["  6. No temp sheet created or deleted. No button handler subs needed."]
[]
["Replace the \"Build week selector sheet\" section in BuildAdSummary"]
["with this code block:"]
[]
["═══ REPLACEMENT CODE FOR BuildAdSummary WEEK SELECTION ═══════════"]
[]
["    ' -- Show week selector UserForm --"]
["    Dim frm As frmWeekSelector"]
["    Set frm = New frmWeekSelector"]
["    "]
["    ' Populate the listbox with sorted unique weeks"]
["    Dim ww As Long"]
["    For ww = 1 To m_uniqueWeekCount"]
["        frm.lstWeeks.AddItem m_uniqueWeeks(ww)"]
["    Next ww"]
["    "]
["    ' Pre-select all weeks"]
["    For ww = 0 To frm.lstWeeks.ListCount - 1"]
["        frm.lstWeeks.Selected(ww) = True"]
["    Next ww"]
["    "]
["    frm.Show vbModal"]
["    "]
["    If frm.Cancelled Then"]
["        Application.StatusBar = False"]
["        Application.ScreenUpdating = True"]
["        MsgBox \"No weeks selected. Macro cancelled.\", vbInformation, \"NEX\""]
["        Unload frm"]
["        Exit Sub"]
["    End If"]
["    "]
["    userInput = frm.SelectedWeeks"]
["    Unload frm"]
["    "]
["    ' Build selAdWeeks dictionary from userInput (same as before)"]
["    Dim selAdWeeks As Object"]
["    Set selAdWeeks = CreateObject(\"Scripting.Dictionary\")"]
["    Dim adWeekArr() As String"]
["    adWeekArr = Split(userInput, \",\")"]
["    For ww = 0 To UBound(adWeekArr)"]
["        Dim trimCode As String"]
["        trimCode = UCase(Trim(adWeekArr(ww)))"]
["        If trimCode <> \"\" And Not selAdWeeks.Exists(trimCode) Then"]
["            selAdWeeks.Add trimCode, 1"]
["        End If"]
["    Next ww"]
["    "]
["    If selAdWeeks.Count = 0 Then"]
["        MsgBox \"No weeks checked. Macro cancelled.\", vbInformation, \"NEX\""]
["        Exit Sub"]
["    End If"]
[]
["═══ END REPLACEMENT ══════════════════════════════════════════════"]
[]
["This replaces everything from \"Build week selector sheet\" through"]
["\"Step 1 complete\" AND the entire WeekSelectorConfirm sub. The"]
["WeekSelectorSelectAll, WeekSelectorDeselectAll, WeekSelectorCancel"]
["subs are also no longer needed (the form handles all of that)."]
[]
[]
["GROUP SELECTOR (in NEX_ImportDataDump module):"]
["──────────────────────────────────────────────"]
["Same pattern. Replace the \"Build selector sheet\" section with:"]
[]
["═══ REPLACEMENT CODE FOR ImportDataDump GROUP SELECTION ══════════"]
[]
["    ' -- Show group selector UserForm --"]
["    Dim frm As frmGroupSelector"]
["    Set frm = New frmGroupSelector"]
["    "]
["    ' Populate the listbox with sorted unique groups"]
["    Dim gi As Long"]
["    For gi = 1 To m_grpCount"]
["        frm.lstGroups.AddItem m_grpKeys(gi)"]
["    Next gi"]
["    "]
["    ' Pre-select all groups"]
["    For gi = 0 To frm.lstGroups.ListCount - 1"]
["        frm.lstGroups.Selected(gi) = True"]
["    Next gi"]
["    "]
["    frm.Show vbModal"]
["    "]
["    If frm.Cancelled Then"]
["        ' Restore settings and exit"]
["        Call RestoreSettings"]
["        MsgBox \"Import cancelled. Data Import not modified.\", vbInformation, \"NEX\""]
["        Unload frm"]
["        Exit Sub"]
["    End If"]
["    "]
["    ' Build selected groups dictionary"]
["    Dim selGroups As Object"]
["    Set selGroups = CreateObject(\"Scripting.Dictionary\")"]
["    Dim grpArr() As String"]
["    grpArr = Split(frm.SelectedGroups, \"|\")"]
["    Dim gg As Long"]
["    For gg = 0 To UBound(grpArr)"]
["        If Not selGroups.Exists(grpArr(gg)) Then"]
["            selGroups.Add grpArr(gg), 1"]
["        End If"]
["    Next gg"]
["    Unload frm"]
["    "]
["    If selGroups.Count = 0 Then"]
["        Call RestoreSettings"]
["        MsgBox \"No groups selected. Import cancelled.\", vbInformation, \"NEX\""]
["        Exit Sub"]
["    End If"]
[]
["═══ END REPLACEMENT ══════════════════════════════════════════════"]
[]
["This replaces everything from \"Build selector sheet\" through"]
["\"Macro exits here\" AND the entire GroupSelectorConfirm sub. The"]
["GroupSelectorSelectAll, GroupSelectorDeselectAll, GroupSelectorCancel"]
["subs are also no longer needed."]
[]
[]
["══════════════════════════════════════════════════════════════════"]
["  SUBS TO DELETE (no longer needed)"]
["══════════════════════════════════════════════════════════════════"]
[]
["In NEX_BuildAdSummary module, DELETE these subs:"]
["  - WeekSelectorSelectAll"]
["  - WeekSelectorDeselectAll"]
["  - WeekSelectorConfirm  (logic is now inline in BuildAdSummary)"]
["  - WeekSelectorCancel"]
[]
["In NEX_ImportDataDump module, DELETE these subs:"]
["  - GroupSelectorSelectAll"]
["  - GroupSelectorDeselectAll"]
["  - GroupSelectorConfirm  (logic is now inline in ImportDataDump)"]
["  - GroupSelectorCancel"]
[]
[]
["══════════════════════════════════════════════════════════════════"]
["  BENEFITS OF USERFORM APPROACH"]
["══════════════════════════════════════════════════════════════════"]
[]
["  • Instant popup — no sheet creation, no ActiveX checkbox rendering"]
["  • No temp sheets left behind if Excel crashes mid-macro"]
["  • Single-step macro flow (no two-step pattern with button callbacks)"]
["  • Modal dialog blocks interaction until user confirms or cancels"]
["  • Cleaner VBA project — fewer button handler subs"]
["  • Same UX: Select All, Deselect All, Confirm, Cancel"]
["                      pAdR = pAdR + adR(kk)"]
["                      If pDesc = \"\" Then pDesc = descArr(kk)"]
["► MODULE 3: ExportToPowerPoint — Updated v17. Paste into a third new module. DELETE the old Module 3 first."]
["  Option Explicit"]
[]
["  ' ================================================================"]
["  ' MODULE 3: ExportToPowerPoint (v17)"]
["  ' Exports Ad Week Planner items marked YES to PowerPoint."]
["  ' Supports AE/FE, EMAIL, LE (Large Event), and HL (Holiday Layout)."]
["  ' Appends all exported items to the Ad Tracker tab with full"]
["  ' 15-column layout including Start Date and End Date."]
["  ' ================================================================"]
[]
["  Sub ExportToPowerPoint()"]
[]
["      Dim ws As Worksheet"]
["      Set ws = ThisWorkbook.Sheets(\"Ad Week Planner\")"]
[]
["      Dim adWeek As String, vehicle As String"]
["      Dim startDate As Variant, endDate As Variant"]
["      Dim itemCount As Long, i As Long, r As Long"]
["      Dim savePath As Variant"]
["      Dim pptApp As Object, pptPres As Object"]
["      Dim templatePath As String, templateFile As String"]
["      Dim layoutChoice As String, slotCount As Long"]
["      Dim savedCalc As Long, savedEvents As Boolean"]
["      Dim savedScreen As Boolean, savedAlerts As Boolean"]
[]
["      adWeek  = Trim(CStr(ws.Range(\"B3\").Value))"]
["      vehicle = Trim(UCase(CStr(ws.Range(\"E3\").Value)))"]
[]
["      If adWeek = \"\" Then"]
["          MsgBox \"Fill in Ad Week in cell B3 before exporting.\", vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      ' Validate Brand column header"]
["      If UCase(Trim(CStr(ws.Cells(9, 20).Value))) <> \"BRAND\" Then"]
["          MsgBox \"Column T row 9 must be labeled 'Brand'.\" & vbCrLf & _"]
["                 \"Found: '\" & ws.Cells(9, 20).Value & \"'\" & vbCrLf & vbCrLf & _"]
["                 \"Add or restore the Brand column header before exporting.\", _"]
["                 vbExclamation, \"NEX - Setup Issue\""]
["          Exit Sub"]
["      End If"]
[]
["      ' Read Start Date and End Date from planner"]
["      startDate = ws.Range(\"B5\").Value"]
["      endDate   = ws.Range(\"E5\").Value"]
[]
["      ' -- Collect YES rows (INCLUDE? = col 19 / S) ---"]
["      Dim items() As Variant"]
["      ReDim items(1 To 80, 1 To 10)"]
["      itemCount = 0"]
[]
["      For r = 10 To 89"]
["          If UCase(Trim(CStr(ws.Cells(r, 19).Value))) = \"YES\" Then"]
["              itemCount = itemCount + 1"]
["              items(itemCount, 1) = ws.Cells(r, 1).Value    ' Trans RIN    (A)"]
["              items(itemCount, 2) = ws.Cells(r, 3).Value    ' VPN          (C)"]
["              items(itemCount, 3) = ws.Cells(r, 6).Value    ' Retail       (F)"]
["              items(itemCount, 4) = ws.Cells(r, 7).Value    ' Description  (G)"]
["              items(itemCount, 5) = ws.Cells(r, 8).Value    ' Promo Price  (H)"]
["              If IsNumeric(ws.Cells(r, 9).Value) Then"]
["                  items(itemCount, 6) = CDbl(ws.Cells(r, 9).Value)"]
["              Else"]
["                  items(itemCount, 6) = ws.Cells(r, 9).Value"]
["              End If"]
["              items(itemCount, 7) = ws.Cells(r, 10).Value   ' Call Out     (J)"]
["              items(itemCount, 8) = ws.Cells(r, 2).Value    ' Parent RIN   (B)"]
["              items(itemCount, 9) = ws.Cells(r, 5).Value    ' Cost         (E)"]
["              items(itemCount, 10) = ws.Cells(r, 20).Value  ' Brand        (T)"]
["          End If"]
["      Next r"]
[]
["      If itemCount = 0 Then"]
["          MsgBox \"No items marked YES in the INCLUDE? column (col S).\", vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      ' -- Route to template ---"]
["      If vehicle = \"LE\" Then"]
["          templateFile = \"Large_Event_Template.pptx\""]
["          slotCount = 7"]
["          layoutChoice = \"1\""]
["      ElseIf vehicle = \"HL\" Then"]
["          templateFile = \"8-grid_Holiday_Layout.pptx\""]
["          slotCount = 8"]
["          layoutChoice = \"1\""]
["      ElseIf vehicle = \"X\" Or vehicle = \"EMAIL\" Then"]
["          layoutChoice = InputBox( _"]
["              \"EMAIL TEMPLATE  --  \" & itemCount & \" item(s) marked YES.\" & vbCrLf & vbCrLf & _"]
["              \"Choose a layout:\" & vbCrLf & _"]
["              \"  1 = Feature hero + 3 items  (4 slots)\" & vbCrLf & _"]
["              \"  2 = 2x2 grid  (4 slots)\" & vbCrLf & _"]
["              \"  3 = Single column  (3 slots)\" & vbCrLf & vbCrLf & _"]
["              \"Enter 1, 2, or 3:\", \"NEX Email Template\")"]
["          If layoutChoice = \"\" Then Exit Sub"]
["          If layoutChoice <> \"1\" And layoutChoice <> \"2\" And layoutChoice <> \"3\" Then"]
["              MsgBox \"Enter 1, 2, or 3.\", vbExclamation, \"NEX\": Exit Sub"]
["          End If"]
["          templateFile = \"Email_Templates.pptx\""]
["          If layoutChoice = \"3\" Then slotCount = 3 Else slotCount = 4"]
["      Else"]
["          layoutChoice = InputBox( _"]
["              \"AE / FE TEMPLATE  --  \" & itemCount & \" item(s) marked YES.\" & vbCrLf & vbCrLf & _"]
["              \"Choose a layout:\" & vbCrLf & _"]
["              \"  1 = Hero + 6 items  (7 slots)\" & vbCrLf & _"]
["              \"  2 = 9-up grid  (9 slots)\" & vbCrLf & _"]
["              \"  3 = Hero + 3 items  (4 slots)\" & vbCrLf & vbCrLf & _"]
["              \"Enter 1, 2, or 3:\", \"NEX Ad Template\")"]
["          If layoutChoice = \"\" Then Exit Sub"]
["          If layoutChoice <> \"1\" And layoutChoice <> \"2\" And layoutChoice <> \"3\" Then"]
["              MsgBox \"Enter 1, 2, or 3.\", vbExclamation, \"NEX\": Exit Sub"]
["          End If"]
["          templateFile = \"AE_and_FE_Templates.pptx\""]
["          If layoutChoice = \"1\" Then slotCount = 7"]
["          If layoutChoice = \"2\" Then slotCount = 9"]
["          If layoutChoice = \"3\" Then slotCount = 4"]
["      End If"]
[]
["      If vehicle <> \"LE\" And vehicle <> \"HL\" And itemCount > slotCount Then"]
["          MsgBox \"Layout \" & layoutChoice & \" has \" & slotCount & _"]
["                 \" slots but you have \" & itemCount & \" items marked YES.\", _"]
["                 vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      templatePath = ThisWorkbook.Path & Application.PathSeparator & templateFile"]
["      If Dir(templatePath) = \"\" Then"]
["          MsgBox \"Template not found: \" & templatePath & vbCrLf & vbCrLf & _"]
["                 \"Place all .pptx template files in the same folder as this workbook.\", _"]
["                 vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      ' -- Save As dialog BEFORE opening PowerPoint ---"]
["      Dim defaultName As String"]
["      If vehicle = \"LE\" Then"]
["          defaultName = adWeek & \"_LargeEvent_\" & Format(Now, \"YYYYMMDD\") & \".pptx\""]
["      ElseIf vehicle = \"HL\" Then"]
["          defaultName = adWeek & \"_Holiday_\" & Format(Now, \"YYYYMMDD\") & \".pptx\""]
["      Else"]
["          Dim vehLabel As String"]
["          If vehicle = \"X\" Or vehicle = \"EMAIL\" Then vehLabel = \"Email\" Else vehLabel = \"AE_FE\""]
["          defaultName = adWeek & \"_\" & vehLabel & \"_\" & Format(Now, \"YYYYMMDD\") & \".pptx\""]
["      End If"]
[]
["      savePath = Application.GetSaveAsFilename( _"]
["          InitialFileName:=defaultName, _"]
["          FileFilter:=\"PowerPoint Files (*.pptx), *.pptx\", _"]
["          Title:=\"Save Ad Export As\")"]
[]
["      If savePath = False Then Exit Sub"]
["      If Right(CStr(savePath), 5) <> \".pptx\" Then savePath = savePath & \".pptx\""]
[]
["      ' -- Build shape content ---"]
["      Dim shapeContent() As String"]
["      ReDim shapeContent(1 To itemCount, 1 To 7)"]
["      Dim j As Long"]
["      For j = 1 To itemCount"]
["          shapeContent(j, 1) = CStr(items(j, 4))    ' Description"]
["          If CStr(items(j, 2)) <> \"\" Then"]
["              shapeContent(j, 2) = \"VPN: \" & CStr(items(j, 2))"]
["          End If"]
["          If CStr(items(j, 1)) = \"\" Or CStr(items(j, 1)) = \"0\" Then"]
["              shapeContent(j, 3) = \"RIN: TBD -- NEW ITEM\""]
["          Else"]
["              shapeContent(j, 3) = \"RIN: \" & CStr(items(j, 1))"]
["          End If"]
["          If IsNumeric(items(j, 3)) Then"]
["              shapeContent(j, 4) = \"Retail: $\" & Format(CDbl(items(j, 3)), \"#,##0.00\")"]
["          Else"]
["              shapeContent(j, 4) = \"Retail: \" & CStr(items(j, 3))"]
["          End If"]
["          If IsNumeric(items(j, 5)) Then"]
["              shapeContent(j, 5) = \"Promo: $\" & Format(CDbl(items(j, 5)), \"#,##0.00\")"]
["          Else"]
["              shapeContent(j, 5) = \"Promo: \" & CStr(items(j, 5))"]
["          End If"]
["          If IsNumeric(items(j, 6)) Then"]
["              shapeContent(j, 6) = \"Save: $\" & Format(CDbl(items(j, 6)), \"#,##0.00\")"]
["          Else"]
["              shapeContent(j, 6) = CStr(items(j, 6))"]
["          End If"]
["          If CStr(items(j, 7)) <> \"\" Then"]
["              shapeContent(j, 7) = CStr(items(j, 7))"]
["          End If"]
["      Next j"]
[]
["      ' -- Open PowerPoint and populate ---"]
["      savedCalc    = Application.Calculation"]
["      savedEvents  = Application.EnableEvents"]
["      savedScreen  = Application.ScreenUpdating"]
["      savedAlerts  = Application.DisplayAlerts"]
["      Application.ScreenUpdating = False"]
["      Application.EnableEvents   = False"]
["      Application.DisplayAlerts  = False"]
[]
["      On Error Resume Next"]
["      Set pptApp = GetObject(, \"PowerPoint.Application\")"]
["      If pptApp Is Nothing Then Set pptApp = CreateObject(\"PowerPoint.Application\")"]
["      On Error GoTo 0"]
[]
["      If pptApp Is Nothing Then"]
["          MsgBox \"Could not open PowerPoint.\", vbExclamation, \"NEX\""]
["          GoTo CleanupSettings"]
["      End If"]
[]
["      Set pptPres = pptApp.Presentations.Open(templatePath)"]
["      pptApp.Visible = True"]
[]
["      ' LE: multi-slide, 7 items per slide"]
["      If vehicle = \"LE\" Then"]
["          Dim slidesNeeded As Long"]
["          slidesNeeded = Application.WorksheetFunction.RoundUp(itemCount / 7, 0)"]
["          Do While pptPres.Slides.Count < slidesNeeded"]
["              pptPres.Slides(1).Duplicate"]
["          Loop"]
["          Do While pptPres.Slides.Count > slidesNeeded"]
["              pptPres.Slides(pptPres.Slides.Count).Delete"]
["          Loop"]
["          Dim itemIdx As Long: itemIdx = 1"]
["          Dim slideIdx As Long"]
["          For slideIdx = 1 To slidesNeeded"]
["              Dim shp As Object"]
["              For Each shp In pptPres.Slides(slideIdx).Shapes"]
["                  If shp.HasTextFrame Then"]
["                      If itemIdx <= itemCount Then"]
["                          Dim contentLines As String: contentLines = shapeContent(itemIdx, 1)"]
["                          Dim ln As Long"]
["                          For ln = 2 To 7"]
["                              If shapeContent(itemIdx, ln) <> \"\" Then contentLines = contentLines & vbCrLf & shapeContent(itemIdx, ln)"]
["                          Next ln"]
["                          shp.TextFrame.TextRange.Text = contentLines"]
["                          itemIdx = itemIdx + 1"]
["                      Else"]
["                          shp.TextFrame.TextRange.Text = \"TBD -- NEW ITEM\""]
["                      End If"]
["                  End If"]
["              Next shp"]
["          Next slideIdx"]
[]
["      ' HL: single slide with 8 slots"]
["      ElseIf vehicle = \"HL\" Then"]
["          Dim hlShp As Object, hlIdx As Long: hlIdx = 0"]
["          For Each hlShp In pptPres.Slides(1).Shapes"]
["              If hlShp.HasTextFrame Then"]
["                  hlIdx = hlIdx + 1"]
["                  If hlIdx <= itemCount Then"]
["                      Dim hlLines As String: hlLines = shapeContent(hlIdx, 1)"]
["                      Dim hlLn As Long"]
["                      For hlLn = 2 To 7"]
["                          If shapeContent(hlIdx, hlLn) <> \"\" Then hlLines = hlLines & vbCrLf & shapeContent(hlIdx, hlLn)"]
["                      Next hlLn"]
["                      hlShp.TextFrame.TextRange.Text = hlLines"]
["                  Else"]
["                      hlShp.TextFrame.TextRange.Text = \"TBD -- NEW ITEM\""]
["                  End If"]
["              End If"]
["          Next hlShp"]
[]
["      ' Email / AE / FE: single slide"]
["      Else"]
["          If pptPres.Slides.Count > 1 Then"]
["              Dim keepSlide As Long: keepSlide = CLng(layoutChoice)"]
["              Dim delIdx As Long"]
["              For delIdx = pptPres.Slides.Count To 1 Step -1"]
["                  If delIdx <> keepSlide Then pptPres.Slides(delIdx).Delete"]
["              Next delIdx"]
["          End If"]
["          Dim aShp As Object, aIdx As Long: aIdx = 0"]
["          For Each aShp In pptPres.Slides(1).Shapes"]
["              If aShp.HasTextFrame Then"]
["                  aIdx = aIdx + 1"]
["                  If aIdx <= itemCount Then"]
["                      Dim aLines As String: aLines = shapeContent(aIdx, 1)"]
["                      Dim aLn As Long"]
["                      For aLn = 2 To 7"]
["                          If shapeContent(aIdx, aLn) <> \"\" Then aLines = aLines & vbCrLf & shapeContent(aIdx, aLn)"]
["                      Next aLn"]
["                      aShp.TextFrame.TextRange.Text = aLines"]
["                  Else"]
["                      aShp.TextFrame.TextRange.Text = \"TBD -- NEW ITEM\""]
["                  End If"]
["              End If"]
["          Next aShp"]
["      End If"]
[]
["      ' -- Save ---"]
["      On Error Resume Next"]
["      pptPres.SaveAs CStr(savePath)"]
["      On Error GoTo 0"]
["      pptApp.Visible = True"]
[]
["      ' Append to Ad Tracker"]
["      Call AppendToAdTracker(items, itemCount, adWeek, vehicle, startDate, endDate)"]
[]
["      MsgBox \"Done!  \" & itemCount & \" item(s) exported.\" & vbCrLf & vbCrLf & _"]
["             \"Saved to: \" & vbCrLf & CStr(savePath), vbInformation, \"NEX Export Complete\""]
["      GoTo CleanupSettings"]
[]
["  ExportError:"]
["      On Error Resume Next"]
["      If Not pptPres Is Nothing Then pptPres.Close"]
["      If Not pptApp Is Nothing Then pptApp.Quit"]
["      On Error GoTo 0"]
["      MsgBox \"Export failed: \" & Err.Description & vbCrLf & vbCrLf & _"]
["             \"No file was saved.\", vbExclamation, \"NEX\""]
[]
["  CleanupSettings:"]
["      Application.Calculation     = savedCalc"]
["      Application.EnableEvents    = savedEvents"]
["      Application.ScreenUpdating  = savedScreen"]
["      Application.DisplayAlerts   = savedAlerts"]
["  End Sub"]
[]
["  ' ================================================================"]
["  ' AppendToAdTracker  (v17 - fixed)"]
["  ' Now writes all 15 columns including Start Date (D) and End Date (E)."]
["  ' Previous versions only wrote 13 columns, skipping Start/End Date."]
["  '"]
["  ' items() field map (1-based):"]
["  '   1=Trans RIN  2=VPN  3=Retail  4=Description  5=Promo Price"]
["  '   6=Savings    7=Call Out       8=Parent RIN   9=Cost   10=Brand"]
["  '"]
["  ' Output column map (15 columns):"]
["  '   A=Export Date  B=Ad Week    C=Vehicle     D=Start Date  E=End Date"]
["  '   F=Brand        G=Trans RIN  H=Parent RIN  I=VPN         J=Description"]
["  '   K=Cost         L=Retail     M=Promo Price N=Savings     O=Call Out"]
["  ' ================================================================"]
["  Private Sub AppendToAdTracker(items() As Variant, itemCount As Long, _"]
["                                 adWeek As String, vehicle As String, _"]
["                                 startDate As Variant, endDate As Variant)"]
["      Dim wsTrk As Worksheet"]
["      Dim lastTrkRow As Long, writeRow As Long"]
["      Dim i As Long, r As Long"]
[]
["      On Error Resume Next"]
["      Set wsTrk = ThisWorkbook.Sheets(\"Ad Tracker\")"]
["      On Error GoTo 0"]
[]
["      If wsTrk Is Nothing Then"]
["          Set wsTrk = ThisWorkbook.Sheets.Add"]
["          wsTrk.Name = \"Ad Tracker\""]
["          wsTrk.Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)"]
[]
["          ' Title row"]
["          wsTrk.Range(\"A1:O1\").Merge"]
["          wsTrk.Range(\"A1\").Value = \"AD TRACKER  -  Historical record of every PowerPoint export\""]
["          With wsTrk.Range(\"A1\").Font"]
["              .Name = \"Arial\": .Bold = True: .Size = 12: .Color = RGB(255, 255, 255)"]
["          End With"]
["          wsTrk.Range(\"A1\").Interior.Color = RGB(13, 21, 53)"]
["          wsTrk.Range(\"A1\").HorizontalAlignment = xlLeft"]
[]
["          ' Header row at row 3 - all 15 columns"]
["          Dim headers As Variant"]
["          headers = Array(\"Export Date\", \"Ad Week\", \"Vehicle\", \"Start Date\", \"End Date\", _"]
["                          \"Brand\", \"Trans RIN\", \"Parent RIN\", \"VPN\", \"Description\", _"]
["                          \"Cost\", \"Retail\", \"Promo Price\", \"Savings\", \"Call Out\")"]
["          Dim hdrWidths As Variant"]
["          hdrWidths = Array(18, 12, 10, 14, 14, 18, 14, 14, 16, 40, 12, 12, 13, 12, 25)"]
["          Dim c As Long"]
["          For c = 0 To 14"]
["              wsTrk.Cells(3, c + 1).Value = headers(c)"]
["              With wsTrk.Cells(3, c + 1).Font"]
["                  .Name = \"Arial\": .Bold = True: .Size = 10: .Color = RGB(255, 255, 255)"]
["              End With"]
["              wsTrk.Cells(3, c + 1).Interior.Color = RGB(13, 21, 53)"]
["              wsTrk.Cells(3, c + 1).HorizontalAlignment = xlCenter"]
["              wsTrk.Columns(c + 1).ColumnWidth = hdrWidths(c)"]
["          Next c"]
["          wsTrk.Rows(2).RowHeight = 6"]
["      Else"]
["          ' Validate canary header at A3"]
["          If UCase(Trim(CStr(wsTrk.Cells(3, 1).Value))) <> \"EXPORT DATE\" Then"]
["              MsgBox \"Existing 'Ad Tracker' tab does not match expected structure.\" & vbCrLf & _"]
["                     \"Cell A3 should read 'Export Date'.\" & vbCrLf & vbCrLf & _"]
["                     \"Either rename the existing tab or fix the header row.\" & vbCrLf & _"]
["                     \"Export to PowerPoint succeeded; tracker append was skipped.\", _"]
["                     vbExclamation, \"NEX - Tracker Setup Issue\""]
["              Exit Sub"]
["          End If"]
["      End If"]
[]
["      ' REPLACE-BY-WEEK-VEHICLE"]
["      Dim wkUpper As String, vhUpper As String"]
["      wkUpper = UCase(Trim(adWeek))"]
["      vhUpper = UCase(Trim(vehicle))"]
["      lastTrkRow = wsTrk.Cells(wsTrk.Rows.Count, 1).End(xlUp).Row"]
["      If lastTrkRow < 3 Then lastTrkRow = 3"]
[]
["      For r = lastTrkRow To 4 Step -1"]
["          If UCase(Trim(CStr(wsTrk.Cells(r, 2).Value))) = wkUpper And _"]
["             UCase(Trim(CStr(wsTrk.Cells(r, 3).Value))) = vhUpper Then"]
["              wsTrk.Rows(r).Delete"]
["          End If"]
["      Next r"]
[]
["      lastTrkRow = wsTrk.Cells(wsTrk.Rows.Count, 1).End(xlUp).Row"]
["      If lastTrkRow < 3 Then lastTrkRow = 3"]
["      writeRow = lastTrkRow + 1"]
[]
["      ' Append new rows - all 15 columns"]
["      For i = 1 To itemCount"]
["          wsTrk.Cells(writeRow, 1).Value = Now                          ' A: Export Date"]
["          wsTrk.Cells(writeRow, 1).NumberFormat = \"mm/dd/yyyy h:mm AM/PM\""]
["          wsTrk.Cells(writeRow, 2).Value = adWeek                       ' B: Ad Week"]
["          wsTrk.Cells(writeRow, 3).Value = vehicle                      ' C: Vehicle"]
["          ' D: Start Date (NEW in v17)"]
["          If IsDate(startDate) Then"]
["              wsTrk.Cells(writeRow, 4).Value = CDate(startDate)"]
["              wsTrk.Cells(writeRow, 4).NumberFormat = \"mm/dd/yyyy\""]
["          Else"]
["              wsTrk.Cells(writeRow, 4).Value = startDate"]
["          End If"]
["          ' E: End Date (NEW in v17)"]
["          If IsDate(endDate) Then"]
["              wsTrk.Cells(writeRow, 5).Value = CDate(endDate)"]
["              wsTrk.Cells(writeRow, 5).NumberFormat = \"mm/dd/yyyy\""]
["          Else"]
["              wsTrk.Cells(writeRow, 5).Value = endDate"]
["          End If"]
["          wsTrk.Cells(writeRow, 6).Value = items(i, 10)                 ' F: Brand"]
["          wsTrk.Cells(writeRow, 7).Value = items(i, 1)                  ' G: Trans RIN"]
["          wsTrk.Cells(writeRow, 8).Value = items(i, 8)                  ' H: Parent RIN"]
["          wsTrk.Cells(writeRow, 9).Value = items(i, 2)                  ' I: VPN"]
["          wsTrk.Cells(writeRow, 10).Value = items(i, 4)                 ' J: Description"]
["          If IsNumeric(items(i, 9)) Then"]
["              wsTrk.Cells(writeRow, 11).Value = CDbl(items(i, 9))       ' K: Cost"]
["              wsTrk.Cells(writeRow, 11).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 11).Value = items(i, 9)"]
["          End If"]
["          If IsNumeric(items(i, 3)) Then"]
["              wsTrk.Cells(writeRow, 12).Value = CDbl(items(i, 3))       ' L: Retail"]
["              wsTrk.Cells(writeRow, 12).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 12).Value = items(i, 3)"]
["          End If"]
["          If IsNumeric(items(i, 5)) Then"]
["              wsTrk.Cells(writeRow, 13).Value = CDbl(items(i, 5))       ' M: Promo Price"]
["              wsTrk.Cells(writeRow, 13).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 13).Value = items(i, 5)"]
["          End If"]
["          If IsNumeric(items(i, 6)) Then"]
["              wsTrk.Cells(writeRow, 14).Value = CDbl(items(i, 6))       ' N: Savings"]
["              wsTrk.Cells(writeRow, 14).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 14).Value = items(i, 6)"]
["          End If"]
["          wsTrk.Cells(writeRow, 15).Value = items(i, 7)                 ' O: Call Out"]
[]
["          ' Row formatting"]
["          Dim cc As Long"]
["          For cc = 1 To 15"]
["              wsTrk.Cells(writeRow, cc).Font.Name = \"Arial\""]
["              wsTrk.Cells(writeRow, cc).Font.Size = 10"]
["          Next cc"]
["          writeRow = writeRow + 1"]
["      Next i"]
["  End Sub"]
[]
["  Sub ExportToPowerPoint()"]
[]
["      Dim ws As Worksheet"]
["      Set ws = ThisWorkbook.Sheets(\"Ad Week Planner\")"]
[]
["      Dim adWeek As String, vehicle As String"]
["      Dim startDate As Variant, endDate As Variant"]
["      Dim itemCount As Long, i As Long, r As Long"]
["      Dim savePath As Variant"]
["      Dim pptApp As Object, pptPres As Object"]
["      Dim templatePath As String, templateFile As String"]
["      Dim layoutChoice As String, slotCount As Long"]
["      Dim savedCalc As Long, savedEvents As Boolean"]
["      Dim savedScreen As Boolean, savedAlerts As Boolean"]
[]
["      adWeek  = Trim(CStr(ws.Range(\"B3\").Value))"]
["      vehicle = Trim(UCase(CStr(ws.Range(\"E3\").Value)))"]
[]
["      If adWeek = \"\" Then"]
["          MsgBox \"Fill in Ad Week in cell B3 before exporting.\", vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      ' Validate Brand column header"]
["      If UCase(Trim(CStr(ws.Cells(9, 20).Value))) <> \"BRAND\" Then"]
["          MsgBox \"Column T row 9 must be labeled 'Brand'.\" & vbCrLf & _"]
["                 \"Found: '\" & ws.Cells(9, 20).Value & \"'\" & vbCrLf & vbCrLf & _"]
["                 \"Add or restore the Brand column header before exporting.\", _"]
["                 vbExclamation, \"NEX - Setup Issue\""]
["          Exit Sub"]
["      End If"]
[]
["      ' Read Start Date and End Date from planner"]
["      startDate = ws.Range(\"B5\").Value"]
["      endDate   = ws.Range(\"E5\").Value"]
[]
["      ' -- Collect YES rows (INCLUDE? = col 19 / S) ---"]
["      Dim items() As Variant"]
["      ReDim items(1 To 80, 1 To 10)"]
["      itemCount = 0"]
[]
["      For r = 10 To 89"]
["          If UCase(Trim(CStr(ws.Cells(r, 19).Value))) = \"YES\" Then"]
["              itemCount = itemCount + 1"]
["              items(itemCount, 1) = ws.Cells(r, 1).Value    ' Trans RIN    (A)"]
["              items(itemCount, 2) = ws.Cells(r, 3).Value    ' VPN          (C)"]
["              items(itemCount, 3) = ws.Cells(r, 6).Value    ' Retail       (F)"]
["              items(itemCount, 4) = ws.Cells(r, 7).Value    ' Description  (G)"]
["              items(itemCount, 5) = ws.Cells(r, 8).Value    ' Promo Price  (H)"]
["              If IsNumeric(ws.Cells(r, 9).Value) Then"]
["                  items(itemCount, 6) = CDbl(ws.Cells(r, 9).Value)"]
["              Else"]
["                  items(itemCount, 6) = ws.Cells(r, 9).Value"]
["              End If"]
["              items(itemCount, 7) = ws.Cells(r, 10).Value   ' Call Out     (J)"]
["              items(itemCount, 8) = ws.Cells(r, 2).Value    ' Parent RIN   (B)"]
["              items(itemCount, 9) = ws.Cells(r, 5).Value    ' Cost         (E)"]
["              items(itemCount, 10) = ws.Cells(r, 20).Value  ' Brand        (T)"]
["          End If"]
["      Next r"]
[]
["      If itemCount = 0 Then"]
["          MsgBox \"No items marked YES in the INCLUDE? column (col S).\", vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      ' -- Route to template ---"]
["      If vehicle = \"LE\" Then"]
["          templateFile = \"Large_Event_Template.pptx\""]
["          slotCount = 7"]
["          layoutChoice = \"1\""]
["      ElseIf vehicle = \"HL\" Then"]
["          templateFile = \"8-grid_Holiday_Layout.pptx\""]
["          slotCount = 8"]
["          layoutChoice = \"1\""]
["      ElseIf vehicle = \"X\" Or vehicle = \"EMAIL\" Then"]
["          layoutChoice = InputBox( _"]
["              \"EMAIL TEMPLATE  --  \" & itemCount & \" item(s) marked YES.\" & vbCrLf & vbCrLf & _"]
["              \"Choose a layout:\" & vbCrLf & _"]
["              \"  1 = Feature hero + 3 items  (4 slots)\" & vbCrLf & _"]
["              \"  2 = 2x2 grid  (4 slots)\" & vbCrLf & _"]
["              \"  3 = Single column  (3 slots)\" & vbCrLf & vbCrLf & _"]
["              \"Enter 1, 2, or 3:\", \"NEX Email Template\")"]
["          If layoutChoice = \"\" Then Exit Sub"]
["          If layoutChoice <> \"1\" And layoutChoice <> \"2\" And layoutChoice <> \"3\" Then"]
["              MsgBox \"Enter 1, 2, or 3.\", vbExclamation, \"NEX\": Exit Sub"]
["          End If"]
["          templateFile = \"Email_Templates.pptx\""]
["          If layoutChoice = \"3\" Then slotCount = 3 Else slotCount = 4"]
["      Else"]
["          layoutChoice = InputBox( _"]
["              \"AE / FE TEMPLATE  --  \" & itemCount & \" item(s) marked YES.\" & vbCrLf & vbCrLf & _"]
["              \"Choose a layout:\" & vbCrLf & _"]
["              \"  1 = Hero + 6 items  (7 slots)\" & vbCrLf & _"]
["              \"  2 = 9-up grid  (9 slots)\" & vbCrLf & _"]
["              \"  3 = Hero + 3 items  (4 slots)\" & vbCrLf & vbCrLf & _"]
["              \"Enter 1, 2, or 3:\", \"NEX Ad Template\")"]
["          If layoutChoice = \"\" Then Exit Sub"]
["          If layoutChoice <> \"1\" And layoutChoice <> \"2\" And layoutChoice <> \"3\" Then"]
["              MsgBox \"Enter 1, 2, or 3.\", vbExclamation, \"NEX\": Exit Sub"]
["          End If"]
["          templateFile = \"AE_and_FE_Templates.pptx\""]
["          If layoutChoice = \"1\" Then slotCount = 7"]
["          If layoutChoice = \"2\" Then slotCount = 9"]
["          If layoutChoice = \"3\" Then slotCount = 4"]
["      End If"]
[]
["      If vehicle <> \"LE\" And vehicle <> \"HL\" And itemCount > slotCount Then"]
["          MsgBox \"Layout \" & layoutChoice & \" has \" & slotCount & _"]
["                 \" slots but you have \" & itemCount & \" items marked YES.\", _"]
["                 vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      templatePath = ThisWorkbook.Path & Application.PathSeparator & templateFile"]
["      If Dir(templatePath) = \"\" Then"]
["          MsgBox \"Template not found: \" & templatePath & vbCrLf & vbCrLf & _"]
["                 \"Place all .pptx template files in the same folder as this workbook.\", _"]
["                 vbExclamation, \"NEX\""]
["          Exit Sub"]
["      End If"]
[]
["      ' -- Save As dialog BEFORE opening PowerPoint ---"]
["      Dim defaultName As String"]
["      If vehicle = \"LE\" Then"]
["          defaultName = adWeek & \"_LargeEvent_\" & Format(Now, \"YYYYMMDD\") & \".pptx\""]
["      ElseIf vehicle = \"HL\" Then"]
["          defaultName = adWeek & \"_Holiday_\" & Format(Now, \"YYYYMMDD\") & \".pptx\""]
["      Else"]
["          Dim vehLabel As String"]
["          If vehicle = \"X\" Or vehicle = \"EMAIL\" Then vehLabel = \"Email\" Else vehLabel = \"AE_FE\""]
["          defaultName = adWeek & \"_\" & vehLabel & \"_\" & Format(Now, \"YYYYMMDD\") & \".pptx\""]
["      End If"]
[]
["      savePath = Application.GetSaveAsFilename( _"]
["          InitialFileName:=defaultName, _"]
["          FileFilter:=\"PowerPoint Files (*.pptx), *.pptx\", _"]
["          Title:=\"Save Ad Export As\")"]
[]
["      If savePath = False Then Exit Sub"]
["      If Right(CStr(savePath), 5) <> \".pptx\" Then savePath = savePath & \".pptx\""]
[]
["      ' -- Build shape content ---"]
["      Dim shapeContent() As String"]
["      ReDim shapeContent(1 To itemCount, 1 To 7)"]
["      Dim j As Long"]
["      For j = 1 To itemCount"]
["          shapeContent(j, 1) = CStr(items(j, 4))    ' Description"]
["          If CStr(items(j, 2)) <> \"\" Then"]
["              shapeContent(j, 2) = \"VPN: \" & CStr(items(j, 2))"]
["          End If"]
["          If CStr(items(j, 1)) = \"\" Or CStr(items(j, 1)) = \"0\" Then"]
["              shapeContent(j, 3) = \"RIN: TBD -- NEW ITEM\""]
["          Else"]
["              shapeContent(j, 3) = \"RIN: \" & CStr(items(j, 1))"]
["          End If"]
["          If IsNumeric(items(j, 3)) Then"]
["              shapeContent(j, 4) = \"Retail: $\" & Format(CDbl(items(j, 3)), \"#,##0.00\")"]
["          Else"]
["              shapeContent(j, 4) = \"Retail: \" & CStr(items(j, 3))"]
["          End If"]
["          If IsNumeric(items(j, 5)) Then"]
["              shapeContent(j, 5) = \"Promo: $\" & Format(CDbl(items(j, 5)), \"#,##0.00\")"]
["          Else"]
["              shapeContent(j, 5) = \"Promo: \" & CStr(items(j, 5))"]
["          End If"]
["          If IsNumeric(items(j, 6)) Then"]
["              shapeContent(j, 6) = \"Save: $\" & Format(CDbl(items(j, 6)), \"#,##0.00\")"]
["          Else"]
["              shapeContent(j, 6) = CStr(items(j, 6))"]
["          End If"]
["          If CStr(items(j, 7)) <> \"\" Then"]
["              shapeContent(j, 7) = CStr(items(j, 7))"]
["          End If"]
["      Next j"]
[]
["      ' -- Open PowerPoint and populate ---"]
["      savedCalc    = Application.Calculation"]
["      savedEvents  = Application.EnableEvents"]
["      savedScreen  = Application.ScreenUpdating"]
["      savedAlerts  = Application.DisplayAlerts"]
["      Application.ScreenUpdating = False"]
["      Application.EnableEvents   = False"]
["      Application.DisplayAlerts  = False"]
[]
["      On Error Resume Next"]
["      Set pptApp = GetObject(, \"PowerPoint.Application\")"]
["      If pptApp Is Nothing Then Set pptApp = CreateObject(\"PowerPoint.Application\")"]
["      On Error GoTo 0"]
[]
["      If pptApp Is Nothing Then"]
["          MsgBox \"Could not open PowerPoint.\", vbExclamation, \"NEX\""]
["          GoTo CleanupSettings"]
["      End If"]
[]
["      Set pptPres = pptApp.Presentations.Open(templatePath)"]
["      pptApp.Visible = True"]
[]
["      ' LE: multi-slide, 7 items per slide"]
["      If vehicle = \"LE\" Then"]
["          Dim slidesNeeded As Long"]
["          slidesNeeded = Application.WorksheetFunction.RoundUp(itemCount / 7, 0)"]
["          Do While pptPres.Slides.Count < slidesNeeded"]
["              pptPres.Slides(1).Duplicate"]
["          Loop"]
["          Do While pptPres.Slides.Count > slidesNeeded"]
["              pptPres.Slides(pptPres.Slides.Count).Delete"]
["          Loop"]
["          Dim itemIdx As Long: itemIdx = 1"]
["          Dim slideIdx As Long"]
["          For slideIdx = 1 To slidesNeeded"]
["              Dim shp As Object"]
["              For Each shp In pptPres.Slides(slideIdx).Shapes"]
["                  If shp.HasTextFrame Then"]
["                      If itemIdx <= itemCount Then"]
["                          Dim contentLines As String: contentLines = shapeContent(itemIdx, 1)"]
["                          Dim ln As Long"]
["                          For ln = 2 To 7"]
["                              If shapeContent(itemIdx, ln) <> \"\" Then contentLines = contentLines & vbCrLf & shapeContent(itemIdx, ln)"]
["                          Next ln"]
["                          shp.TextFrame.TextRange.Text = contentLines"]
["                          itemIdx = itemIdx + 1"]
["                      Else"]
["                          shp.TextFrame.TextRange.Text = \"TBD -- NEW ITEM\""]
["                      End If"]
["                  End If"]
["              Next shp"]
["          Next slideIdx"]
[]
["      ' HL: single slide with 8 slots"]
["      ElseIf vehicle = \"HL\" Then"]
["          Dim hlShp As Object, hlIdx As Long: hlIdx = 0"]
["          For Each hlShp In pptPres.Slides(1).Shapes"]
["              If hlShp.HasTextFrame Then"]
["                  hlIdx = hlIdx + 1"]
["                  If hlIdx <= itemCount Then"]
["                      Dim hlLines As String: hlLines = shapeContent(hlIdx, 1)"]
["                      Dim hlLn As Long"]
["                      For hlLn = 2 To 7"]
["                          If shapeContent(hlIdx, hlLn) <> \"\" Then hlLines = hlLines & vbCrLf & shapeContent(hlIdx, hlLn)"]
["                      Next hlLn"]
["                      hlShp.TextFrame.TextRange.Text = hlLines"]
["                  Else"]
["                      hlShp.TextFrame.TextRange.Text = \"TBD -- NEW ITEM\""]
["                  End If"]
["              End If"]
["          Next hlShp"]
[]
["      ' Email / AE / FE: single slide"]
["      Else"]
["          If pptPres.Slides.Count > 1 Then"]
["              Dim keepSlide As Long: keepSlide = CLng(layoutChoice)"]
["              Dim delIdx As Long"]
["              For delIdx = pptPres.Slides.Count To 1 Step -1"]
["                  If delIdx <> keepSlide Then pptPres.Slides(delIdx).Delete"]
["              Next delIdx"]
["          End If"]
["          Dim aShp As Object, aIdx As Long: aIdx = 0"]
["          For Each aShp In pptPres.Slides(1).Shapes"]
["              If aShp.HasTextFrame Then"]
["                  aIdx = aIdx + 1"]
["                  If aIdx <= itemCount Then"]
["                      Dim aLines As String: aLines = shapeContent(aIdx, 1)"]
["                      Dim aLn As Long"]
["                      For aLn = 2 To 7"]
["                          If shapeContent(aIdx, aLn) <> \"\" Then aLines = aLines & vbCrLf & shapeContent(aIdx, aLn)"]
["                      Next aLn"]
["                      aShp.TextFrame.TextRange.Text = aLines"]
["                  Else"]
["                      aShp.TextFrame.TextRange.Text = \"TBD -- NEW ITEM\""]
["                  End If"]
["              End If"]
["          Next aShp"]
["      End If"]
[]
["      ' -- Save ---"]
["      On Error Resume Next"]
["      pptPres.SaveAs CStr(savePath)"]
["      On Error GoTo 0"]
["      pptApp.Visible = True"]
[]
["      ' Append to Ad Tracker"]
["      Call AppendToAdTracker(items, itemCount, adWeek, vehicle, startDate, endDate)"]
[]
["      MsgBox \"Done!  \" & itemCount & \" item(s) exported.\" & vbCrLf & vbCrLf & _"]
["             \"Saved to: \" & vbCrLf & CStr(savePath), vbInformation, \"NEX Export Complete\""]
["      GoTo CleanupSettings"]
[]
["  ExportError:"]
["      On Error Resume Next"]
["      If Not pptPres Is Nothing Then pptPres.Close"]
["      If Not pptApp Is Nothing Then pptApp.Quit"]
["      On Error GoTo 0"]
["      MsgBox \"Export failed: \" & Err.Description & vbCrLf & vbCrLf & _"]
["             \"No file was saved.\", vbExclamation, \"NEX\""]
[]
["  CleanupSettings:"]
["      Application.Calculation     = savedCalc"]
["      Application.EnableEvents    = savedEvents"]
["      Application.ScreenUpdating  = savedScreen"]
["      Application.DisplayAlerts   = savedAlerts"]
["  End Sub"]
[]
["  ' ================================================================"]
["  ' AppendToAdTracker  (v17 - fixed)"]
["  ' Now writes all 15 columns including Start Date (D) and End Date (E)."]
["  ' Previous versions only wrote 13 columns, skipping Start/End Date."]
["  '"]
["  ' items() field map (1-based):"]
["  '   1=Trans RIN  2=VPN  3=Retail  4=Description  5=Promo Price"]
["  '   6=Savings    7=Call Out       8=Parent RIN   9=Cost   10=Brand"]
["  '"]
["  ' Output column map (15 columns):"]
["  '   A=Export Date  B=Ad Week    C=Vehicle     D=Start Date  E=End Date"]
["  '   F=Brand        G=Trans RIN  H=Parent RIN  I=VPN         J=Description"]
["  '   K=Cost         L=Retail     M=Promo Price N=Savings     O=Call Out"]
["  ' ================================================================"]
["  Private Sub AppendToAdTracker(items() As Variant, itemCount As Long, _"]
["                                 adWeek As String, vehicle As String, _"]
["                                 startDate As Variant, endDate As Variant)"]
["      Dim wsTrk As Worksheet"]
["      Dim lastTrkRow As Long, writeRow As Long"]
["      Dim i As Long, r As Long"]
[]
["      On Error Resume Next"]
["      Set wsTrk = ThisWorkbook.Sheets(\"Ad Tracker\")"]
["      On Error GoTo 0"]
[]
["      If wsTrk Is Nothing Then"]
["          Set wsTrk = ThisWorkbook.Sheets.Add"]
["          wsTrk.Name = \"Ad Tracker\""]
["          wsTrk.Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)"]
[]
["          ' Title row"]
["          wsTrk.Range(\"A1:O1\").Merge"]
["          wsTrk.Range(\"A1\").Value = \"AD TRACKER  -  Historical record of every PowerPoint export\""]
["          With wsTrk.Range(\"A1\").Font"]
["              .Name = \"Arial\": .Bold = True: .Size = 12: .Color = RGB(255, 255, 255)"]
["          End With"]
["          wsTrk.Range(\"A1\").Interior.Color = RGB(13, 21, 53)"]
["          wsTrk.Range(\"A1\").HorizontalAlignment = xlLeft"]
[]
["          ' Header row at row 3 - all 15 columns"]
["          Dim headers As Variant"]
["          headers = Array(\"Export Date\", \"Ad Week\", \"Vehicle\", \"Start Date\", \"End Date\", _"]
["                          \"Brand\", \"Trans RIN\", \"Parent RIN\", \"VPN\", \"Description\", _"]
["                          \"Cost\", \"Retail\", \"Promo Price\", \"Savings\", \"Call Out\")"]
["          Dim hdrWidths As Variant"]
["          hdrWidths = Array(18, 12, 10, 14, 14, 18, 14, 14, 16, 40, 12, 12, 13, 12, 25)"]
["          Dim c As Long"]
["          For c = 0 To 14"]
["              wsTrk.Cells(3, c + 1).Value = headers(c)"]
["              With wsTrk.Cells(3, c + 1).Font"]
["                  .Name = \"Arial\": .Bold = True: .Size = 10: .Color = RGB(255, 255, 255)"]
["              End With"]
["              wsTrk.Cells(3, c + 1).Interior.Color = RGB(13, 21, 53)"]
["              wsTrk.Cells(3, c + 1).HorizontalAlignment = xlCenter"]
["              wsTrk.Columns(c + 1).ColumnWidth = hdrWidths(c)"]
["          Next c"]
["          wsTrk.Rows(2).RowHeight = 6"]
["      Else"]
["          ' Validate canary header at A3"]
["          If UCase(Trim(CStr(wsTrk.Cells(3, 1).Value))) <> \"EXPORT DATE\" Then"]
["              MsgBox \"Existing 'Ad Tracker' tab does not match expected structure.\" & vbCrLf & _"]
["                     \"Cell A3 should read 'Export Date'.\" & vbCrLf & vbCrLf & _"]
["                     \"Either rename the existing tab or fix the header row.\" & vbCrLf & _"]
["                     \"Export to PowerPoint succeeded; tracker append was skipped.\", _"]
["                     vbExclamation, \"NEX - Tracker Setup Issue\""]
["              Exit Sub"]
["          End If"]
["      End If"]
[]
["      ' REPLACE-BY-WEEK-VEHICLE"]
["      Dim wkUpper As String, vhUpper As String"]
["      wkUpper = UCase(Trim(adWeek))"]
["      vhUpper = UCase(Trim(vehicle))"]
["      lastTrkRow = wsTrk.Cells(wsTrk.Rows.Count, 1).End(xlUp).Row"]
["      If lastTrkRow < 3 Then lastTrkRow = 3"]
[]
["      For r = lastTrkRow To 4 Step -1"]
["          If UCase(Trim(CStr(wsTrk.Cells(r, 2).Value))) = wkUpper And _"]
["             UCase(Trim(CStr(wsTrk.Cells(r, 3).Value))) = vhUpper Then"]
["              wsTrk.Rows(r).Delete"]
["          End If"]
["      Next r"]
[]
["      lastTrkRow = wsTrk.Cells(wsTrk.Rows.Count, 1).End(xlUp).Row"]
["      If lastTrkRow < 3 Then lastTrkRow = 3"]
["      writeRow = lastTrkRow + 1"]
[]
["      ' Append new rows - all 15 columns"]
["      For i = 1 To itemCount"]
["          wsTrk.Cells(writeRow, 1).Value = Now                          ' A: Export Date"]
["          wsTrk.Cells(writeRow, 1).NumberFormat = \"mm/dd/yyyy h:mm AM/PM\""]
["          wsTrk.Cells(writeRow, 2).Value = adWeek                       ' B: Ad Week"]
["          wsTrk.Cells(writeRow, 3).Value = vehicle                      ' C: Vehicle"]
["          ' D: Start Date (NEW in v17)"]
["          If IsDate(startDate) Then"]
["              wsTrk.Cells(writeRow, 4).Value = CDate(startDate)"]
["              wsTrk.Cells(writeRow, 4).NumberFormat = \"mm/dd/yyyy\""]
["          Else"]
["              wsTrk.Cells(writeRow, 4).Value = startDate"]
["          End If"]
["          ' E: End Date (NEW in v17)"]
["          If IsDate(endDate) Then"]
["              wsTrk.Cells(writeRow, 5).Value = CDate(endDate)"]
["              wsTrk.Cells(writeRow, 5).NumberFormat = \"mm/dd/yyyy\""]
["          Else"]
["              wsTrk.Cells(writeRow, 5).Value = endDate"]
["          End If"]
["          wsTrk.Cells(writeRow, 6).Value = items(i, 10)                 ' F: Brand"]
["          wsTrk.Cells(writeRow, 7).Value = items(i, 1)                  ' G: Trans RIN"]
["          wsTrk.Cells(writeRow, 8).Value = items(i, 8)                  ' H: Parent RIN"]
["          wsTrk.Cells(writeRow, 9).Value = items(i, 2)                  ' I: VPN"]
["          wsTrk.Cells(writeRow, 10).Value = items(i, 4)                 ' J: Description"]
["          If IsNumeric(items(i, 9)) Then"]
["              wsTrk.Cells(writeRow, 11).Value = CDbl(items(i, 9))       ' K: Cost"]
["              wsTrk.Cells(writeRow, 11).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 11).Value = items(i, 9)"]
["          End If"]
["          If IsNumeric(items(i, 3)) Then"]
["              wsTrk.Cells(writeRow, 12).Value = CDbl(items(i, 3))       ' L: Retail"]
["              wsTrk.Cells(writeRow, 12).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 12).Value = items(i, 3)"]
["          End If"]
["          If IsNumeric(items(i, 5)) Then"]
["              wsTrk.Cells(writeRow, 13).Value = CDbl(items(i, 5))       ' M: Promo Price"]
["              wsTrk.Cells(writeRow, 13).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 13).Value = items(i, 5)"]
["          End If"]
["          If IsNumeric(items(i, 6)) Then"]
["              wsTrk.Cells(writeRow, 14).Value = CDbl(items(i, 6))       ' N: Savings"]
["              wsTrk.Cells(writeRow, 14).NumberFormat = \"$#,##0.00\""]
["          Else"]
["              wsTrk.Cells(writeRow, 14).Value = items(i, 6)"]
["          End If"]
["          wsTrk.Cells(writeRow, 15).Value = items(i, 7)                 ' O: Call Out"]
[]
["          ' Row formatting"]
["          Dim cc As Long"]
["          For cc = 1 To 15"]
["              wsTrk.Cells(writeRow, cc).Font.Name = \"Arial\""]
["              wsTrk.Cells(writeRow, cc).Font.Size = 10"]
["          Next cc"]
["          writeRow = writeRow + 1"]
["      Next i"]
["  End Sub"]
[]
["Bulk Load Update Button"]
[{"$cut":{"chars":22613,"head":"Option Explicit\n\nSub Bulk_LOAD()\n    Dim wsPlanner As Worksheet\n    Dim wsBulk As Worksheet\n    Dim combinedValue As String\n    Dim headerRange As Range\n    Dim wkColumn As Long\n    Dim nextRowWk As Long\n    \n    ' Variables for the RIN column export\n    Dim rinSourceHeader As Range\n    Dim rinDestHeader As Range\n    Dim srcRinColumn As Long\n    Dim destRinColumn As Long\n    Dim nextRowRin As Long\n    Dim sourceRinRange As Range\n    \n    ' Dynamic Header Variables\n    Dim retailSourceHeader As Range\n    Dim srcRetailColumn As Long\n    Dim plannerRetailValue As Variant\n    Dim imgDestHeader As Range\n    Dim destImgColumn As Long\n    \n    ' Description Source Header Variables\n    Dim descSourceHeader As Range\n    Dim srcDescColumn As Long\n    Dim plannerDescValue As Variant\n    \n    ' Ad Information Source Header Variables\n    Dim adInfoSourceHeader As Range\n    Dim srcAdInfoColumn As Long\n    Dim plannerAdInfoValue As Variant\n    \n    ' Variables to find the actual last row of data\n    Dim lastRowInRange As Long\n    Dim totalRinRows As Long\n    \n    ' Oracle Database Variables\n    Dim cn As Object\n    Dim rs As Object\n    Dim strSQL As String\n    Dim plannerRow As Long\n    Dim currentBulkRow As Long\n    Dim RCount As Long\n    \n    ' Access Database Variables\n    Dim cnAccess As Object\n    Dim rsAccess As Object\n    Dim strAccessSQL As String\n    Dim dbAccessPath As String\n    Dim currentItem As String\n    Dim recordFound As Boolean\n    Dim historicalInfo As String\n    Dim imageDeliveryInfo As String\n    \n    ' Validation boundary checking variables\n    Dim testList As String\n    Dim pos As Long\n    Dim charBefore As String\n    Dim charAfter As String\n    Dim isTrueMatch As Boolean\n    \n    ' Variable for splitting supplier information\n    Dim rawSupplierInfo As String\n    \n    ' Counter for sequential numbering in Column I\n    Dim itemCounter As Long\n\n    ' Set worksheets safely\n    On Error Resume Next\n    Set wsPlanner = ThisWorkbook.Sheets(\"Ad Week Planner\")\n    Set wsBulk = ThisWorkbook.Sheets(\"Ad Database Import\")\n    On Error GoTo 0\n    \n    ' Safety check to make sure sheet names match exactly\n    If wsPlanner Is Nothing Or wsBulk Is Nothing Then\n        MsgBox \"Error: Make sure 'Ad Week Planner' and 'Ad Database Import' sheets exist!\", vbCritical\n        Exit Sub\n    End If\n    \n    ' Access file configuration path\n    dbAccessPath = \"\\\\nexad.nexweb.us\\hq\\Common\\JackF\\Ad Database\\AdDB.accdb\"\n    \n    ' ==========================================\n    ' PART 1: BULK IMPORT \"Trans RIN\" TO \"RIN\"\n    ' ==========================================\n    Set rinSourceHeader = wsPlanner.Cells.Find(What:=\"Trans RIN\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    Set rinDestHeader = wsBulk.Rows(4).Find(What:=\"RIN\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    \n    ' Locate the \"Retail\" Header on the Planner sheet\n    Set retailSourceHeader = wsPlanner.Cells.Find(What:=\"Retail\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    \n    ' Locate the \"Description\" Header on the Planner sheet\n    Set descSourceHeader = wsPlanner.Cells.Find(What:=\"Description\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    \n    ' Locate the \"Ad Information\" Header on the Planner sheet\n    Set adInfoSourceHeader = wsPlanner.Cells.Find(What:=\"Ad Information\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    \n    ' Dynamically locate the \"Image\" Header on Row 4 of the Ad Database Import sheet (Expected Column N)\n    Set imgDestHeader = wsBulk.Rows(4).Find(What:=\"Image\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    \n    If rinSourceHeader Is Nothing Or rinDestHeader Is Nothing Then\n        MsgBox \"Could not find required headers ('Trans RIN' on Planner or 'RIN' on Row 4 of Ad Database Import)!\", vbCritical\n        Exit Sub\n    End If\n    \n    srcRinColumn = rinSourceHeader.Column\n    destRinColumn = rinDestHeader.Column\n    \n    ' Determine Image Column destination safely (Fallback to Column 14 / N if header can't be matched)\n    If Not imgDestHeader Is Nothing Then\n        destImgColumn = imgDest"}}]
[]
[]
["Bulk Load Incorporated into 'Export to Powerpoint' Button"]
[{"$cut":{"chars":32767,"head":"\nOption Explicit\n\n' ================================================================\n' MASTER CONTROLLER\n' Assign this macro to your form button.\n' ================================================================\nSub Run_Combined_Pipeline()\n    Dim confirmRun As VbMsgBoxResult\n    \n    confirmRun = MsgBox(\"This process will configure your PowerPoint presentation save path first.\" & vbCrLf & _\n                        \"The Bulk Load database ingestion will ONLY execute if a valid save path is chosen.\" & vbCrLf & _\n                        \"Do you want to continue?\", vbQuestion + vbYesNo, \"NEX - Run Sequenced Process\")\n    \n    If confirmRun = vbNo Then Exit Sub\n    \n    ' Launch the PowerPoint export, which acts as the gatekeeper for Bulk_LOAD\n    Call ExportToPowerPoint\nEnd Sub\n\n' ================================================================\n' PART 1: BULK IMPORT & DATABASE INGESTION\n' ================================================================\nSub Bulk_LOAD()\n    Dim wsPlanner As Worksheet\n    Dim wsBulk As Worksheet\n    Dim combinedValue As String\n    Dim headerRange As Range\n    Dim wkColumn As Long\n    Dim nextRowWk As Long\n    \n    ' Variables for the RIN column export\n    Dim rinSourceHeader As Range\n    Dim rinDestHeader As Range\n    Dim srcRinColumn As Long\n    Dim destRinColumn As Long\n    Dim nextRowRin As Long\n    Dim sourceRinRange As Range\n    \n    ' Dynamic Header Variables\n    Dim retailSourceHeader As Range\n    Dim srcRetailColumn As Long\n    Dim plannerRetailValue As Variant\n    Dim imgDestHeader As Range\n    Dim destImgColumn As Long\n    \n    ' Description Source Header Variables\n    Dim descSourceHeader As Range\n    Dim srcDescColumn As Long\n    Dim plannerDescValue As Variant\n    \n    ' Ad Information Source Header Variables\n    Dim adInfoSourceHeader As Range\n    Dim srcAdInfoColumn As Long\n    Dim plannerAdInfoValue As Variant\n    \n    ' Variables to find the actual last row of data\n    Dim lastRowInRange As Long\n    Dim totalRinRows As Long\n    \n    ' Oracle Database Variables\n    Dim cn As Object\n    Dim rs As Object\n    Dim strSQL As String\n    Dim plannerRow As Long\n    Dim currentBulkRow As Long\n    Dim RCount As Long\n    \n    ' Access Database Variables\n    Dim cnAccess As Object\n    Dim rsAccess As Object\n    Dim strAccessSQL As String\n    Dim dbAccessPath As String\n    Dim currentItem As String\n    Dim recordFound As Boolean\n    Dim historicalInfo As String\n    Dim imageDeliveryInfo As String\n    \n    ' Validation boundary checking variables\n    Dim testList As String\n    Dim pos As Long\n    Dim charBefore As String\n    Dim charAfter As String\n    Dim isTrueMatch As Boolean\n    \n    ' Variable for splitting supplier information\n    Dim rawSupplierInfo As String\n    \n    ' Counter for sequential numbering in Column I\n    Dim itemCounter As Long\n\n    ' Set worksheets safely\n    On Error Resume Next\n    Set wsPlanner = ThisWorkbook.Sheets(\"Ad Week Planner\")\n    Set wsBulk = ThisWorkbook.Sheets(\"Ad Database Import\")\n    On Error GoTo 0\n    \n    ' Safety check to make sure sheet names match exactly\n    If wsPlanner Is Nothing Or wsBulk Is Nothing Then\n        MsgBox \"Error: Make sure 'Ad Week Planner' and 'Ad Database Import' sheets exist!\", vbCritical\n        Exit Sub\n    End If\n    \n    ' Access file configuration path\n    dbAccessPath = \"\\\\nexad.nexweb.us\\hq\\Common\\JackF\\Ad Database\\AdDB.accdb\"\n    \n    ' Locate Headers\n    Set rinSourceHeader = wsPlanner.Cells.Find(What:=\"Trans RIN\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    Set rinDestHeader = wsBulk.Rows(4).Find(What:=\"RIN\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    Set retailSourceHeader = wsPlanner.Cells.Find(What:=\"Retail\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    Set descSourceHeader = wsPlanner.Cells.Find(What:=\"Description\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    Set adInfoSourceHeader = wsPlanner.Cells.Find(What:=\"Ad Information\", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)\n    Set imgDestHeader = wsBulk.Rows(4).Find(What:=\"Image\", LookIn:=xlValues, LookAt"}}]
[]
[]
["Raw 'Export to PowerPoint'"]
[{"$cut":{"chars":20916,"head":"Option Explicit\n\n' ================================================================\n' NEX Ad Tracker - MODULE 3: ExportToPowerPoint\n' Column map (final):\n'   Col 1  (A) = Trans RIN        >> PPT: YES\n'   Col 2  (B) = Parent RIN       >> PPT: NO\n'   Col 3  (C) = VPN              >> PPT: YES\n'   Col 4  (D) = UPC              >> PPT: NO\n'   Col 5  (E) = Cost             >> PPT: NO\n'   Col 6  (F) = Retail           >> PPT: YES\n'   Col 7  (G) = Description      >> PPT: YES\n'   Col 8  (H) = Promo Price      >> PPT: YES (only if Savings > 0)\n'   Col 9  (I) = Savings          >> PPT: YES (only if > 0)\n'   Col 10 (J) = Call Out         >> PPT: YES\n'   Col 11 (K) = Predecessor RIN  >> PPT: NO\n'   Col 12 (L) = LY Ad Units      >> PPT: NO\n'   Col 13 (M) = LY Units Lift %  >> PPT: NO\n'   Col 14 (N) = LY Rev Lift ($)  >> PPT: NO\n'   Col 15 (O) = Curr IOH         >> PPT: NO\n'   Col 16 (P) = GM %             >> PPT: NO\n'   Col 17 (Q) = Vendor Funded?   >> PPT: NO\n'   Col 18 (R) = Elasticity (LY)  >> PPT: NO\n'   Col 19 (S) = INCLUDE?         >> PPT: NO (trigger only)\n' Save As dialog fires BEFORE PowerPoint opens.\n' All-or-nothing: cancel = nothing opened, nothing saved.\n' ================================================================\n\nSub ExportToPowerPoint()\n\n    Dim ws           As Worksheet\n    Dim ppApp        As Object\n    Dim ppPres       As Object\n    Dim ppSlide      As Object\n    Dim fd           As FileDialog\n\n    Dim workbookDir  As String\n    Dim templateFile As String\n    Dim outputFile   As String\n    Dim adWeek       As String\n    Dim vehicle      As String\n    Dim userInput    As String\n\n    Dim slideChoice  As Integer\n    Dim maxItems     As Integer\n    Dim itemCount    As Integer\n    Dim shapeIdx     As Integer\n    Dim r            As Integer\n    Dim s            As Integer\n    Dim isEmail      As Boolean\n    Dim isLE         As Boolean\n    Dim slidesNeeded As Integer\n    Dim slideNum     As Integer\n    Dim globalIdx    As Integer\n\n    Dim pDesc        As String\n    Dim pVPN         As String\n    Dim pRIN         As String\n    Dim pRetail      As String\n    Dim pPromo       As String\n    Dim pSavings     As String\n    Dim pCallOut     As String\n    Dim pNew         As Boolean\n    Dim ct           As String\n    Dim lns()        As String\n    Dim li           As Integer\n    Dim fp           As Long\n\n    Dim items(1 To 210, 1 To 10) As String\n    Dim shapeData(1 To 210)     As String\n    Dim sl_shape                As Object\n    Dim tf                      As Object\n\n    Set ws = ThisWorkbook.Sheets(\"Ad Week Planner\")\n    workbookDir = ThisWorkbook.Path & \"\\\"\n\n    adWeek = Trim(ws.Range(\"B3\").Value)\n    vehicle = UCase(Trim(ws.Range(\"E3\").Value))\n\n    If adWeek = \"\" Then\n        MsgBox \"Fill in Ad Week in cell B3 before exporting.\", vbExclamation, \"NEX\"\n        Exit Sub\n    End If\n\n    ' Validate Brand column header - prevents silent data misalignment\n    ' if someone inserts/deletes columns in the planner.\n    If UCase(Trim(CStr(ws.Cells(9, 20).Value))) <> \"BRAND\" Then\n        MsgBox \"Column T row 9 must be labeled 'Brand'.\" & vbCrLf & _\n               \"Found: '\" & CStr(ws.Cells(9, 20).Value) & \"'\" & vbCrLf & vbCrLf & _\n               \"Add or restore the Brand column header before exporting.\", _\n               vbExclamation, \"NEX - Setup Issue\"\n        Exit Sub\n    End If\n\n    ' -- Collect YES rows (INCLUDE? = col 19 / S) ----------------------------\n    itemCount = 0\n    For r = 10 To 89\n        If UCase(Trim(ws.Cells(r, 19).Value)) = \"YES\" Then\n            itemCount = itemCount + 1\n            items(itemCount, 1) = Trim(ws.Cells(r, 1).Value)   ' Trans RIN    (A)\n            items(itemCount, 2) = Trim(ws.Cells(r, 3).Value)   ' VPN          (C)\n            items(itemCount, 3) = Trim(ws.Cells(r, 6).Value)   ' Retail       (F)\n            items(itemCount, 4) = Trim(ws.Cells(r, 7).Value)   ' Description  (G)\n            items(itemCount, 5) = Trim(ws.Cells(r, 8).Value)   ' Promo Price  (H)\n            items(itemCount, 6) = \"\"                         ' Savings      (I)\n            If Not IsError(ws.Cells(r, 9).Value) Then\n "}}]
[]
["Update SKU Button"]
["Option Explicit\n\nSub UpdateButton()\n\n    Const hdrRow As Long = 9\n    Const RINCol As String = \"A\"\n\n    Dim ThisWB As Workbook\n    Dim ThisWS As Worksheet\n    Dim lastRow As Long\n    Dim cellRow As Range\n    Dim cellCol As Range\n\n    ' Oracle Database Variables\n    Dim cn As Object\n    Dim rs As Object\n    Dim strSQL As String\n    \n    ' Access Database Variables\n    Dim cnAccess As Object\n    Dim rsAccess As Object\n    Dim strAccessSQL As String\n    Dim dbAccessPath As String\n    \n    Dim UpdateRange As String\n    Dim RCount As Long\n    Dim currentItem As String\n    Dim recordFound As Boolean\n    Dim historicalInfo As String\n    \n    ' Validation boundary checking variables\n    Dim testList As String\n    Dim pos As Long\n    Dim charBefore As String\n    Dim charAfter As String\n    Dim isTrueMatch As Boolean\n\n    Set ThisWB = ActiveWorkbook\n    Set ThisWS = ThisWB.ActiveSheet\n\n    ' Access file configuration path\n    dbAccessPath = \"\\\\nexad.nexweb.us\\hq\\Common\\JackF\\Ad Database\\AdDB.accdb\"\n\n    ' Find last row safely using the method from your reference code\n    lastRow = ThisWS.Cells.Find(\"*\", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row\n\n    ' Reference validation check for highlighting target ranges\n    If Selection.Column <> 1 Then\n        UpdateRange = Replace(ThisWS.Range(\"A10:A\" & lastRow).Address, \"$\", \"\")\n    Else\n        UpdateRange = Replace(Selection.Address, \"$\", \"\")\n    End If\n\n    ' Initialize Connections\n    Set cn = CreateObject(\"ADODB.Connection\")\n    Set cnAccess = CreateObject(\"ADODB.Connection\")\n\n    On Error GoTo oraerror\n    \n    ' 1. Open primary connection to Oracle RMS\n    cn.Open \"Driver={Microsoft ODBC for Oracle};Server=RMS1P.NEXWEB.US;Uid=View_only;Pwd=\" & zzz() & \";\"\n    \n    ' 2. Open secondary connection to the Access database\n    cnAccess.Open \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\" & dbAccessPath\n\n    Application.Cursor = xlWait\n\n    ' --- MAIN SELECTION LOOP ---\n    For Each cellRow In ThisWS.Range(UpdateRange).Rows\n\n        currentItem = Trim(ThisWS.Range(RINCol & cellRow.Row).Value)\n        strSQL = ThisWB.Sheets(\"SQL\").Range(\"rngrmsquery\").Value\n        strSQL = Replace(strSQL, \"ITEMS\", currentItem)\n\n        ' Ensure we have a valid, checkable item number length before hammering DBs\n        If IsNumeric(currentItem) And Len(currentItem) > 5 Then\n\n            ' ========================================================\n            ' PART 1: RUN ORACLE RMS DATA PULL\n            ' ========================================================\n            Set rs = CreateObject(\"ADODB.Recordset\")\n            rs.CursorLocation = 3 ' adUseClient\n            rs.Open strSQL, cn\n\n            If Not rs.EOF Then\n                RCount = rs.RecordCount\n\n                If RCount = 1 Then\n                    Do While Not rs.EOF\n                        ' Loops columns A through J for header matching (Oracle fields)\n                        For Each cellCol In ThisWS.Range(\"A\" & hdrRow & \":J\" & hdrRow)\n                            If InStr(1, \"vpnupcparent rincostretaildescriptionsupplier\", LCase(cellCol.Value)) > 0 Then\n                                If cellCol.Value <> \"\" Then\n                                    ThisWS.Cells(cellRow.Row, cellCol.Column).Value = rs(cellCol.Value).Value\n                                End If\n                            End If\n                        Next cellCol\n\n                        rs.MoveNext\n                    Loop\n                End If\n            End If\n\n            If rs.State = 1 Then rs.Close\n            Set rs = Nothing\n\n\n            ' ========================================================\n            ' PART 2: RUN ACCESS PULL (CHRONOLOGICAL HYBRID LOGIC ENGINE)\n            ' ========================================================\n            recordFound = False\n            historicalInfo = \"\"\n            \n            ' Strategy A: Search by strict Numeric ID (Sorted by newest [ID] first)\n            If IsNumeric(currentItem) Then\n                strAccessSQL = \"SELECT [Ad Information] FROM Main WHERE [ID] = \" & Val(currentItem) & \" ORDER BY [ID] DESC\"\n                Set rsAccess = CreateObject(\"ADODB.Recordset\")\n                rsAccess.CursorLocation = 3\n                On Error Resume Next\n                rsAccess.Open strAccessSQL, cnAccess, 1, 1\n                On Error GoTo oraerror\n                If Not rsAccess.EOF Then\n                    Do While Not rsAccess.EOF\n                        If Not IsNull(rsAccess.Fields(\"Ad Information\").Value) And Trim(rsAccess.Fields(\"Ad Information\").Value) <> \"\" Then\n                            historicalInfo = rsAccess.Fields(\"Ad Information\").Value\n                            recordFound = True\n                            Exit Do\n                        End If\n                        rsAccess.MoveNext\n                    Loop\n                End If\n            End If\n            \n            ' Strategy B: Text-based exact ID comparison (Sorted by newest [ID] first)\n            If Not recordFound Then\n                If Not rsAccess Is Nothing Then If rsAccess.State = 1 Then rsAccess.Close\n                strAccessSQL = \"SELECT [Ad Information] FROM Main WHERE CStr([ID]) = '\" & currentItem & \"' ORDER BY [ID] DESC\"\n                Set rsAccess = CreateObject(\"ADODB.Recordset\")\n                rsAccess.CursorLocation = 3\n                rsAccess.Open strAccessSQL, cnAccess, 1, 1\n                If Not rsAccess.EOF Then\n                    Do While Not rsAccess.EOF\n                        If Not IsNull(rsAccess.Fields(\"Ad Information\").Value) And Trim(rsAccess.Fields(\"Ad Information\").Value) <> \"\" Then\n                            historicalInfo = rsAccess.Fields(\"Ad Information\").Value\n                            recordFound = True\n                            Exit Do\n                        End If\n                        rsAccess.MoveNext\n                    Loop\n                End If\n            End If\n            \n            ' Strategy C: VBA-Validated Text Array Filter (Sorted by newest [ID] first)\n            If Not recordFound Then\n                If Not rsAccess Is Nothing Then If rsAccess.State = 1 Then rsAccess.Close\n                \n                ' Pull records containing the substring sorted dynamically by latest Entry ID\n                strAccessSQL = \"SELECT [Ad Information], [RIN or Item List] FROM Main WHERE [RIN or Item List] LIKE '%\" & currentItem & \"%' ORDER BY [ID] DESC\"\n                Set rsAccess = CreateObject(\"ADODB.Recordset\")\n                rsAccess.CursorLocation = 3\n                rsAccess.Open strAccessSQL, cnAccess, 1, 1\n                \n                ' Programmatic boundary valuation loop (Checking top records first)\n                Do While Not rsAccess.EOF\n                    testList = Trim(CStr(rsAccess.Fields(\"RIN or Item List\").Value))\n                    pos = InStr(1, testList, currentItem)\n                    \n                    Do While pos > 0\n                        isTrueMatch = True\n                        \n                        ' Confirm preceding character boundary\n                        If pos > 1 Then\n                            charBefore = Mid(testList, pos - 1, 1)\n                            If charBefore Like \"[0-9]\" Then isTrueMatch = False\n                        End If\n                        \n                        ' Confirm trailing character boundary\n                        If pos + Len(currentItem) <= Len(testList) Then\n                            charAfter = Mid(testList, pos + Len(currentItem), 1)\n                            If charAfter Like \"[0-9]\" Then isTrueMatch = False\n                        End If\n                        \n                        ' Save and break out as soon as the first verified true match with text is hit\n                        If isTrueMatch Then\n                            If Not IsNull(rsAccess.Fields(\"Ad Information\").Value) And Trim(rsAccess.Fields(\"Ad Information\").Value) <> \"\" Then\n                                historicalInfo = rsAccess.Fields(\"Ad Information\").Value\n                                recordFound = True\n                                Exit Do\n                            End If\n                        End If\n                        \n                        pos = InStr(pos + 1, testList, currentItem)\n                    Loop\n                    \n                    If recordFound Then Exit Do\n                    rsAccess.MoveNext\n                Loop\n            End If\n\n            ' --- POPULATE RESOLVED DATA INTO EXCEL CELL ---\n            If recordFound Then\n                ThisWS.Cells(cellRow.Row, 10).Value = historicalInfo\n            Else\n                ThisWS.Cells(cellRow.Row, 10).Value = \"\" \n            End If\n\n            If Not rsAccess Is Nothing Then If rsAccess.State = 1 Then rsAccess.Close\n            Set rsAccess = Nothing\n\n        End If\n\n    Next cellRow\n\n    ' --- CLEANUP CONNECTIONS ---\n    If cn.State = 1 Then cn.Close\n    Set cn = Nothing\n    If cnAccess.State = 1 Then cnAccess.Close\n    Set cnAccess = Nothing\n\n    Application.Cursor = xlDefault\n    MsgBox \"Rows \" & Replace(UpdateRange, \"A\", \"\") & \" successfully updated with Oracle Data and Newest Access Ad Info.\", vbInformation, \"Done!\"\n    Exit Sub\n\noraerror:\n    Application.Cursor = xlDefault\n    MsgBox \"Error encountered: \" & Err.Description, vbCritical, \"Database Sync Issue\"\n\n    If Not cn Is Nothing Then If cn.State = 1 Then cn.Close\n    Set cn = Nothing\n    If Not cnAccess Is Nothing Then If cnAccess.State = 1 Then cnAccess.Close\n    Set cnAccess = Nothing\nEnd Sub\n\n\n' ============================================================\n' SAFE PASSWORD READER\n' ============================================================\nPublic Function zzz() As String\n\n    Dim TextLine As String\n    Dim TargetFile As String\n    Dim f As Integer\n\n    TargetFile = \"\\\\nexad.nexweb.us\\HQ\\Common\\JackF\\mi4ma3\\ToadPW\\ToadPW.txt\"\n\n    On Error GoTo CantFind\n\n    f = FreeFile\n    Open TargetFile For Input As #f\n\n    Do While Not EOF(f)\n        Line Input #f, TextLine\n    Loop\n\n    Close #f\n\n    zzz = Trim(TextLine)\n    Exit Function\n\nCantFind:\n    MsgBox \"Problem connecting to T: Drive\", vbInformation, \"Check access to Network\"\nEnd Function"]

{"sheet":"SQL","index":10,"n_rows":1,"n_cols":2,"rows_kept":1,"cut":false,"hidden":false,"merged":[]}
["RMS QUERY","SELECT item \"Trans RIN\", item_parent \"Parent RIN\", \"UPC\", item_desc \"Description\", im.dept \"Dept\", im.class \"Class\", \"Supplier Information\", \"VPN\", \"Cost\", \"Retail\", To_Char(mfg_rec_retail,'FM99,999.00') \"MSRP\"\nFROM (SELECT * from item_master im1 \n  WHERE im1.item IN (select im2.ITEM_PARENT from item_master im2 where im2.ITEM_NUMBER_TYPE in ('UCC14','UPC-A','EAN13') AND im2.item IN ('ITEMS')) \n  UNION\n  SELECT * from item_master im3 \n  WHERE (im3.item IN ('ITEMS') \n  OR im3.item_parent IN ('ITEMS')) \n  AND im3.tran_level = im3.item_level) im \nLEFT JOIN \n  (SELECT isu.item, isu.supplier, primary_supp_ind, vpn,\n  (SELECT im2.item FROM item_master im2 WHERE im2.item_parent=isu.item and (im2.ITEM_NUMBER_TYPE = 'UCC14' or im2.ITEM_NUMBER_TYPE = 'UPC-A' or im2.ITEM_NUMBER_TYPE = 'EAN13') and primary_ref_item_ind = 'Y') \"UPC\",   \n  supplier||':'||(SELECT sup_name FROM RMS.sups WHERE sups.supplier = isu.supplier) \"Supplier Information\", \n  (SELECT selling_unit_retail FROM item_loc il WHERE il.item = isu.item and loc IN ('10','650','781','9840','9850') and rownum = 1) \"Retail\",\n  (SELECT unit_cost FROM item_supp_country isc WHERE isc.item=isu.item AND isc.supplier=isu.supplier AND isu.primary_supp_ind='Y' and rownum = 1) \"Cost\"\n  FROM RMS.item_supplier isu)\nUSING (Item)\nWHERE primary_supp_ind = 'Y' AND im.item_number_type='ITEM'"]