I have a spreadsheet in which I'm trying to prevent users from accidentally modifying cells containing formulas. On occasion, however, they will need to manually input data instead of allowing the formula to calculate. Using info found on this forum I put
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const WS_RANGE As String = "D9:O9"
On Error Resume Next
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
Application.ScreenUpdating = False
frmChange.Show
Application.ScreenUpdating = True
End If
End Sub
into the worksheet. frmChange.Show asks the user if s/he would like to change the contents of the cell and contains
Private Sub cmdNo_Click()
ActiveCell.Offset(1, 0).Select
Unload Me
End Sub
Private Sub cmdYes_Click()
ActiveCell.ClearContents
Unload Me
End Sub
This works perfectly for me accept that if the user clicks 'Yes' then the entire workbook recalculates. Having had other recalculation problems in the past, is there a way to prevent the recalculation of the entire worksheet? Basically what I'm looking for is a way to get the same effect as setting Calculation to Manual, except that during the course of normal data entry I need the cells containing formulas to calculate.
Bookmarks