ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How do I reduce 10 Sub() into 1 Sub()? (https://www.excelbanter.com/excel-programming/430644-how-do-i-reduce-10-sub-into-1-sub.html)

Ayo

How do I reduce 10 Sub() into 1 Sub()?
 

I have this subroutine that I have to repeat 10 times on a worksheet:

Private Sub cmdCentralPA_Click()

Dim btnCaption As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
btnCaption = Me.cmdCentralPA.Caption
Call unhideSheets
Call getMarketdata(btnCaption)
Call hideShapes
Me.Range("A2").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

i.e., Private Sub cmdConnecticut_Click(), Private Sub cmdLongIsland_Click(),
Private Sub cmdNewEngland_Click(), Private Sub cmdNewJersey_Click() etc.

I am looking for a code that will determine which button was click and then
run the code based on that button. Instead of repeating the same subroutine
10 times. Any ideas?
Thanks
Ayo

Ayo

How do I reduce 10 Sub() into 1 Sub()?
 

Thanks Per Jessen. You have given me an idea that I will look into.

"Per Jessen" wrote:

Hi

Each button has to have an underlying macro to function, but you could put
your code in a seperat sub which is called from each button macro
(CentralCode should in an ordinary module):

Private Sub cmdCentralPA_Click()
Call CentralCode
End Sub

Sub CentralCode()
Dim btnCaption As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
btnCaption = Me.cmdCentralPA.Caption
Call unhideSheets
Call getMarketdata(btnCaption)
Call hideShapes
Me.Range("A2").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Hopes this helps.
....
Per

"Ayo" skrev i meddelelsen
...
I have this subroutine that I have to repeat 10 times on a worksheet:

Private Sub cmdCentralPA_Click()

Dim btnCaption As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
btnCaption = Me.cmdCentralPA.Caption
Call unhideSheets
Call getMarketdata(btnCaption)
Call hideShapes
Me.Range("A2").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

i.e., Private Sub cmdConnecticut_Click(), Private Sub
cmdLongIsland_Click(),
Private Sub cmdNewEngland_Click(), Private Sub cmdNewJersey_Click() etc.

I am looking for a code that will determine which button was click and
then
run the code based on that button. Instead of repeating the same
subroutine
10 times. Any ideas?
Thanks
Ayo




Patrick Molloy

How do I reduce 10 Sub() into 1 Sub()?
 

you may want to pass a value that indicates which button was clicked

Private Sub cmdCentralPA_Click()
Call CentralCode, 1
End Sub


and
Private Sub cmdCentralPA_Click(button as long )


"Per Jessen" wrote in message
...
Hi

Each button has to have an underlying macro to function, but you could put
your code in a seperat sub which is called from each button macro
(CentralCode should in an ordinary module):

Private Sub cmdCentralPA_Click()
Call CentralCode
End Sub

Sub CentralCode()
Dim btnCaption As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
btnCaption = Me.cmdCentralPA.Caption
Call unhideSheets
Call getMarketdata(btnCaption)
Call hideShapes
Me.Range("A2").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Hopes this helps.
...
Per

"Ayo" skrev i meddelelsen
...
I have this subroutine that I have to repeat 10 times on a worksheet:

Private Sub cmdCentralPA_Click()

Dim btnCaption As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
btnCaption = Me.cmdCentralPA.Caption
Call unhideSheets
Call getMarketdata(btnCaption)
Call hideShapes
Me.Range("A2").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

i.e., Private Sub cmdConnecticut_Click(), Private Sub
cmdLongIsland_Click(),
Private Sub cmdNewEngland_Click(), Private Sub cmdNewJersey_Click() etc.

I am looking for a code that will determine which button was click and
then
run the code based on that button. Instead of repeating the same
subroutine
10 times. Any ideas?
Thanks
Ayo



Norie

How do I reduce 10 Sub() into 1 Sub()?
 
Perhaps Application.Caller might help.


On Jul 2, 7:29*pm, Ayo wrote:
I have this subroutine that I have to repeat 10 times on a worksheet:

Private Sub cmdCentralPA_Click()

Dim btnCaption As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
btnCaption = Me.cmdCentralPA.Caption
Call unhideSheets
Call getMarketdata(btnCaption)
Call hideShapes
Me.Range("A2").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

i.e., Private Sub cmdConnecticut_Click(), Private Sub cmdLongIsland_Click(),
Private Sub cmdNewEngland_Click(), Private Sub cmdNewJersey_Click() etc.

I am looking for a code that will determine which button was click and then
run the code based on that button. Instead of repeating the same subroutine
10 times. Any ideas?
*Thanks
* *Ayo




All times are GMT +1. The time now is 05:38 PM.

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