Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Problem with calculating


I have a spreadsheet in which I'm trying to prevent users fro
accidentally modifying cells containing formulas. On occasion
however, they will need to manually input data instead of allowing th
formula to calculate. Using info found on this forum I put

Code
-------------------

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 t
change the contents of the cell and contains

Code
-------------------

Private Sub cmdNo_Click()
ActiveCell.Offset(1, 0).Select
Unload Me
End Sub

Private Sub cmdYes_Click()
ActiveCell.ClearContents
Unload Me
End Sub

Code
-------------------

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

--
Prometheu
-----------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...fo&userid=1569
View this thread: http://www.excelforum.com/showthread.php?threadid=47034

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Problem with calculating


I saw a reference to setting xcalculation to semiautomatic but I can'
seem to get that to work, any suggestions

--
Prometheu
-----------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...fo&userid=1569
View this thread: http://www.excelforum.com/showthread.php?threadid=47034

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Problem with calculating

Are you asking if you can stop the worksheet from recalculating when you
clearcontents of the cell?

You could turn calculation off, clear the contents, then turn calculation back
on when the user selects another cell--but that sounds dangerous to me.

I guess my question is why bother clearing the cell at all. Just let them type
the new entry.

=====
Another option I've used when I want to give users a chance to override formulas
is to use multiple cells.

Say I a formula in C12.
I'd use D12 as the User Input Cell
Then I'd use this is E12:
=if(d12="",c12,d12)

And have every subsequent formulas point at E12 (since that contains the results
of the formula or the user override).

Prometheus wrote:

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

Code:
--------------------

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

Code:
--------------------

Private Sub cmdNo_Click()
ActiveCell.Offset(1, 0).Select
Unload Me
End Sub

Private Sub cmdYes_Click()
ActiveCell.ClearContents
Unload Me
End Sub

Code:
--------------------

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.

--
Prometheus
------------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...o&userid=15697
View this thread: http://www.excelforum.com/showthread...hreadid=470342


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Problem with calculating


Excellent, thanks for the tip. I thought it would be nice to clear the
cell for the user but didn't realize that was causing the
recalculation. One other question I have is if it's possible to
declare more than one range in the code

Code:
--------------------

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
End If

End Sub

--------------------

For example, is there a way to set the range as D9:09, D13:013,
D15:015, etc, without creating a new sub for each?


--
Prometheus
------------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...o&userid=15697
View this thread: http://www.excelforum.com/showthread...hreadid=470342

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Problem with calculating

Const WS_RANGE As String = "D9:O9,"X1:y2"

would be one way.

Prometheus wrote:

Excellent, thanks for the tip. I thought it would be nice to clear the
cell for the user but didn't realize that was causing the
recalculation. One other question I have is if it's possible to
declare more than one range in the code

Code:
--------------------

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
End If

End Sub

--------------------

For example, is there a way to set the range as D9:09, D13:013,
D15:015, etc, without creating a new sub for each?

--
Prometheus
------------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...o&userid=15697
View this thread: http://www.excelforum.com/showthread...hreadid=470342


--

Dave Peterson


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Problem with calculating

And if that increment were nice, you could even use some arithmetic:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Me.Range("d:o")) Is Nothing Then Exit Sub

If Target.Row < 9 Then Exit Sub
If Target.Row Mod 4 < 1 Then Exit Sub

Application.ScreenUpdating = False
frmChange.Show
Application.ScreenUpdating = True

End Sub

This got row 9, 13, 17, 21, ...

(I didn't see a pattern with your sample.)


Prometheus wrote:

Excellent, thanks for the tip. I thought it would be nice to clear the
cell for the user but didn't realize that was causing the
recalculation. One other question I have is if it's possible to
declare more than one range in the code

Code:
--------------------

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
End If

End Sub

--------------------

For example, is there a way to set the range as D9:09, D13:013,
D15:015, etc, without creating a new sub for each?

--
Prometheus
------------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...o&userid=15697
View this thread: http://www.excelforum.com/showthread...hreadid=470342


--

Dave Peterson
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Problem with calculating


Well if there's a mathematical formula to determine the location of th
rows I need to protect I'm not smart enough to figure it out. However
the first example was just what I needed, thanks

--
Prometheu
-----------------------------------------------------------------------
Prometheus's Profile: http://www.excelforum.com/member.php...fo&userid=1569
View this thread: http://www.excelforum.com/showthread.php?threadid=47034

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Calculating Problem: Desperate :( cionnaith Excel Worksheet Functions 4 March 10th 10 02:09 AM
Problem calculating RonH Excel Worksheet Functions 3 February 13th 09 09:10 PM
Problem calculating RonH Excel Discussion (Misc queries) 1 February 13th 09 04:51 PM
Problem calculating Using a Percentage BrownsFan Excel Worksheet Functions 4 August 4th 08 08:35 PM
Excel Calculating problem JohnS-BelmontNC Excel Discussion (Misc queries) 4 June 9th 08 06:09 PM


All times are GMT +1. The time now is 10:52 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"