Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.misc
|
|||
|
|||
Simplify Command Button Procedure
I would like to simplify my command button click procedures. I want to call a
sub procedure from each click event. The click event will set a variable to the command button I want enabled. The called sub will first endable all the command buttons and then disable the one that I chose. Please see my example of simplify below. my current code will follow. EXAMPLE OF SIMPLIFY NOT WORKING: Option Explicit Dim Choice Sub CommandButtonEnable() Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Choice.Enabled = False End Sub Private Sub ActiveRecords_Click() Choice=ActiveRecords End Sub Private Sub ReportPreview_Click() Choice=ReportPreview End SUb EXSISTING CODE: Option Explicit Sub SortThisSheet() Dim LastRow As Long Application.EnableEvents = False With Me If .FilterMode Then .ShowAllData End If LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row With .Range("a5:L" & LastRow) .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _ Header:=xlYes, Orientation:=xlTopToBottom End With End With Application.EnableEvents = True 'AutoFilterMode = False End Sub 'charge off date date()+10 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D:D"), .Cells) Is Nothing Then If Intersect(Range("D:D"), .Cells) = "Out For Repo" Then Application.EnableEvents = False If IsEmpty(.Value) Then .Offset(0, 2).ClearContents Else With .Offset(0, 2) .Value = Date + 10 End With End If Application.EnableEvents = True End If End If End With 'pick data from code sheet for rescode If Target.Cells.Count 1 Then Exit Sub If Target.Column = 9 Then If Target.Value = "" Then Exit Sub Application.EnableEvents = False If (IsError(Application.VLookup(Target.Value, Worksheets("Codes").Range("CodeData"), 2, 0))) Then Target.Value = "" Else Target.Value = Application.VLookup(Target.Value, Worksheets("Codes").Range("CodeData"), 2, 0) End If Application.EnableEvents = True End If End Sub Private Sub ActiveRecords_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = False ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3 Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band3_Click() Application.ScreenUpdating = False Band3.Enabled = False Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 3" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band4_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = False Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 4" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band5_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = False Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 5" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Manager_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = False Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Manager" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Military_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = False ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Military" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub ReportPreview_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = False Call SortThisSheet 'Range("A5:L5").AutoFilter Range("A5").AutoFilter Field:=3 Range("A5").AutoFilter Field:=12, Criteria1:="<Sent", Operator:=xlAnd, Criteria2:="<" End Sub Private Sub DailyReport_Click() Worksheets("Tracker").Range("A5").AutoFilter Field:=3 ActiveSheet.Range("A5").AutoFilter Field:=12, Criteria1:="<Sent", Operator:=xlAnd, Criteria2:="<" Application.ScreenUpdating = False Workbooks.Open Filename:= _ "C:\Users\Kenny\Documents\Toyota\Floater\Daily Tracker Report.xls" Windows("New Tracker.xls").Activate Range(("L6"), Cells(Rows.Count, ("L:L")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("A5").PasteSpecial Paste:=xlPasteValues Windows("New Tracker.xls").Activate Range(("A6:B6"), Cells(Rows.Count, ("B:B")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("B5").PasteSpecial Paste:=xlPasteValues Windows("New Tracker.xls").Activate Range(("G6:K6"), Cells(Rows.Count, ("G:G")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("D5").PasteSpecial Paste:=xlPasteValues Worksheets("sheet1").Range("A5").Select Windows("New Tracker.xls").Activate 'Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 'Selection.EntireRow.Delete 'Windows("Daily Tracker Report.xls").Activate Range(("L6"), Cells(Rows.Count, ("L:L")).End(xlUp)) = "Sent" Application.ScreenUpdating = True Call ActiveRecords_Click End Sub |
#2
Posted to microsoft.public.excel.misc
|
|||
|
|||
Simplify Command Button Procedure
That is an awful lot of code to expect someone to read, recreate, set up the
correct environment, figure out how it works and finally, after all that, determine a more efficient method. I'm don't think you'll have any takers. Instead, you should narrow things down to a reasonable number of lines and ask how to better do some specific task. Just dumping a ton of code and saying "fix this" isn't going to get much attention. -- Cordially, Chip Pearson Microsoft MVP - Excel, 10 Years Pearson Software Consulting www.cpearson.com (email on the web site) "Kenny" wrote in message ... I would like to simplify my command button click procedures. I want to call a sub procedure from each click event. The click event will set a variable to the command button I want enabled. The called sub will first endable all the command buttons and then disable the one that I chose. Please see my example of simplify below. my current code will follow. EXAMPLE OF SIMPLIFY NOT WORKING: Option Explicit Dim Choice Sub CommandButtonEnable() Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Choice.Enabled = False End Sub Private Sub ActiveRecords_Click() Choice=ActiveRecords End Sub Private Sub ReportPreview_Click() Choice=ReportPreview End SUb EXSISTING CODE: Option Explicit Sub SortThisSheet() Dim LastRow As Long Application.EnableEvents = False With Me If .FilterMode Then .ShowAllData End If LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row With .Range("a5:L" & LastRow) .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _ Header:=xlYes, Orientation:=xlTopToBottom End With End With Application.EnableEvents = True 'AutoFilterMode = False End Sub 'charge off date date()+10 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D:D"), .Cells) Is Nothing Then If Intersect(Range("D:D"), .Cells) = "Out For Repo" Then Application.EnableEvents = False If IsEmpty(.Value) Then .Offset(0, 2).ClearContents Else With .Offset(0, 2) .Value = Date + 10 End With End If Application.EnableEvents = True End If End If End With 'pick data from code sheet for rescode If Target.Cells.Count 1 Then Exit Sub If Target.Column = 9 Then If Target.Value = "" Then Exit Sub Application.EnableEvents = False If (IsError(Application.VLookup(Target.Value, Worksheets("Codes").Range("CodeData"), 2, 0))) Then Target.Value = "" Else Target.Value = Application.VLookup(Target.Value, Worksheets("Codes").Range("CodeData"), 2, 0) End If Application.EnableEvents = True End If End Sub Private Sub ActiveRecords_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = False ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3 Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band3_Click() Application.ScreenUpdating = False Band3.Enabled = False Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 3" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band4_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = False Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 4" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band5_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = False Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 5" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Manager_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = False Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Manager" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Military_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = False ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Military" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub ReportPreview_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = False Call SortThisSheet 'Range("A5:L5").AutoFilter Range("A5").AutoFilter Field:=3 Range("A5").AutoFilter Field:=12, Criteria1:="<Sent", Operator:=xlAnd, Criteria2:="<" End Sub Private Sub DailyReport_Click() Worksheets("Tracker").Range("A5").AutoFilter Field:=3 ActiveSheet.Range("A5").AutoFilter Field:=12, Criteria1:="<Sent", Operator:=xlAnd, Criteria2:="<" Application.ScreenUpdating = False Workbooks.Open Filename:= _ "C:\Users\Kenny\Documents\Toyota\Floater\Daily Tracker Report.xls" Windows("New Tracker.xls").Activate Range(("L6"), Cells(Rows.Count, ("L:L")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("A5").PasteSpecial Paste:=xlPasteValues Windows("New Tracker.xls").Activate Range(("A6:B6"), Cells(Rows.Count, ("B:B")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("B5").PasteSpecial Paste:=xlPasteValues Windows("New Tracker.xls").Activate Range(("G6:K6"), Cells(Rows.Count, ("G:G")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("D5").PasteSpecial Paste:=xlPasteValues Worksheets("sheet1").Range("A5").Select Windows("New Tracker.xls").Activate 'Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 'Selection.EntireRow.Delete 'Windows("Daily Tracker Report.xls").Activate Range(("L6"), Cells(Rows.Count, ("L:L")).End(xlUp)) = "Sent" Application.ScreenUpdating = True Call ActiveRecords_Click End Sub |
#3
Posted to microsoft.public.excel.misc
|
|||
|
|||
Simplify Command Button Procedure
Chip I am sorry you feel this way. All I am asking is for some help on a
simple procedure. I want to do something like this. When button clicked I want to set a variable let say the variable is Choice to equal the name of that button and then I want to use the command Choice.Enable = False I dont know how to dim choice to allow me to do this or is this possible somehow? "Chip Pearson" wrote: That is an awful lot of code to expect someone to read, recreate, set up the correct environment, figure out how it works and finally, after all that, determine a more efficient method. I'm don't think you'll have any takers. Instead, you should narrow things down to a reasonable number of lines and ask how to better do some specific task. Just dumping a ton of code and saying "fix this" isn't going to get much attention. -- Cordially, Chip Pearson Microsoft MVP - Excel, 10 Years Pearson Software Consulting www.cpearson.com (email on the web site) "Kenny" wrote in message ... I would like to simplify my command button click procedures. I want to call a sub procedure from each click event. The click event will set a variable to the command button I want enabled. The called sub will first endable all the command buttons and then disable the one that I chose. Please see my example of simplify below. my current code will follow. EXAMPLE OF SIMPLIFY NOT WORKING: Option Explicit Dim Choice Sub CommandButtonEnable() Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Choice.Enabled = False End Sub Private Sub ActiveRecords_Click() Choice=ActiveRecords End Sub Private Sub ReportPreview_Click() Choice=ReportPreview End SUb EXSISTING CODE: Option Explicit Sub SortThisSheet() Dim LastRow As Long Application.EnableEvents = False With Me If .FilterMode Then .ShowAllData End If LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row With .Range("a5:L" & LastRow) .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _ Header:=xlYes, Orientation:=xlTopToBottom End With End With Application.EnableEvents = True 'AutoFilterMode = False End Sub 'charge off date date()+10 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D:D"), .Cells) Is Nothing Then If Intersect(Range("D:D"), .Cells) = "Out For Repo" Then Application.EnableEvents = False If IsEmpty(.Value) Then .Offset(0, 2).ClearContents Else With .Offset(0, 2) .Value = Date + 10 End With End If Application.EnableEvents = True End If End If End With 'pick data from code sheet for rescode If Target.Cells.Count 1 Then Exit Sub If Target.Column = 9 Then If Target.Value = "" Then Exit Sub Application.EnableEvents = False If (IsError(Application.VLookup(Target.Value, Worksheets("Codes").Range("CodeData"), 2, 0))) Then Target.Value = "" Else Target.Value = Application.VLookup(Target.Value, Worksheets("Codes").Range("CodeData"), 2, 0) End If Application.EnableEvents = True End If End Sub Private Sub ActiveRecords_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = False ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3 Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band3_Click() Application.ScreenUpdating = False Band3.Enabled = False Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 3" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band4_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = False Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 4" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Band5_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = False Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Band 5" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Manager_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = False Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Manager" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub Military_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = False ActiveRecords.Enabled = True ReportPreview.Enabled = True Call SortThisSheet Range("A5").AutoFilter Field:=3, Criteria1:="Military" Range("A5").AutoFilter Field:=12, Criteria1:="=" Application.ScreenUpdating = True End Sub Private Sub ReportPreview_Click() Application.ScreenUpdating = False Band3.Enabled = True Band4.Enabled = True Band5.Enabled = True Manager.Enabled = True Military.Enabled = True ActiveRecords.Enabled = True ReportPreview.Enabled = False Call SortThisSheet 'Range("A5:L5").AutoFilter Range("A5").AutoFilter Field:=3 Range("A5").AutoFilter Field:=12, Criteria1:="<Sent", Operator:=xlAnd, Criteria2:="<" End Sub Private Sub DailyReport_Click() Worksheets("Tracker").Range("A5").AutoFilter Field:=3 ActiveSheet.Range("A5").AutoFilter Field:=12, Criteria1:="<Sent", Operator:=xlAnd, Criteria2:="<" Application.ScreenUpdating = False Workbooks.Open Filename:= _ "C:\Users\Kenny\Documents\Toyota\Floater\Daily Tracker Report.xls" Windows("New Tracker.xls").Activate Range(("L6"), Cells(Rows.Count, ("L:L")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("A5").PasteSpecial Paste:=xlPasteValues Windows("New Tracker.xls").Activate Range(("A6:B6"), Cells(Rows.Count, ("B:B")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("B5").PasteSpecial Paste:=xlPasteValues Windows("New Tracker.xls").Activate Range(("G6:K6"), Cells(Rows.Count, ("G:G")).End(xlUp)).Copy Windows("Daily Tracker Report.xls").Activate Worksheets("sheet1").Range("D5").PasteSpecial Paste:=xlPasteValues Worksheets("sheet1").Range("A5").Select Windows("New Tracker.xls").Activate 'Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 'Selection.EntireRow.Delete 'Windows("Daily Tracker Report.xls").Activate Range(("L6"), Cells(Rows.Count, ("L:L")).End(xlUp)) = "Sent" Application.ScreenUpdating = True Call ActiveRecords_Click End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Enable Command Button Procedure | Excel Discussion (Misc queries) | |||
command button | Excel Worksheet Functions | |||
command button | Excel Discussion (Misc queries) | |||
Command button | Excel Discussion (Misc queries) | |||
simplify procedure to get rid of 0 error values in a spreadsheet | Excel Worksheet Functions |