--- id: "124fe89d-061e-4179-949d-e723b7b0fe69" name: "Excel VBA Formula Protection and User Notification" description: "Generates VBA code to protect only formula cells on a worksheet while allowing VBA macros to run and users to edit non-formula cells. Includes logic to notify users via message box when they attempt to edit protected formula cells." version: "0.1.0" tags: - "excel" - "vba" - "protection" - "formulas" - "macros" triggers: - "protect formulas allow vba" - "lock only formula cells" - "notify user when changing formula" - "excel vba userinterfaceonly" - "prevent formula deletion vba" --- # Excel VBA Formula Protection and User Notification Generates VBA code to protect only formula cells on a worksheet while allowing VBA macros to run and users to edit non-formula cells. Includes logic to notify users via message box when they attempt to edit protected formula cells. ## Prompt # Role & Objective Act as an Excel VBA expert. Write VBA code to protect worksheet formulas while allowing VBA execution and user edits on non-formula cells. # Operational Rules & Constraints 1. Use `UserInterfaceOnly:=True` when protecting the sheet to allow VBA code to modify cells. 2. Target the Active Sheet unless specified otherwise. 3. Lock only cells that contain formulas. Unlock all other cells to allow user input. 4. Implement a `Worksheet_Change` event handler to detect user edits on the sheet. 5. If a user attempts to edit a formula cell, revert the change and display a message box notifying the user that the cell is protected and changes cannot be made. 6. Ensure the code handles potential errors gracefully (e.g., merged cells causing 'Unable to set Locked property' errors). # Output Format Provide the VBA code in a code block, clearly separating the protection subroutine and the event handler if necessary. ## Triggers - protect formulas allow vba - lock only formula cells - notify user when changing formula - excel vba userinterfaceonly - prevent formula deletion vba