Automation Of Reporting And Alerting


Published on

A look at a project to send automated emails. The processes behind it and how to do it yourself using 6 techniques: Secured folders, ODBC connections, Access queries, Excel Pivot tables, Excel macros and scheduled tasks

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Automation Of Reporting And Alerting

  1. 1. Automation of Reporting and Alerting
  2. 4. Microcosm <ul><li>The following presentation is an illustration of most of my automation techniques in one project. </li></ul><ul><li>It is a microcosm of an automated set of systems I set up to; </li></ul><ul><ul><li>Illustrate and share data (in a secured location) </li></ul></ul><ul><ul><li>Create audits (proactive and reactive) </li></ul></ul><ul><ul><li>Trigger events (send emails) </li></ul></ul>
  3. 5. Techniques <ul><li>Secured folders </li></ul><ul><ul><li>Utilization of folder security instead of Excel passwords </li></ul></ul><ul><li>ODBC Connections </li></ul><ul><ul><li>Creating real time links to the database tables of applications. </li></ul></ul><ul><li>Access queries </li></ul><ul><ul><li>Bringing data (tables) for one or many applications together. </li></ul></ul><ul><ul><li>Calculations being performed. </li></ul></ul><ul><li>Excel Pivot tables </li></ul><ul><ul><li>Illustrating data on a user friendly interface. </li></ul></ul><ul><li>Excel Macros </li></ul><ul><ul><li>Automation of the updating of spreadsheets </li></ul></ul><ul><ul><li>Automation of emails sent to the right people. </li></ul></ul><ul><li>Scheduled tasks </li></ul><ul><ul><li>Starting the macros, at night. </li></ul></ul>
  4. 6. The project <ul><li>The project was to automate notifying employees (only certain exempt emps) to submit timesheets. </li></ul><ul><li>An HR rep was doing this in the past (for her location) and she wanted a program that did this, without her having doing anything. </li></ul><ul><li>The task was to set up pivot tables that illustrated 2 problems and with a summary and detail tab for each (4 tabs total). </li></ul><ul><ul><li>Pay periods that had no submitted hours. </li></ul></ul><ul><ul><li>Pay periods that had hours, but hade never been submitted. </li></ul></ul><ul><li>Notifications were to be emailed automatically, every Tuesday morning. </li></ul>
  5. 7. Final Spreadsheet (summary tab)
  6. 8. Final Spreadsheet (detail tab)
  7. 9. Email Notification
  8. 10. Groundwork <ul><li>The groundwork for this project had already been laid by existing projects. </li></ul><ul><li>The goal was just to copy existing molds and create new processes. </li></ul>
  9. 11. Folder security
  10. 12. Folder security <ul><li>In a shared location create a folder. </li></ul><ul><li>Have your IT department create a security group on the folder. </li></ul><ul><li>This replacing have an Excel password (and is more secure) </li></ul>
  11. 13. Folder security <ul><li>The folder I used, already had security and a variety of confidential excel spreadsheets </li></ul>
  12. 14. Access Engine
  13. 15. Access Engine <ul><li>Access is going to be the powerhouse behind the process. </li></ul><ul><li>It will access the tables (ODBC) and manipulate the data (queries), so they can be illustrated in Excel (pivot tables) </li></ul>
  14. 16. ODBC connection
  15. 17. ODBC connection <ul><li>ODBC connections are read only links to your applications tables. </li></ul><ul><li>Once your source is updated, your ODBCs will be. </li></ul><ul><li>Some applications, the ODBCs, are created upon installation. Others you will need your IT team to create for you. </li></ul><ul><li>These connections are similar to what a SQL programmer might work with (but read only). </li></ul>
  16. 18. ODBC connection <ul><li>1 st thing to do is access the data (tables) via an ODBC connection. </li></ul><ul><li>I had already established these real-time links and researched what data was in what table and what their common denominators were. </li></ul><ul><li>These tables were from our salaried timekeeping system (NetConsole) </li></ul>
  17. 19. ODBC connection <ul><li>Go to </li></ul><ul><li>File </li></ul><ul><li>Get External Data </li></ul><ul><li>Link Tables </li></ul><ul><ul><li>If you select Import, it creates a static table, which is not automatically updated. </li></ul></ul>
  18. 20. ODBC connection <ul><li>Change “Files of type:” to </li></ul><ul><li>ODBC databases() </li></ul>
  19. 21. ODBC connection <ul><li>Select the Machine Data Source tab </li></ul><ul><li>Select your database </li></ul>
  20. 22. ODBC connection <ul><li>A list of the tables will appear. </li></ul><ul><li>Select the one you want. </li></ul><ul><ul><li>This might involve a lot of trial and error. I usually select all and find out what each one contains. </li></ul></ul>
  21. 23. ODBC connection <ul><li>Here is one of the opened tables for my timekeeping system. </li></ul><ul><li>Most tables have “IDs” that correspond with other tables. </li></ul><ul><li>You will need to know what these mean, when you create queries. </li></ul><ul><li>Most developers create relationships at the table level, but I prefer to do that at the query level (next set of slides). </li></ul>
  22. 24. Access Queries
  23. 25. Access Queries <ul><li>The way I create queries, is by selecting; </li></ul><ul><li>Create query in Design view </li></ul>
  24. 26. Access Queries <ul><li>Select the tables of queries that you want to bring together </li></ul>
  25. 27. Access Queries <ul><li>I had already created a base timesheet query, for other projects. </li></ul><ul><li>So I could copy that base one and use that. </li></ul>
  26. 28. Access Queries <ul><li>Once copied, select paste and name the new query </li></ul>
  27. 29. Access Queries <ul><li>All of these tables get linked together by their “IDs” or a common denominator. </li></ul><ul><li>In the end, they become one unified set of data. </li></ul><ul><li>There is a lot of trail and error in this process and validation to know values. </li></ul>
  28. 30. Access Queries <ul><li>Double click on the headers you want on you query. </li></ul>
  29. 31. Access Queries <ul><li>Add criteria to narrow the range of the query. </li></ul>
  30. 32. Access Queries <ul><li>Add formulas to perform your math. </li></ul><ul><li>In this case I needed to change blanks caused by linking table and add create a total hours column. </li></ul><ul><ul><li>I used an IIF(IsNull) formula. It converts blank spaces to zeros, so that math can be performed. </li></ul></ul>
  31. 33. Access Queries <ul><li>One of the tasks of the project was to find who hadn’t entered hours for a pay period. This isn’t tracked in our attendance system. </li></ul><ul><li>This query assigned a period to every one. </li></ul><ul><li>Example: John Doe has a row for every pay period, in all of the years for our time keeping system. </li></ul>
  32. 34. Access Queries <ul><li>By linking a query that has all of the timekeeping data, with one that assigns pay period regardless if worked. </li></ul><ul><li>We now have a query, that tells us, you didn’t enter time </li></ul>
  33. 35. Access Queries <ul><li>Next is giving a value to hours entered and hours missing (per payperiod). </li></ul><ul><li>We can track that on a pivot table and run macros off that data. </li></ul>
  34. 36. Excel Pivot Tables
  35. 37. Excel Pivot Tables <ul><li>Next is creating a pivot table that has sums of the pay periods missing, so an email can get generated. </li></ul>
  36. 38. Excel Pivot Tables <ul><li>To create a Pivot table </li></ul><ul><li>Got to </li></ul><ul><li>Data </li></ul><ul><li>PivotTable and PivotChart Report </li></ul>
  37. 39. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>External data source </li></ul><ul><li>Next </li></ul>
  38. 40. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Get Data </li></ul>
  39. 41. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>MS Access Database </li></ul>
  40. 42. Excel Pivot Tables <ul><li>Navigate to folder location </li></ul><ul><li>Select database </li></ul>
  41. 43. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Table or query </li></ul><ul><li>Arrow (to move all headers over) </li></ul><ul><li>Next (next couple screens) </li></ul>
  42. 44. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Finish </li></ul>
  43. 45. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Next </li></ul>
  44. 46. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Layout </li></ul>
  45. 47. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Headers you displayed on the picot table </li></ul><ul><li>Drag and drop </li></ul><ul><li>Page area is a big filter </li></ul><ul><li>Row and column area illustrate text and groups </li></ul><ul><li>Data area does the math </li></ul>
  46. 48. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Finish </li></ul>
  47. 49. Excel Pivot Tables <ul><li>A default view of your pivot will appear. </li></ul><ul><li>I never use the default, so the next slides will show how to change it. </li></ul><ul><li>At the same time a list of your header will appear. You can close these at any time. </li></ul>
  48. 50. Excel Pivot Tables <ul><li>If you don’t already have the pivot table toolbar, this would be a good time to add it. </li></ul><ul><li>Select </li></ul><ul><li>View </li></ul><ul><li>Toolbars </li></ul><ul><li>PivotTable </li></ul>
  49. 51. Excel Pivot Tables <ul><li>Select </li></ul><ul><li>Format Report </li></ul><ul><li>Scroll down and select Table1 </li></ul><ul><li>You can experiment and choose which one you like better. </li></ul>
  50. 52. Excel Pivot Tables <ul><li>Once you change the report type, the rows and columns can get mismatched. </li></ul><ul><li>You can go back to the layout, by right click on the pivot and selecting wizard. </li></ul><ul><li>Or, you can pick up the header and drag it, to where you want it. </li></ul>
  51. 53. Excel Pivot Tables <ul><li>Most items are defaulted to give subtotals. </li></ul><ul><li>Which could be what you and could be an eye sore. </li></ul><ul><li>To turn off the sub totals </li></ul><ul><li>Right click on the data for that column and select Field Settings </li></ul>
  52. 54. Excel Pivot Tables <ul><li>Change Subtotals to None </li></ul>
  53. 55. Excel Pivot Tables <ul><li>If you don’t space between lines. </li></ul><ul><li>Click on Layout </li></ul><ul><li>Deselect Insert blank line after each item. </li></ul>
  54. 56. Excel Pivot Tables <ul><li>I only needed a couple people for this process, which I can filter on the name header. </li></ul><ul><li>Select the pull down arrow. </li></ul><ul><li>Select (Show All). This deselects everyone. </li></ul><ul><li>Select the names you need for this process. </li></ul>
  55. 57. Excel Pivot Tables <ul><li>This is the finished version for the summary. </li></ul><ul><li>This tab will drive my macro. </li></ul><ul><li>For the detailed tab, you don’t need to redo the pivot table process. </li></ul><ul><li>You just need to create a copy of the tab. </li></ul><ul><li>Right click on tab and select Move or Copy </li></ul>
  56. 58. Excel Pivot Tables <ul><li>Click Create a copy and Ok </li></ul>
  57. 59. Excel Pivot Tables <ul><li>Right click anywhere on the pivot. </li></ul><ul><li>Select Field List </li></ul>
  58. 60. Excel Pivot Tables <ul><li>Drag and drop Period next to Supervisor. </li></ul><ul><li>There will be a gray line that acts as a guide. </li></ul>
  59. 61. Excel Pivot Tables <ul><li>Drag and drop NonSub on the Page field. </li></ul><ul><li>This allows you to select certain items. You can select Field settings and hide items (like the zero). </li></ul>
  60. 62. Excel Pivot Tables <ul><li>I selected one, so it would only illustrate, names with out pay periods. </li></ul><ul><li>Which was none in this case. </li></ul>
  61. 63. Excel Pivot Tables <ul><li>This is the summary tab for employees that didn’t enter any hours for a pay period. </li></ul>
  62. 64. Excel Pivot Tables <ul><li>This is the detail tab, which illustrates; </li></ul><ul><li>The supervisor and their employees that have pay periods with missing hours. </li></ul><ul><li>I added back in the subtotal for supervisor and name headers. </li></ul>
  63. 65. Excel Macros
  64. 66. Excel Macros <ul><li>I usually create a blank spreadsheet to house my macros. </li></ul><ul><li>Hit ALT F11 to open the VBA screen. </li></ul>
  65. 67. Excel Macros <ul><li>Create your code in a Module. </li></ul><ul><li>Or you can use the recorder to create your macros. </li></ul><ul><li>I do that for some of my stuff, but emailing requires writing the code. </li></ul>
  66. 68. Excel Macros <ul><li>Sub Diebold_email_start() </li></ul><ul><li>' </li></ul><ul><li>Application.DisplayAlerts = False </li></ul><ul><li>Application.ScreenUpdating = False </li></ul><ul><li>On Error Resume Next 'turn error reporting off </li></ul><ul><li>Workbooks.Open Filename:=&quot;P:PayrollAndersonAnderson_Billable.xls&quot;, Notify:=False </li></ul><ul><li>If ActiveWorkbook.ReadOnly = True Then </li></ul><ul><li>ActiveWorkbook.Close False </li></ul><ul><li>Else </li></ul><ul><li>Sheets(&quot;NotEntered_Master&quot;).Select </li></ul><ul><li>Range(&quot;A4&quot;).Select </li></ul><ul><li>ActiveSheet.PivotTables(&quot;PivotTable1&quot;).PivotCache.Refresh </li></ul><ul><li>ActiveWorkbook.Save </li></ul><ul><li>Range(&quot;C5&quot;).Select </li></ul><ul><li>Dim x As Integer </li></ul><ul><li>x = Range(&quot;C5&quot;) </li></ul><ul><li>If x = 0 Then </li></ul><ul><li>ActiveWindow.Close </li></ul><ul><li>Else </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Diebold_email&quot; </li></ul><ul><li>End If </li></ul><ul><li>End If </li></ul><ul><li>Application.DisplayAlerts = True </li></ul><ul><li>Application.ScreenUpdating = True </li></ul><ul><li>On Error GoTo 0 'turn error reporting back </li></ul><ul><li>End Sub </li></ul><ul><li>Like in Access, I had macros that did what I wanted, I just needed to copy them and change some info (in the colored boxes). </li></ul><ul><li>This macro; </li></ul><ul><li>Opens the spreadsheet just shown . </li></ul><ul><li>Refreshes the pivot table </li></ul><ul><li>Checks to see if Diebold (C5 on the pivot table) has a sum greater than zero </li></ul><ul><li>If it doesn’t it closes the spreadsheet </li></ul><ul><li>If it does it launches another macro </li></ul>
  67. 69. Excel Macros <ul><li>Sub Diebold_email() </li></ul><ul><li>Dim OutApp As Object </li></ul><ul><li>Dim OutMail As Object </li></ul><ul><li>Dim strbody As String </li></ul><ul><li>Set OutApp = CreateObject(&quot;Outlook.Application&quot;) </li></ul><ul><li>OutApp.Session.Logon </li></ul><ul><li>Set OutMail = OutApp.CreateItem(0) </li></ul><ul><li>strbody = &quot;&quot; & vbNewLine & vbNewLine & _ </li></ul><ul><li>&quot;You have not entered hours in NetConsole, for a prior period(s), please enter and submit these hours ASAP.&quot; & vbNewLine & _ </li></ul><ul><li>&quot;&quot; & vbNewLine & _ </li></ul><ul><li>&quot;&quot; & vbNewLine & _ </li></ul><ul><li>&quot;&quot; </li></ul><ul><li>On Error Resume Next </li></ul><ul><li>With OutMail </li></ul><ul><li>.To = &quot;; </li></ul><ul><li>.CC = &quot;;; </li></ul><ul><li>.BCC = &quot;&quot; </li></ul><ul><li>.Subject = &quot;NetConsole Hours&quot; </li></ul><ul><li>.Body = strbody </li></ul><ul><li>.Send 'or use .Display </li></ul><ul><li>End With </li></ul><ul><li>On Error GoTo 0 </li></ul><ul><li>Set OutMail = Nothing </li></ul><ul><li>Set OutApp = Nothing </li></ul><ul><li>ActiveWindow.Close </li></ul><ul><li>Application.DisplayAlerts = True </li></ul><ul><li>Application.ScreenUpdating = True </li></ul><ul><li>End Sub </li></ul><ul><li>This is the macro that is kicked off , when a sum is greater than zero. </li></ul><ul><li>It sends an email to the appropriate people , with the appropriate message . </li></ul><ul><li>This was another copy and paste, then change certain items. </li></ul>
  68. 70. Excel Macros <ul><li>Sub Email_NotEntered() </li></ul><ul><li>' </li></ul><ul><li>' Update Macro </li></ul><ul><li>' Macro recorded 4/16/2009 by durochs </li></ul><ul><li>' </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Diebold_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Harris_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Hulme_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Irwin_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Lee_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Mahajan_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Muqri_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Stamey_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Tucker_email_start&quot; </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Email_NotEntered1&quot; </li></ul><ul><li>End Sub </li></ul><ul><li>Since there are a lot of employees that need to be checked. I have set up this master email. </li></ul><ul><li>It launches each macro, one after the other. </li></ul>
  69. 71. Excel Macros <ul><li>Sub Workbook_Open() </li></ul><ul><li>Call Email </li></ul><ul><li>End Sub </li></ul><ul><li>Option Explicit </li></ul><ul><li>Sub Email() </li></ul><ul><li>Application.DisplayAlerts = False </li></ul><ul><li>Application.ScreenUpdating = False </li></ul><ul><li>On Error Resume Next 'turn error reporting off </li></ul><ul><li>Workbooks.Open Filename:=&quot;I:Payroll HistroyPayrollADP User Guides & PaperworkAN3 NetConsole ReportsAnderson_Macro.xls&quot;, Notify:=False </li></ul><ul><li>If ActiveWorkbook.ReadOnly = True Then </li></ul><ul><li>ActiveWorkbook.Close False </li></ul><ul><li>Else </li></ul><ul><li>Application.Run &quot;Anderson_Macro.xls!Email_NotEntered&quot; </li></ul><ul><li>ActiveWindow.Close </li></ul><ul><li>End If </li></ul><ul><li>Application.DisplayAlerts = True </li></ul><ul><li>Application.ScreenUpdating = True </li></ul><ul><li>On Error GoTo 0 'turn error reporting back </li></ul><ul><li>ThisWorkbook.Close </li></ul><ul><li>End Sub </li></ul><ul><li>In order to launch the master macro. </li></ul><ul><li>I create a separate spreadsheet, that has a macro launch upon opening. </li></ul><ul><li>I do this for two reasons: </li></ul><ul><li>It allows me to create a scheduled task, that open this spreadsheet and then launches the series of macros. </li></ul><ul><li>It is hard to break into a VBA code, when a query is running. So if I didn’t have a launching macro, it would be hard to update or add new macros. </li></ul>
  70. 72. Scheduled Tasks
  71. 73. Scheduled Tasks <ul><li>Scheduled Task allows me to set up my macros to run at night. </li></ul><ul><li>Got to </li></ul><ul><li>Start </li></ul><ul><li>Settings </li></ul><ul><li>Control Panel </li></ul>
  72. 74. Scheduled Tasks <ul><li>Select Scheduled Tasks </li></ul>
  73. 75. Scheduled Tasks <ul><li>Select </li></ul><ul><li>Add Scheduled Task </li></ul><ul><li>Next </li></ul>
  74. 76. Scheduled Tasks <ul><li>Select </li></ul><ul><li>Browse </li></ul>
  75. 77. Scheduled Tasks <ul><li>Navigate to your spreadsheet, with the macro that launches upon opening </li></ul>
  76. 78. Scheduled Tasks <ul><li>Select how often you want the process to run. </li></ul><ul><li>This one, I run weekly. </li></ul>
  77. 79. Scheduled Tasks <ul><li>Select </li></ul><ul><li>Time </li></ul><ul><li>Day of week </li></ul>
  78. 80. Scheduled Tasks <ul><li>Type in your desktop password and your done. You will have to update all of your tasks, whenever this password changes. </li></ul><ul><li>Your computer needs to be on for these tasks to run. </li></ul><ul><li>I lock my computer, each night. </li></ul>
  79. 81. Scheduled Tasks <ul><li>Almost done. </li></ul><ul><li>There is always some weird Microsoft hurdle to jump. </li></ul><ul><li>Whenever you have Excel launch an email, a security warning pops up and you can’t easily code an automatic response. </li></ul><ul><li>Download the software on this site and it always answer yes to those messages. </li></ul>
  80. 82. Making the digital certificate/signature
  81. 83. Making Digital Certificate <ul><li>One last problem </li></ul><ul><li>When you open a spreadsheet that has a macro. You have to answer enable or disable macro. This can’t be coded either. </li></ul><ul><li>Making a digital certificate solves this last problem. </li></ul><ul><li>Select </li></ul><ul><li>Start </li></ul><ul><li>Programs </li></ul>
  82. 84. Making Digital Certificate <ul><li>Select </li></ul><ul><li>Microsoft Office </li></ul><ul><li>Microsoft Office Tools </li></ul>
  83. 85. Making Digital Certificate <ul><li>Select </li></ul><ul><li>Digital Certificate for VBA Projects </li></ul>
  84. 86. Making Digital Certificate <ul><li>Type in a name </li></ul><ul><li>Hit “OK” </li></ul>
  85. 87. Making Digital Certificate <ul><li>Your certificate is completed </li></ul>
  86. 88. Applying Certificate to VBA
  87. 89. Applying Certificate to VBA <ul><li>Open up your spreadsheet with the Macro. </li></ul><ul><li>Hold down Alt F11 </li></ul>
  88. 90. Applying Certificate to VBA <ul><li>Select </li></ul><ul><li>Tools </li></ul><ul><li>Digital Signatures </li></ul>
  89. 91. Applying Certificate to VBA <ul><li>Select </li></ul><ul><li>Choose </li></ul>
  90. 92. Applying Certificate to VBA <ul><li>Select </li></ul><ul><li>The certificate you made </li></ul><ul><li>Hit OK </li></ul>
  91. 93. Applying Certificate to VBA <ul><li>Select </li></ul><ul><li>Save </li></ul><ul><li>Close </li></ul>
  92. 94. Applying Certificate to VBA <ul><li>Select </li></ul><ul><li>Save </li></ul><ul><li>Close </li></ul>
  93. 95. Always Trust Me
  94. 96. Always trust macro from this publisher <ul><li>Open spreadsheet(s) again. For a launch spreadsheet, do this at inception of the code and after testing everything (on the master macro). </li></ul><ul><li>Click on check box for “Always trust macros from this publisher”. </li></ul><ul><li>Select Enable Macros. </li></ul><ul><li>When you open this again, there will be no more prompt. </li></ul>
  95. 97. User Instructions <ul><li>For the user (if there are any), they need to follow these instructions. </li></ul><ul><li>Users will initially get a grayed out check box. </li></ul><ul><li>They need to select Details </li></ul>
  96. 98. User Instructions <ul><li>Select </li></ul><ul><li>View Certificate </li></ul>
  97. 99. User Instructions <ul><li>Select </li></ul><ul><li>Install Certificate </li></ul>
  98. 100. User Instructions <ul><li>Select </li></ul><ul><li>Next </li></ul>
  99. 101. User Instructions <ul><li>Select </li></ul><ul><li>Next </li></ul>
  100. 102. User Instructions <ul><li>Select </li></ul><ul><li>Finish </li></ul>
  101. 103. User Instructions <ul><li>Select </li></ul><ul><li>Yes </li></ul>
  102. 104. User Instructions <ul><li>Select </li></ul><ul><li>OK (on all open screens) </li></ul>
  103. 105. User Instructions <ul><li>Close out of grayed out screen and reopen spreadsheet. </li></ul><ul><li>The user will now have the option to click on the check box. </li></ul>
  104. 106. End Result
  105. 107. End Result <ul><li>End result, is that an unwanted (non value added) job is eliminated. </li></ul><ul><li>The possible for error, has now shrunk close to zero. </li></ul>