Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
LAF
 
Posts: n/a
Default Worksheet Change event


I have a range on one of my worksheets that I use the Worksheet change
event for. The range is a column of about 200 rows where the user can
enter percentages. Right now I have code in there that makes sure they
don't enter a percentage less than a default one that has been already
set. If they do enter one that is less, then a message is displayed
and the value of that cell is set back to the default. The user is
allowed to increase the percentage. However, if the user increases it
and then goes back to the cell to try to make it lower than the
default, then it sets it back to the default, not the higher value they
had there previously. For example, if the default is 4% and then I
increase it to 5% and then try to lower it to 3%, it will set it back
to the 4% instead of 5%. Is there a way to set it back to what it
previously had in there instead of setting it to the default.
Also, another thing I noticed is that it calls the worksheet_change
event even when I type in the same number that was there. For example,
if the number was 4% and I type in 4% again, it calls that event. Is
there a way to avoid that?


--
LAF
------------------------------------------------------------------------
LAF's Profile: http://www.excelforum.com/member.php...fo&userid=9656
View this thread: http://www.excelforum.com/showthread...hreadid=497520

  #2   Report Post  
Posted to microsoft.public.excel.misc
Stephen Bullen
 
Posts: n/a
Default Worksheet Change event

Hi Laf,

However, if the user increases it
and then goes back to the cell to try to make it lower than the
default, then it sets it back to the default, not the higher value they
had there previously. For example, if the default is 4% and then I
increase it to 5% and then try to lower it to 3%, it will set it back
to the 4% instead of 5%. Is there a way to set it back to what it
previously had in there instead of setting it to the default.


One way is to use the Selection_Change event to store the original number
in a module-level variable and set the cell back to that (assuming it is
above the threshold level).

Regards

Stephen Bullen
Microsoft MVP - Excel

Professional Excel Development
The most advanced Excel VBA book available
www.oaltd.co.uk/ProExcelDev


  #3   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson
 
Posts: n/a
Default Worksheet Change event

Another way is to use Application.undo in your code.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count 1 Then Exit Sub

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

On Error GoTo errHandler:

If Target.Value 1 Then
With Application
.EnableEvents = False
.Undo
End With
MsgBox "no, nope, na, na!"
End If

errHandler:
Application.EnableEvents = True
End Sub

LAF wrote:

I have a range on one of my worksheets that I use the Worksheet change
event for. The range is a column of about 200 rows where the user can
enter percentages. Right now I have code in there that makes sure they
don't enter a percentage less than a default one that has been already
set. If they do enter one that is less, then a message is displayed
and the value of that cell is set back to the default. The user is
allowed to increase the percentage. However, if the user increases it
and then goes back to the cell to try to make it lower than the
default, then it sets it back to the default, not the higher value they
had there previously. For example, if the default is 4% and then I
increase it to 5% and then try to lower it to 3%, it will set it back
to the 4% instead of 5%. Is there a way to set it back to what it
previously had in there instead of setting it to the default.
Also, another thing I noticed is that it calls the worksheet_change
event even when I type in the same number that was there. For example,
if the number was 4% and I type in 4% again, it calls that event. Is
there a way to avoid that?

--
LAF
------------------------------------------------------------------------
LAF's Profile: http://www.excelforum.com/member.php...fo&userid=9656
View this thread: http://www.excelforum.com/showthread...hreadid=497520


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.misc
LAF
 
Posts: n/a
Default Worksheet Change event


The Application.Undo worked. Thank you very much!


--
LAF
------------------------------------------------------------------------
LAF's Profile: http://www.excelforum.com/member.php...fo&userid=9656
View this thread: http://www.excelforum.com/showthread...hreadid=497520

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
Using this Automatic Resizing Macro with Worksheet Change [email protected] Excel Discussion (Misc queries) 0 December 19th 05 03:57 PM
Worksheet Change Event DCSwearingen Excel Discussion (Misc queries) 1 October 10th 05 10:25 PM
change source worksheet neeraj Excel Discussion (Misc queries) 2 September 21st 05 10:16 PM
Linking worksheet event codes Mr. G. Excel Worksheet Functions 7 July 15th 05 06:15 PM
How to change the right-to-left worksheet to left-to-right workshe RAMA Excel Discussion (Misc queries) 1 July 4th 05 01:57 PM


All times are GMT +1. The time now is 04:22 PM.

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

About Us

"It's about Microsoft Excel"