Add SheetDelete(), BeforeRename(), Rename(), BeforeHide(), etc. events...
Can we please get 8 new EXTREMELY USEFUL events for Excel worksheets: SheetDelete(), BeforeRename(), Rename(), BeforeHide(), Hide(), BeforeUnhide(), Unhidden(), and BeforeNewSheet(). Excel already has NewSheet() and SheetBeforeDelete() events.
It makes sense that the BeforeNewSheet(), NewSheet(), SheetBeforeDelete(), and the SheetDelete() events must be in the workbook code object module, and that they should posses the "Sh As Object" argument in order to determine which sheet the user is attempting to act on. But the rest should be available in each worksheet's code object module.
All of he "Before...()" events, including the existing ones, would additionally need a "Cancel As Boolean" argument/parameter, as well, to allow for cancelling the operation. Because data formatting and VBA code MUST (I can't stress the MUST part enough) often be tied to worksheets and/or their names, we need the ability to determine when the user hides, unhides, renames, adds, or deletes a specific worksheet so that we can cancel the operation, or trigger another follow-up operation once the user-initiated operation (rename, delete, add, etc.) completes.
Yes, I know people suggest to reference a worksheet in code by its index number rather than by its current name. But for those people I can give you 20 examples where using that method also causes unpleasant program conflict and issues. Also, see above where I stress that often code MUST be tied to a worksheet name. And, also quite often, certain calculations or the data being displayed is dependent upon the current name given to a worksheet by a user. Very often also, the worksheet name must comply with company standards, such as is the case at our company. Additionally, we need the ability (better than what currently exists) to cancel the user adding new worksheets and deleting, hiding, or unhiding existing worksheets, because so very often the data in one worksheet is connected to another. Using the 'Protect Workbook' feature is rarely useful because when enacted, also prevents using other features which are useful.