ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Code to an in cell drop down list (https://www.excelbanter.com/excel-discussion-misc-queries/43458-code-cell-drop-down-list.html)

frendabrenda1

Code to an in cell drop down list
 
I would like to assign code to an in cell drop down list..... so that once an
item is chosen it would run the code. Is this possible? I know you can
attach code to a control list box, but I am having trouble creating a
dependant list like I can with the in cell drop down.

Thanks for any help.

Otto Moehrbach

You can use a Worksheet_Change event macro like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) < A1 Then Exit Sub
If Target = "" Then Exit Sub
Call YourMacro
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End Sub
This macro will run your macro whenever the contents of A1 are changed to
anything other than blank. This macro must be placed in the sheet module of
your sheet. To do this, right-click on the tab of your sheet, select View
Code, and paste this macro into that module. HTH Otto
"frendabrenda1" wrote in message
...
I would like to assign code to an in cell drop down list..... so that once
an
item is chosen it would run the code. Is this possible? I know you can
attach code to a control list box, but I am having trouble creating a
dependant list like I can with the in cell drop down.

Thanks for any help.




frendabrenda1

I cannot get this code to work. I have tried writing the instructions in a
separate macro, and also replacing the "yourmacro" with the instructions
directly and neither runs the code upon changing A1 or any other cell I try.

What am I doing wrong?????

"Otto Moehrbach" wrote:

You can use a Worksheet_Change event macro like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) < A1 Then Exit Sub
If Target = "" Then Exit Sub
Call YourMacro
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End Sub
This macro will run your macro whenever the contents of A1 are changed to
anything other than blank. This macro must be placed in the sheet module of
your sheet. To do this, right-click on the tab of your sheet, select View
Code, and paste this macro into that module. HTH Otto
"frendabrenda1" wrote in message
...
I would like to assign code to an in cell drop down list..... so that once
an
item is chosen it would run the code. Is this possible? I know you can
attach code to a control list box, but I am having trouble creating a
dependant list like I can with the in cell drop down.

Thanks for any help.





Dave Peterson

Just to add to Otto's response.

There's a bug in xl97 that stops the worksheet_change event from firing under
certain conditions:

From Debra Dalgleish's site:
http://contextures.com/xlDataVal08.html#Change

In Excel 97, selecting an item from a Data Validation dropdown list does not
trigger a Change event, unless the list items have been typed in the Data
Validation dialog box.

She also has some workarounds for this bug.



Otto Moehrbach wrote:

You can use a Worksheet_Change event macro like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) < A1 Then Exit Sub
If Target = "" Then Exit Sub
Call YourMacro
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End Sub
This macro will run your macro whenever the contents of A1 are changed to
anything other than blank. This macro must be placed in the sheet module of
your sheet. To do this, right-click on the tab of your sheet, select View
Code, and paste this macro into that module. HTH Otto
"frendabrenda1" wrote in message
...
I would like to assign code to an in cell drop down list..... so that once
an
item is chosen it would run the code. Is this possible? I know you can
attach code to a control list box, but I am having trouble creating a
dependant list like I can with the in cell drop down.

Thanks for any help.


--

Dave Peterson

Dave Peterson

This code goes behind the worksheet that has the dropdown (you built the
dropdown via data|validation, didn't you???).

Right click on the worksheet tab, select view code and paste Otto's code there.

(change YourMacro to the correct name, too.)



frendabrenda1 wrote:

I cannot get this code to work. I have tried writing the instructions in a
separate macro, and also replacing the "yourmacro" with the instructions
directly and neither runs the code upon changing A1 or any other cell I try.

What am I doing wrong?????

"Otto Moehrbach" wrote:

You can use a Worksheet_Change event macro like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) < A1 Then Exit Sub
If Target = "" Then Exit Sub
Call YourMacro
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End Sub
This macro will run your macro whenever the contents of A1 are changed to
anything other than blank. This macro must be placed in the sheet module of
your sheet. To do this, right-click on the tab of your sheet, select View
Code, and paste this macro into that module. HTH Otto
"frendabrenda1" wrote in message
...
I would like to assign code to an in cell drop down list..... so that once
an
item is chosen it would run the code. Is this possible? I know you can
attach code to a control list box, but I am having trouble creating a
dependant list like I can with the in cell drop down.

Thanks for any help.





--

Dave Peterson


All times are GMT +1. The time now is 07:14 PM.

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