V
VBANovice
the code below is used to save some data when a user changes months on a
combobox. The code prompts the user to see if he/she wants to save the
estimates with a Yes, No, Cancel.
yes and no cases work as expected but when the user clicks cancel, the code
exits out as expected but the combox box value is now set to the new month
the user selected. I would like it to be set back to the month they had in
the combox before the changed it.
how can I do modify the code to do that or is there a better way to do this?
thanks
Private Sub cboMonth_Change()
Dim myCheck As Integer
Dim ms As String
Dim dc As Long
On Error Resume Next
Application.ScreenUpdating = False
ms = Format(Range("cyMonthSave"), "mmm")
With Sheets("Estimates")
'finds appropriate column
dc = .Rows(1).Find(What:=ms, LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
End With
If Sheets("Merchandise Store Plan").Range("m15").Value =
Sheets("Estimates").Cells(60, dc).Value Then
GoTo SkipChanges:
End If
myCheck = MsgBox("Do you want to save your changes?", vbYesNoCancel, "Save")
If myCheck = vbCancel Then
Exit Sub
Else
If myCheck = vbNo Then
GoTo SkipChanges:
End If
End If
mcrSaveEstimates
'No changes to save
SkipChanges:
Range("A2") = Sheets("Misc").Range("CYMonth").Value
Range("A3") = Sheets("Misc").Range("PYMonth").Value
'brings back previosly saved estimated for the new month selected
RestoreEstimates
Application.ScreenUpdating = True
Beep
End Sub
combobox. The code prompts the user to see if he/she wants to save the
estimates with a Yes, No, Cancel.
yes and no cases work as expected but when the user clicks cancel, the code
exits out as expected but the combox box value is now set to the new month
the user selected. I would like it to be set back to the month they had in
the combox before the changed it.
how can I do modify the code to do that or is there a better way to do this?
thanks
Private Sub cboMonth_Change()
Dim myCheck As Integer
Dim ms As String
Dim dc As Long
On Error Resume Next
Application.ScreenUpdating = False
ms = Format(Range("cyMonthSave"), "mmm")
With Sheets("Estimates")
'finds appropriate column
dc = .Rows(1).Find(What:=ms, LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
End With
If Sheets("Merchandise Store Plan").Range("m15").Value =
Sheets("Estimates").Cells(60, dc).Value Then
GoTo SkipChanges:
End If
myCheck = MsgBox("Do you want to save your changes?", vbYesNoCancel, "Save")
If myCheck = vbCancel Then
Exit Sub
Else
If myCheck = vbNo Then
GoTo SkipChanges:
End If
End If
mcrSaveEstimates
'No changes to save
SkipChanges:
Range("A2") = Sheets("Misc").Range("CYMonth").Value
Range("A3") = Sheets("Misc").Range("PYMonth").Value
'brings back previosly saved estimated for the new month selected
RestoreEstimates
Application.ScreenUpdating = True
Beep
End Sub