Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / May 2008

Tip: Looking for answers? Try searching our database.

Preventing change of a cell value

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Raj - 30 May 2008 18:04 GMT
Hi,

Value in column A determines values in other cells in the same row.
I want the user to be warned before changing the value in column A
that the contents of the row will be deleted as values in other cells
depend on the value in column A. I am using the worksheet change event
for this. Unfortunately, this works only after the value in Column A
is changed. The code I am using in the worksheet change event  is:
If Inputsheet.Cells(Selection.Row, 9) <> "".  Then etc.

Here column 9 is selected as the value in column 9 is derived through
a series of changes in the intervening columns: all decided by the
value in column 1(A).

Any help on how to prevent change to cell in column A before changing
the value will be welcome.

Thanks in advance for the help.

Regards,
Raj
Norman Jones - 30 May 2008 19:05 GMT
Hi Raj,

In the worksheet's code module replace
your existing Workshhet_Change code
with the following version:

'==========>>
Option Explicit

Private Sub Worksheet_Change( _
               ByVal Target As Range)
   Dim Rng As Range
   Dim rcell As Range
   Const sCol As String = "I:I"   '\\ Column 9
   Const sMsg As String = _
                        "Your Alert message"    '<<==== CHANGE

   Set Rng = Intersect(Me.Range(sCol), Target)

   If Not Rng Is Nothing Then
       With Rng
           If Rng.Count > Application.CountA(.Cells) Then
               With Application
                   .EnableEvents = False
                   .Undo
                   .EnableEvents = True
                   MsgBox Prompt:=sMsg, Buttons:=vbCritical
               End With
           End If
       End With
   End If
End Sub
'<<==========
---
Regards.
Norman

> Hi,
>
[quoted text clipped - 17 lines]
> Regards,
> Raj
Rick Rothstein (MVP - VB) - 30 May 2008 19:09 GMT
Give the following worksheet Change event code try (the user will be asked
if he/she really wants to change the value and, if the answer is no, the
original value for the cell will be restored)...

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Answer As Long
 If Target.Column = 1 Then
   On Error GoTo Done
   Application.EnableEvents = False
   Answer = MsgBox("Changing this value will delete other values " & _
                   "in this row." & vbCrLf & vbCrLf & "Did you " & _
                   "want to still change the cell's value?", vbYesNo)
   If Answer = vbNo Then Application.Undo
 Else
   '
   '  Your non-Column "A" change event code, if any, goes here
   '
 End If
Done:
 Application.EnableEvents = True
End Sub

Rick

> Hi,
>
[quoted text clipped - 17 lines]
> Regards,
> Raj
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.