PDA

View Full Version : Solved: Option button seqence



BENSON
02-15-2008, 02:12 AM
I have four option buttons within a group box.they are labeled "Week 1,Week 2"etc. Is there some way to force the user to press the options buttons in the correct sequence 1e: first "week 1" than "week 2 "etc after "week 4" has been pressed week1" would be the next to be pressed

Thanks

Bob Phillips
02-15-2008, 03:39 AM
Why not have a commandbutton that you cycle through all of the options, first time pressed you assume Week1, 2nd time then use Week2, and so on.

BENSON
02-15-2008, 04:38 AM
Do you mean I could get all four macros currantly linked to the option buttons to run in sequence each time I press the one command button ? That would be great,could you provide a bit of a sample code to start me of.

Thanks

Bob Phillips
02-15-2008, 05:14 AM
Okay. In this example, the button is a Forms toolbar button, and it is called 'Button 1'. Make sure that you change teh default caption to 'Week 1'.

The procs I use should be obvious.



Public Sub Button1_Click()

Select Case ActiveSheet.Buttons("Button 1").Caption

Case "Week 1"
Call procWeek1
ActiveSheet.Buttons("Button 1").Caption = "Week 2"

Case "Week 2"
Call procWeek2
ActiveSheet.Buttons("Button 1").Caption = "Week 3"

Case "Week 3"
Call procWeek3
ActiveSheet.Buttons("Button 1").Caption = "Week 4"

Case "Week 4"
Call procWeek4
ActiveSheet.Buttons("Button 1").Caption = "Week 1"
End Select
End Sub

BENSON
02-15-2008, 06:03 AM
Have built command button and pasted code as required ,not sure about caption default name do I change the the module name ie module 1 to week 1

Bob Phillips
02-15-2008, 06:04 AM
No, select the button, then change the caption text (Button1 will probably be the default).

BENSON
02-16-2008, 12:52 AM
Have entered corret caption"week 1" and inserted my code.Could use please check it for me as the marco will not run.

Many thanks for your help and patience


Sub Button955_Click()
Select Case ActiveSheet.Buttons("Button 955").Caption

Case "Week 1"

Range("H4").Select
Workbooks.Open Filename:="L:\GARDENS WEEKLY STOCK SHEET.xls"
Application.Run "'GARDENS WEEKLY STOCK SHEET.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!OptionButton5_Click"
Sheets("SEA POINT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\SEA POINT WEEKLY STOCKSHEET.xls"
Application.Run "'SEA POINT WEEKLY STOCKSHEET.xls'!Button123_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!OptionButton1_Click"
Sheets("WATERFRONT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\WATERFRONT WEEKLY STOCK.xls"
Application.Run "'WATERFRONT WEEKLY STOCK.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!WATERFRONT_OptionButton1_Click"
Sheets("REGENT RD").Select
Range("H4").Select
Workbooks.Open Filename:="L:\REGENT RD WEEKLY STOCKSHEET.xls"

Application.Run "'REGENT RD WEEKLY STOCKSHEET.xls'!Button123_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!Button13_Click"
Sheets("GArRDENS").Select
ActiveWorkbook.Save

ActiveSheet.Buttons("Button 955").Caption = "Week 2"

Case "Week 2"

Range("H4").Select
Workbooks.Open Filename:="L:\GARDENS WEEKLY STOCK SHEET.xls"
Application.Run "'GARDENS WEEKLY STOCK SHEET.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!OptionButton6_Click"
Sheets("SEA POINT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\SEA POINT WEEKLY STOCKSHEET.xls"
Application.Run "'SEA POINT WEEKLY STOCKSHEET.xls'!Button123_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!SEAPOINT_OptionButton2_Click"
Sheets("WATERFRONT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\WATERFRONT WEEKLY STOCK.xls"
Application.Run "'WATERFRONT WEEKLY STOCK.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!WATERFRONT_OptionButton2_Click"
Sheets("REGENT RD").Select
Range("H4").Select
Workbooks.Open Filename:="L:\REGENT RD WEEKLY STOCKSHEET.xls"

Application.Run "'REGENT RD WEEKLY STOCKSHEET.xls'!Button123_Click"
ActiveWindow.SmallScroll ToRight:=1
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!Button14_Click"
Sheets("GArRDENS").Select
ActiveWorkbook.Save

ActiveSheet.Buttons("Button 955").Caption = "Week 3"

Case "Week 3"

Range("H4").Select
Workbooks.Open Filename:="L:\GARDENS WEEKLY STOCK SHEET.xls"
Application.Run "'GARDENS WEEKLY STOCK SHEET.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!OptionButton2_Click"
Sheets("SEA POINT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\SEA POINT WEEKLY STOCKSHEET.xls"
Application.Run "'SEA POINT WEEKLY STOCKSHEET.xls'!Button123_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!OptionButton3_Click"
Sheets("WATERFRONT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\WATERFRONT WEEKLY STOCK.xls"
Application.Run "'WATERFRONT WEEKLY STOCK.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!WATERFRONT_OptionButton3_Click"
Sheets("REGENT RD").Select
Range("H4").Select
Workbooks.Open Filename:="L:\REGENT RD WEEKLY STOCKSHEET.xls", UpdateLinks _
:=3
Application.Run "'REGENT RD WEEKLY STOCKSHEET.xls'!Button123_Click"
ActiveWindow.SmallScroll ToRight:=3
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!Button15_Click"
Sheets("GArRDENS").Select
ActiveWorkbook.Save

ActiveSheet.Buttons("Button 955").Caption = "Week 4"

Case "Week 4"


Range("H4").Select
Workbooks.Open Filename:="L:\GARDENS WEEKLY STOCK SHEET.xls"
Application.Run "'GARDENS WEEKLY STOCK SHEET.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!OptionButton4_Click"
Sheets("SEA POINT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\SEA POINT WEEKLY STOCKSHEET.xls"
Application.Run "'SEA POINT WEEKLY STOCKSHEET.xls'!Button123_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!SEAPOINT_OptionButton4_Click"
Sheets("WATERFRONT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\WATERFRONT WEEKLY STOCK.xls"
Application.Run "'WATERFRONT WEEKLY STOCK.xls'!Button7_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!WATERFRONT_OptionButton4_Click"
Sheets("REGENT RD").Select
Range("H4").Select
Workbooks.Open Filename:="L:\REGENT RD WEEKLY STOCKSHEET.xls"

Application.Run "'REGENT RD WEEKLY STOCKSHEET.xls'!Button123_Click"
ActiveWindow.SmallScroll ToRight:=4
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!Button16_Click"
Sheets("GArRDENS").Select
ActiveWorkbook.Save


ActiveSheet.Buttons("Button 955").Caption = "Week 1"
End Select
End Sub

Bob Phillips
02-16-2008, 03:18 AM
Can you just post the workbook?

Bob Phillips
02-16-2008, 03:21 AM
I stripped your code down to the fundamentals



Sub Button955_Click()
Select Case ActiveSheet.Buttons("Button 955").Caption

Case "Week 1"

Range("H4").Select
ActiveSheet.Buttons("Button 955").Caption = "Week 2"

Case "Week 2"

Range("H4").Select
ActiveSheet.Buttons("Button 955").Caption = "Week 4"

Case "Week 4"

Range("H4").Select
ActiveSheet.Buttons("Button 955").Caption = "Week 1"
End Select
End Sub


and it worked fine, so maybe it is the other code, which I cannot test, that fails.

Bob Phillips
02-16-2008, 04:02 AM
It would also be better to segment the code for maintainability



Sub Button955_Click()
Select Case ActiveSheet.Buttons("Button 955").Caption

Case "Week 1"
Call DoStuff("Button7", "OptionButton5", "Button123", _
"OptionButton1", "Button13")
ActiveSheet.Buttons("Button 955").Caption = "Week 2"

Case "Week 2"
Call DoStuff("Button7", "OptionButton6", "Button123", _
"OptionButton2", "Button14")
ActiveSheet.Buttons("Button 955").Caption = "Week 3"

Case "Week 3"
Call DoStuff("Button7", "OptionButton2", "Button123", _
"OptionButton3", "Button15")
ActiveSheet.Buttons("Button 955").Caption = "Week 4"

Case "Week 4"
Call DoStuff("Button7", "OptionButton4", "Button123", _
"OptionButton4", "Button16")
ActiveSheet.Buttons("Button 955").Caption = "Week 1"
End Select
End Sub

Private Sub DoStuff(btn1, btn2, btn3, btn4, btn5)

Range("H4").Select
Workbooks.Open Filename:="L:\GARDENS WEEKLY STOCK SHEET.xls"
Application.Run "'GARDENS WEEKLY STOCK SHEET.xls'!" & btn1 & "_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!" & btn2 & "_Click"
Sheets("SEA POINT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\SEA POINT WEEKLY STOCKSHEET.xls"
Application.Run "'SEA POINT WEEKLY STOCKSHEET.xls'!" & btn3 & "_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!" & btn4 & "_Click"
Sheets("WATERFRONT").Select
Range("H4").Select
Workbooks.Open Filename:="L:\WATERFRONT WEEKLY STOCK.xls"
Application.Run "'WATERFRONT WEEKLY STOCK.xls'!" & btn1 & "_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!WATERFRONT_" & btn4 & "_Click"
Sheets("REGENT RD").Select
Range("H4").Select
Workbooks.Open Filename:="L:\REGENT RD WEEKLY STOCKSHEET.xls"

Application.Run "'REGENT RD WEEKLY STOCKSHEET.xls'!" & btn3 & "_Click"
Application.Run _
"'Copy of Copy of Weekly Stocksheet 2 ( Version 3) .xls'!" & btn5 & "_Click"
Sheets("GArRDENS").Select
ActiveWorkbook.Save

End Sub

BENSON
02-16-2008, 10:55 PM
thanks for the ammended code ,when it runs it shows compile error message "Sub Or Function Not Defined".Ihave highlighted the part of the code that it refers to


Sub Button955_Click()
Select Case ActiveSheet.Buttons("Button 955").Caption

Case "Week 1"
Call DoStuff("Button7", "OptionButton5", "Button123", _
"OptionButton1", "Button13")
ActiveSheet.Buttons("Button 955").Caption = "Week 2"

Case "Week 2"
Call DoStuff("Button7", "OptionButton6", "Button123", _
"OptionButton2", "Button14")
ActiveSheet.Buttons("Button 955").Caption = "Week 3"

Case "Week 3"
Call DoStuff("Button7", "OptionButton2", "Button123", _
"OptionButton3", "Button15")
ActiveSheet.Buttons("Button 955").Caption = "Week 4"

Case "Week 4"
Call DoStuff("Button7", "OptionButton4", "Button123", _
"OptionButton4", "Button16")
ActiveSheet.Buttons("Button 955").Caption = "Week 1"
End Select
End Sub

Bob Phillips
02-17-2008, 02:41 AM
You have to add the function DoStuff as I showed you.