98.7% Of all customers recommend us, we're so confident about our results we publish all reviews and stats
View Live Stats View ReviewsForum home » Delegate support and help forum » Microsoft Excel VBA Training and help » Select...Case Statements
Select...Case Statements
Resolved · Low Priority · Version 2010
Felicity has attended:
Excel Advanced course
Excel VBA Intro Intermediate course
Access Intermediate course
Select...Case Statements
I'm trying to ensure the data in a certain column (H) can't be changed before the data in another (F) has been updated. I started with an If statements but that meant one couldn't update anything in column H at all. I've started to work on a Select Case statement instead, to evaluate whether the user is trying to change the value of a cell in column H, undoing it and changing the active cell to column F of hte same row. However I can't seem to get my head around how to make it so that if one HAS updated column F that changing column H is also possible.
I've got this far:
Public Sub Change_Event(ByVal Target As Range)
Select Case Target.Column
Case Is = Target.Column = 6
Target.Cells.Offset(0, 2).ClearContents
Case Is = Target.Column = 8 And Target.Cells <> 0
MsgBox "Update Date Last Seen Date before changing review date " & Range("AC1").Value, _
vbCritical, "Error Message"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Target.Offset(0, -2).Select
Case Else
Exit Sub
End Select
End Sub
but nothing happens.
Any help appreciated
Thanks
RE: Select...Case Statements
Hi Felicity,
Thanks for the forum question.
I have changed your code a little bit but it is working. You can only do this with the if then else decision code. Select case can only handle one object at the time.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 6 Then
Target.Offset(0, 2).ClearContents
ElseIf Target.Column = 8 And Target <> 0 Then
MsgBox "Update Date Last Seen Date before changing review date " & Range("AC1").Value, _
vbCritical, "Error Message"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Target.Offset(0, -2).Select
End If
End Sub
Kind regards
Jens Bonde
Microsoft Office Specialist Trainer
Tel: 0207 987 3777
Best STL - https://www.stl-training.co.uk
98%+ recommend us
London's leader with UK wide delivery in Microsoft Office training and management training to global brands, FTSE 100, SME's and the public sector
RE: Select...Case Statements
Hi Jens,
Thankyou, however I'm still having trouble: that works to stop one changing the contents of the cell in column H and forces you to update the corresponding cell in column F, however, once that cell is updated, it clears the contents of the cell in H but still won't let you change it.
Sorry that sounds really longwinded! I need to be able to change the contents of the cell in H but only AFTER the corresponding cell in F has been changed. The idea is to force the user to complete the spreadsheet correctly i.e. updating the "last seen" date in column F before changing the "next due" date in H - there have been errors in reports because this is not always done. Does that make sense?
Fliss
RE: Select...Case Statements
Hi Felicity,
Sorry the late answer but I haven't been in the office for a week.
It is not straight forward what you want to do, but I found a website, where you can find the code to log changes in a specific range. I hope this can guide you in the right direction.
http://www.mrexcel.com/forum/excel-questions/500810-visual-basic-applications-code-track-changes-workbook.html
Kind regards
Jens Bonde
Microsoft Office Specialist Trainer
Tel: 0207 987 3777
Best STL - https://www.stl-training.co.uk
98%+ recommend us
London's leader with UK wide delivery in Microsoft Office training and management training to global brands, FTSE 100, SME's and the public sector
Wed 10 Sep 2014: Automatically marked as resolved.
Training information:
Welcome. Please choose your application (eg. Excel) and then post your question. Our Microsoft Qualified trainers will then respond within 24 hours (working days). Frequently Asked Questions
Any suggestions, questions or comments? Please post in the Improve the forum thread. |
Excel tip:Change the default location for opening and saving spreadsheetsIf you are always opening spreadsheets from and/or saving documents to a specific location that is not My Documents, save time by setting this folder as the default for opening files from and saving files to. |