- Parent Category: Programming Assignments' Solutions
We Helped With This Excel (VBA) Programming Assignment: Have A Similar One?
|More Info||Excel Vba Assignment Help|
Short Assignment Requirements
4.6 VBA Project: Olympus Tours
Assume you have just been hired by Olympus Tours (OT), a bus-rental company located in Orem, Utah. OT provides buses for groups such as schools, family reunions, travel clubs, etc. The smallest group OT will bus is 20 people and the largest group is 120 people.
Two types of buses are available for use: small buses (25 maximum riders per bus) and large buses (60 maximum riders per bus). Assume that OT has access to all of the small and large buses it needs.
Table 1. Bus Combinations
# of Buses
OT’s pricing structure is as follows. The base price (BP) is calculated by multiplying the number of people (P) included in the trip by a per-person base rate (PPBR).
BP = P * PPBR
The base price covers trips up to and including five hours in duration. Customers are charged extra for tours that last longer than 5 hours. For example, a bus rented for 6.5 hours would have 1.5 overtime hours (OH). The maximum number of overtime hours per day is four, which means any trip lasting nine hours or more has the same number of overtime hours regardless of the duration of time that exceeds 9 hours.
The overtime charge (OC) is calculated by multiplying the base price (BP) by the overtime hours (OH) multiplied by the extra hourly percentage (EHP) as follows:
OC = BP * OH * EHP
Table 2 shows some example price calculations that include partial hours.
Table 2 Example Pricing Calculations
Number of People
Per-Person Base Rate
Extra Hourly Percent
Note: *these numbers are not calculated in your code. Your sub should simply take whatever value for PPBR and EHP that is given in the setup portion of the single estimate and use that in your calculations
Your task is to create both 1) a flowchart and, 2) a VBA program in Excel that will pick the right number of buses and that will calculate the correct price for the number of people and hours specified.
Because the pricing parameters (PPBR and EHP) are somewhat stable, they are stored in the setup section. When the program runs (both the single and the batch), it should obtain the values for PPBR and EHP from the Setup section.
Based on the values in the setup section and the number of people and hours specified, your program should calculate the correct outcomes. Your program should work correctly for single-trip estimates and for a batch of estimates. Your program should only pull values from the worksheet. You should not be using inputboxes.
Single-Trip Estimates. The program should work when the user wants to estimate one trip at a time. For a single trip, the user enters inputs directly into the [User Form] tab and presses the Run Single button. In this scenario the user will enter the number of people (P) and the tour duration in hours (H) into the appropriate cells in the User Form. Your program should then use the pricing parameters (PPBR and EHP) to calculate the amount the customer will be charged per day. NOTE: if the user requests fewer than 20 or greater than 120 passengers, the user should see a pop-up message that indicates that they’ve selected too few or too many passengers and the outputs should all be set to zero. Figure 1 shows the [User Form] tab.
If there is a multi-day tour, the program will be run for each day of the multi-day tour. Thus your program does not need to support calculations for more than one day at a time.
Figure 1: [User Form] Tab
Batch Estimates. OT often wants to estimate batches of trips. In this case, the program should take all of the tours shown as inputs on the [Batch Input] tab, estimate them one at a time, and write the results to the [Batch Output] tab. To estimate all trips within a batch, the user presses the Run Batch button on the [User Form] tab.
The [Batch Input] tab. Figure 2 explains the data on the [Batch Input] tab.
Figure 2: [Batch Input] Tab
The [Batch Output] tab. Figure 3 shows how your program should organize the outputs on the [Batch Output] tab.
Figure 3: [Batch Output] Tab.
Summary of the Project Assignments and Details:
1. Create a flowchart for the process of completing an estimate for a single-tour. You are not required to create a flowchart for the Run Batch process. Upload this flowchart separately from your completed workbook in the file upload box below (to facilitate grading).
2. Download the Olympus Tours Programming Project Worksheet below. Do not make your own workbook. Add VBA code to complete the project.
3. Your VBA code should work with the cells that are already positioned on the [User Form] tab of the workbook. Do not change the cell locations or layout on the [User Form] tab within the workbook. In addition, do NOT add or delete any columns or rows.
4. Use VBA to do all of the calculations. Do not use spreadsheet functions.
5. Add your VBA code to the two existing sub routines that have been started in Module1 already within the workbook. Add your code to the sub routine named EstSingle() that will run when the user presses the Run Single Button. Add your code to the sub routine named EstBatch() that will run when the user presses the Run Batch Button. Connect the appropriate subroutine to the respective buttons, so that the correct sub routine will run when the button is pushed.
6. In your code, use the Option Explicit setting for both subroutines. (This should already be set.) Verify this by ensuring that the first line of code says “Option Explicit.”
7. Use Dim statements to declare all variables that you use in your code. Declare the variables as the data types shown on Column D of the [User Form] tab.
8. Test your program with a variety of inputs to ensure it works properly before you turn in your assignment.
9. You do not need to calculate PPBR or EHP. Rather, your sub should take whatever values of PPBR and EHP are provided by the user in the setup variables section in the single estimate user form.
10. Upload your completed Excel workbook in the appropriate upload box below.
11. Do not forget to handle user inputs that are invalid (i.e. <20 or >120 passengers) as indicated in the description above.
12. Be sure your batch Sub can handle extra batches of data (same format as existing batches) added to the bottom of the batch input tab.
13. Be sure your batch Sub can handle extra spaces (1 or more empty rows) between batches of data.
14. Please comment your code so that it is easy for a grader to follow. Code without comments may be penalized. Partial credit is also much easier to grant if code is commented.