ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Run Macro from a list (https://www.excelbanter.com/excel-programming/415317-run-macro-list.html)

OsmoseTom

Run Macro from a list
 
I have a data validation list in cell B2. The list consists of two choices
(Year, Month). Based on the users selection I would like to run a macro.
The maros are named Year and Month.


RyanH

Run Macro from a list
 
I would try using the Change Event. Maybe something like this is what you
are asking for:

Sub Combox1_Change()

Select Case Combox1.Value

Case Is = "2008, Mar"
Call Macro1
Case Is = "2008, Jan"
Call Macro2
Case Is = "2007, Dec"
Call Macro3

End Select

End Sub
--
Cheers,
Ryan


"OsmoseTom" wrote:

I have a data validation list in cell B2. The list consists of two choices
(Year, Month). Based on the users selection I would like to run a macro.
The maros are named Year and Month.


Gary''s Student

Run Macro from a list
 
Try the following event macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set b2 = Range("B2")
Set t = Target
If Intersect(t, b2) Is Nothing Then Exit Sub
v = b2.Value
If v = "Year" Then
Call yearr
Else
Call monthh
End If
End Sub

Note: I changed the spelling of the called routines to avoid ambiguities.
--
Gary''s Student - gsnu200798


"OsmoseTom" wrote:

I have a data validation list in cell B2. The list consists of two choices
(Year, Month). Based on the users selection I would like to run a macro.
The maros are named Year and Month.


Bob Phillips[_3_]

Run Macro from a list
 
Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "H1" '<== change to suit

On Error GoTo ws_exit
Application.EnableEvents = False

If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target

Application.Run .Value
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.


--
__________________________________
HTH

Bob

"OsmoseTom" wrote in message
...
I have a data validation list in cell B2. The list consists of two choices
(Year, Month). Based on the users selection I would like to run a macro.
The maros are named Year and Month.




OsmoseTom

Run Macro from a list
 
Gary,

You are a genius, I have been struggling with this for hours. Your code
worked great.

"Gary''s Student" wrote:

Try the following event macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set b2 = Range("B2")
Set t = Target
If Intersect(t, b2) Is Nothing Then Exit Sub
v = b2.Value
If v = "Year" Then
Call yearr
Else
Call monthh
End If
End Sub

Note: I changed the spelling of the called routines to avoid ambiguities.
--
Gary''s Student - gsnu200798


"OsmoseTom" wrote:

I have a data validation list in cell B2. The list consists of two choices
(Year, Month). Based on the users selection I would like to run a macro.
The maros are named Year and Month.



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

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