ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   MS Bug? Data validation list dropdown with Worksheet_Change event (https://www.excelbanter.com/excel-programming/294234-re-ms-bug-data-validation-list-dropdown-worksheet_change-event.html)

Dan Frederick

MS Bug? Data validation list dropdown with Worksheet_Change event
 
An update on this problem for anyone who stumbles across
it in a search.

After some discussions with MS, it appears that there is a
timing problem with Excel if you use Data Validation, a VB
function and a Worksheet_Change event that modifies a
range (any range) on the worksheet. If the VB function is
called using a value from the DV dropdown list (or any
data validation that fails), the Worksheet_Change event
will produce an error when trying to modify the range.

Randy Smith from MS came up with the workaround of putting
an Application.Calculation = xlCalculationManual at the
beginning of the Worksheet_Change event and then an
Application.Calculate at the end.

Unfortunately, because you need to turn calculation to
manual, you'll have to create a WS_Change event (that just
does a Calculate) in every worksheet in your app.

I hope that helps! Thanks to Frank Kabel and Randy Smith
for their efforts.

Regards,

Dan
-----Original Message-----
Sorry Frank.

I just tried testing it in my application and it still
doesn't behave the way I think it should. If you add a
msgbox to the text in the Worksheet_change event, you'll
see that it is triggered by the validation dropdown. The
worksheet just doesn't get recalculated like it should.

I'm reverting back to my original idea that I think it's

a
bug and not a feature.

Thanks,

Dan
-----Original Message-----
Hi
You used the worksheet change event (which is triggered

by manual
inputs). In your case you may use the selection_change

or
the Calculate
event of your worksheet module

--
Regards
Frank Kabel
Frankfurt, Germany

"Dan Frederick"

schrieb im
Newsbeitrag news:e23e01c40b84$f9b90f60

...
I think I've found an MS bug. Can anyone see if I'm

doing
something wrong or find a workaround. Keep in mind

that
I'd rather keep the Function if at all possible.

Here's
the reproducable scenario:

1. In a new sheet, cell A1 set Data Validation on List

and
0,1,2,3 as the options. Cell A2 set to =test(A1).

2. In the VB editor, Insert a new module and put the
following code in it:

Function test(a as Integer) as Integer
test = a + 1
End Function

3. On the Sheet1 code page, insert the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Range("B1") = Not Range("B1")
Application.EnableEvents = True
End Sub

4. When you change Cell A1 with the dropdown, B1

doesn't
change. When you type a value in A1, B1 changes.

I think it's a bug. Any other ideas? Can anyone

suggest
a way to make this work (without removing the Function
test)?

Thanks,

Dan


.

.



All times are GMT +1. The time now is 03:34 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com