Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm currently using Worksheet_Change() to verify the user has entered
valid data in specific cells. Here is a sample of my code Private Sub Worksheet_Change(ByVal Target As Excel.Range) Application.EnableEvents = False Application.ScreenUpdating = False For Each Rng In Target With Rng ' SUDO CODE STARTING HERE If .Row = Y And .Column = X Then If Verify .Value for this cell = True Then Set Cell Formats (Font, Alignment, Borders etc etc) else .Value = "" End if Set Default Cell Formats (Font, Alignment, Borders etc etc) End if End With Next Rng Application.EnableEvents = True Application.ScreenUpdating = True End Sub Now, I'd like to know if there is a way to detect specific changes to a cell. Like if the user does more than just change .Value.. Can I detect if the user changes various format options and restore to my default settings? Or do I simply need set the cells format options every time a cell is updated even if it's just .Value being changed? Also, if the user selects multiple rows and deletes them the program loops this sub for each cell the user is deleting. Is there a simple way to say If user is deleting rows skip all these checks and just have the rows removed? Thanks Eric |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() "Wescotte" wrote in message ups.com... Now, I'd like to know if there is a way to detect specific changes to a cell. Like if the user does more than just change .Value.. Can I detect if the user changes various format options and restore to my default settings? Or do I simply need set the cells format options every time a cell is updated even if it's just .Value being changed? You could set a variable to the cell on selection, and upon change test if the properties are the same. But there are a lot of them and it might be better just to set to your desired state. Also, if the user selects multiple rows and deletes them the program loops this sub for each cell the user is deleting. Is there a simple way to say If user is deleting rows skip all these checks and just have the rows removed? Can't see how. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Also, if the user selects multiple rows and deletes them the program
loops this sub for each cell the user is deleting. Is there a simple way to say If user is deleting rows skip all these checks and just have the rows removed? Can't see how. The reason I need this is when the user deletes quite a few rows at once it produces a significant lag to complete the check on all the cells. Also it produces "phantom" cells where they are technically empty but the scroll bar on the right doesn't adjust correctly. You could have 5000 rows.. Delete 4999 of them and then save your workbook. Close it and reopen it and the Excel would still consider the spreadsheet to have 5000 rows instead of just 1. So now the user has a scroll bar that is inaccurate and when the user prints the spreadsheet instead of 1 page it'll produce however many are needed to display 4999 blank cells. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
See http://www.contextures.com/xlfaqApp.html#Unused
-- HTH RP (remove nothere from the email address if mailing direct) "Wescotte" wrote in message oups.com... Also, if the user selects multiple rows and deletes them the program loops this sub for each cell the user is deleting. Is there a simple way to say If user is deleting rows skip all these checks and just have the rows removed? Can't see how. The reason I need this is when the user deletes quite a few rows at once it produces a significant lag to complete the check on all the cells. Also it produces "phantom" cells where they are technically empty but the scroll bar on the right doesn't adjust correctly. You could have 5000 rows.. Delete 4999 of them and then save your workbook. Close it and reopen it and the Excel would still consider the spreadsheet to have 5000 rows instead of just 1. So now the user has a scroll bar that is inaccurate and when the user prints the spreadsheet instead of 1 page it'll produce however many are needed to display 4999 blank cells. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Private Sub Worksheet_Change(ByVal Target As Excel.Range) | Excel Programming | |||
Private Sub Worksheet_Change(ByVal Target As Excel.Range) | Excel Worksheet Functions | |||
Worksheet_Change(ByVal Target As Excel.Range) | Excel Programming | |||
Excel VBA .... Worksheet_Change(ByVal Target As Range) question | Excel Programming | |||
Many Sub Worksheet_Change(ByVal Target As Range) In One Worksheet | Excel Programming |