Learn How To Create This Excel Equipment Rental Application From Scratch [Free Download]

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello and welcome this is Randy with Excel for freelancer and in this week's we're gonna be developing an amazing equipment rental application complete with pictures of equipment check in check out date we've also gonna have brand new buttons and an amazing pop-up calendar all from scratch all from the beginning so I can't wait to show that to you so let's get started all right thanks so much for joining me today I've got another amazing application I want to create for you right in front of you today and that's gonna be the equipment rental application as you can see we're starting out with an absolutely blank sheet I do have some other sheets with some information on it we're gonna go over that soon just before we start if you have not yet subscribed I would love for you to do so we've got an amazing over 100,000 subscribers trying to get to 200,000 subscribers with your help so if you have not done so yet I do create these videos each and every week for you for free so I'll always appreciate your patronage your subscription so if you want to click that subscription and don't forget the notifications icon bells well that way you'll get alerted to each and every brand new training that I'm going to create for you and make sure you download the application always free and I'll always include the links in the description below with your email or your facebook Messenger and we'll get that right over to you well thanks so much I really appreciate you joining me the subscriptions has gone through the roof so I really appreciate that if you do like these trainings of course I've got an amazing accel mentorship program or gonna be creating an amazing application and a huge accounting application where I teach you to create your own applications in fact here is a little preview of the invoice screen that we just started working on here in week 17 which is where we're at but you should start anytime and be great we'll bring you week to week and how to build up amazing applications in this particular application this invoice screen is just taking a look at this here we just started working on it but users and users are gonna have the right to customize their own invoices so when you click this customize it's gonna open up this brand new panel it's gonna show you be able to select any label any data just by simply lightening it it's gonna display that and then you can you just can drag and drop those fields anywhere on the invoice they want men cludes labels and of course they're going to be able to change the colors change the look change the borders and everything they want on those invoice whether it's invoice details they'll also be able to control the width of the columns show the columns hide the columns display footers show tax high tax pretty much anything you want and a fully customizable invoices that's just one of the amazing things that we have going on in this accounting application that I'm teaching you in the mentorship program we've got an amazing chart of accounts feel here we're going to be able to showing pop-up quick release features a ton of amazing features in this application so I hope that you will join us and I'll click the links down below for the mentorship program alright let's get started on this week's application I'm gonna be creating equipment rental applications can allow you to use this application or sell this application or do whatever you like with this application customize it the first thing I want to do of course is drop this down and we're gonna save those first two columns for admin you'll eventually want to hide them so we're gonna cover them great this is where our details are gonna go and then you'll hide it all include this top row for the title if I will go all the way over to Jay and I'm gonna put up just a fade out cause we've done in the past will create a new car I'm gonna do a fill and I'm gonna do a fill effects create just something kind of a nice color to give it a good look we'll go for this blue and then a lighter blue and then I'm on the road down what I'm going to do is I am going to bring it a little bit of lighter color here in just this little mini row here because I've I've spaced the rows out to help us move things along I know these trainings can be long and I know there's a lot of work so I try to do as much as I can in advance as possible so we're gonna color that just a little bit and then I'll give the background the color and I'll probably go down to row let's say just thirty or something like that so basically what I want to do is I want to create a form in this entire form is gonna take care of all of our rental units here it's gonna we're allowed to be able to rent equipment and what we're gonna do is we're gonna create a list of orders those orders are gonna go on here every time we create a new order it's going to go here we'll be able to try the customer the order date created by date the red dot date expect a return date so this is where the tables gonna go I've already pre filled it with a list of equipment and I've got some pictures in a folder here so we can see some pictures I'm gonna have these pictures appear on the forum too because I want to show pictures and show what kind of equipment people are gonna be renting out and vac you can if you combine other trainings we can create a receipt or an invoice with these pictures if you want so we've got that I've got a list of customers just prefilled out a few customers with basic information nothing too important their order items this is where our orders are going to go so all the items that will work and then based on order ID so that means every time users can check out multiple equipment right so you can have one order with an unlimited number of equipments that they can rent out in return and we want to pull a rate and then I also have a calendar pop-up this is something that I've used in the past this is just a calendar that I've created we're gonna use this on the page but what you can do is I'm gonna show you how to use this calendar on any type of application you want so it's great but we do need to start out with this calendar page this is the shape based calendar so you can change the colors and change all kinds of things on it so make sure this sheet changed you can drag this sheet to any other application if you want we'll get into that and I'll show you exactly how we're gonna use it but our order sheets gonna be blank so let's give it a start and let's give it a title and some icons of course let's pull it up we'll call this equipment rental application equipment rental application make sure I spelled that right because often if I don't I won't catch it and then you'll have to look at my misspelling for the next hour okay looks good so at all creased to font something to probably about 24 and then give it a bold and italicize and then we're gonna merge it across let's just say we'll go here to I just so we can get a good idea of it alright so what I wanna do is I want to create some fields here we'll start and let's say for I'm gonna put the customer here and then I want the expected rent out date here and then expected return day one we want an expected wanna know when they expect to return back to return date so that we can price out at least give them an estimated price and I also want the actual return date our actual returned on that's fine either way is good so this way we can have a customer here or the returned on and then I also I want some more fields I want the order ordered number we gotta track each order should have its own order number than the order date what's the date that they ordered it on this will be automatically created and then I want it created by we can put in whoever created by we can put in whoever created the application whoever created the order I should say duration what is the duration it's going to be automated how long are they checked it out for pricing can be priced on this duration so that's really important and then the next field I want another field something like total rented price total rented rental I guess with a rental price because this is gonna be all of the items all the items combined like if they have multiple equipment we want the total here and then I want to know how many payments they've made in case they've made a deposit or they paid on full we need to know the payment so payments will go here and then probably total amount due based on the payments so that'll be pretty easy all right so this is are gonna be automated but payments is gonna be injured by the user so I'm gonna call it this white just the fields that they can enter here so create a by and then customer rent it out these gates these are all date field so we're gonna put those in white because they're gonna be form and I'm gonna left justify those left and then I'm gonna put these are gonna be right justified I'm gonna put a border around those as well just to give them some kind of uniform of yet I'm gonna put a table down below too so I'm gonna right justify those format those and I'll put a border around those because I want it to be a nice clean look and I'll use a color consistent with my theme so I'm gonna use this darker blue here and then I'm gonna put it all the way around but I'm put a dotted line on the right I'm gonna do the same thing except the dotted lines gonna be on the left as I hold down the control select all the fields in which where user is going to enter in fact I'll add these to format those cells and I'm going to put the borders just a solid border on the left and the right the top and the rocket the bottom all right so the same thing with this one here I want to do actually I want to put the number of days here I don't want to put the formula here so let's put that in there format cells and I'm gonna do the same thing with the border here just added this color border okay so our forms starting to come together now we can see how it's going to look and it gives us a good idea of what we're gonna be having and I also want a table down here let's just format those cells that's where we're going to be putting in our formula for the calculated number of days now the calculated number of days be based on two factors it can be based on the expected readout date and the return date or if there's an actual return on it can be based on the rent out date and the return on so we need two different so the duration can be based on either one of those then in 12 I want a table so I'm gonna put in equipment I want to know the equipment that was rented out equipment and probably name and then description we have equipment description and then the status I want to know if it's been rented or if it's available that's important the rate how much is the rate the daily rate we can put in daily rate and then duration how many days of course and then the total this will be calculated okay so that's gonna be the top of our table so let's color it accordingly we're gonna Center it in there I'm gonna put borders all the way around it form out the cells it's a little bit off the screen sorry about that I'll drag it up I'll use the same border color and I'll color the outside and inside and I'm gonna give it a fill again a fill effects so that it it looks a little bit different than everything else and then I'll use this fade out color here okay so now our tables starting to come together and I'm going to create a very large table because I want to make sure it's on the screen for you I don't want to go off the screen too much so we'll just let's go down to say 26 and then what we'll do is we'll format those cells just create a little bit of a table here again using the same colored border border all the way around I'll use a just a lighter maybe a lighter dotted line in here a little bit lighter in the center vertically okay and then I also want to alternate to color row so we're gonna add conditional formatting to color alternating rows Co the even rows how do we do that I'm gonna use a formula for that and then something that's automated for me because I used autohotkey you can download that for free and it just automatically types in this formula will color even rows two equals zero means even row so I'm gonna give it a format and a fill use this but a little bit lighter so I'm gonna drop it a little bit lighter here and that's key gave us alternating rows that we can easily view our table contents much easier okay it looks really nice but I'm gonna color it does look kind of nice iein colored white though the rest of the cells were white so we can get a nice table okay well add make these bolt control beads gonna do a quick way to bolt it's coming together nicely this is going to be a formula this is going to be the customer order number looks good now let's add in some buttons I'm gonna put some buttons I also want to put a picture so let's actually drag this over here and I want to increase this table I think I want a picture here as well so let's do that let's put a picture in here and I want a picture of that so we can also put a border around this too because once we select an item I'm gonna let me just go down so you can see it I'm just right clicking and formatting the cells with its office screen here adding the border so that pictures gonna go there so when we select an item equipment item from this table the picture of the items gonna show up there which is kind of a nice feature okay that looks good we can bring this over color and just call it the outside a little bit so it looks a little bit nicer and I colored the outside a little bit so it looks nicer I'm just gonna copy paste that down there and bring this down here so that we get all the way around the table okay so now we've got a nice all the way around it looks nice okay so the look and feel of it is correct and I want to add some information in we're gonna need I need to know whether this is a new order or not new order I also want to know the row of the order order row and I need to know from the next order number next or because we've got to keep track of all the orders and if the order is loading or not order load that means one is load what I want to do is when a user puts in an order number here like one I want that order to load automatically I'm gonna show you exactly how to do that so everything's gonna come up and I also want to know the selected row that means the selected row in this table when you use selects row I want a few things to happen that row to be highlighted and I want to show the picture if it's available of the item right here makes it for really really nice and really easily to look at so we've got that and let's get let's color these accordingly just so they stand out something different like this green now we've got that already set up so what I want to do is I want to add some information I also want to add some buttons on here so let's add some buttons let's put in some nice big buttons we're gonna use a square button something within the theme of the table and I'm gonna put it in the buttons right here all right and let's size them accordion looks a little bit too big point forward let's say and then one point six we've got to put about four buttons in there total but let's get that all let's put the shape let's use a probably this one here looks nice and then what I'm gonna do is I'm going to duplicate that control D control D control D four buttons I want four buttons and really only three buttons are gonna show at any given time so we can drag these down here and then I'm going to put this one over here just for now so we're gonna have about four of those buttons all right now I've got some buttons on wanting interest so let's enter I've got some saved up I'm gonna use all of these here I've just saved them so we're gonna preach and then we're gonna let's just adjust height two point three or something like that something a little bit smaller and manageable and one of them is actually the icon that I'm gonna be using for the application which is here so let's bring this up and I'm going to increase this little bit so we can see a nice okay good that looks very good and now let's change the font to something a little bit bigger and the color here so it looks a little bit nicer okay so now we have a nice look and now let's go ahead and place these on our buttons so what do I want I want them delete button here I also want a save and update button I want to cancel new button and I want a new order button good I also want to use a calendar pop-up it's can being really nice so I'm gonna reduce this down and I want this basically to display inside this then we can make it a little bit bigger let's go at point one seven and I want basically when you user clicks on this I want the calendar to pop up whether we're here here or here so it's gonna be in either one of those threes so that's gonna be really helpful so let's get these buttons done and see what we can do the first one let's call this new order and on all of the buttons I'm going to click them all and I make them all right justified although they're not long to me and in the middle and then let's increase the font until we get something that we like make sure we got a white font perfectly white and maybe make this bold there we go that looks kind of nice alright so we've got that and then maybe the fonts a little bit too big there and drop that down a little bit okay and then we can Center this actually all right so individually will have to space them out a little bit okay so we got the new order and then I want this we're gonna call this one saver update save or update and then this one's got a little bit text so we'll write justify that and then I want delete let's say call this delete order and we can write justify that one - it's a little bit bigger text and then the last one is gonna be cancelled new and I only want this to appear up on new one so cancel new I only want this to appear on the new mode okay and this is only going to peer so basically it's either to be canceled new or new order so not both of those at the same time so I'm gonna hold down the control and then I'm gonna do is I'm gonna group both of those and I'm gonna call this cancel new button and I want this to be called new order button so let's do the same thing here control and then we can also format and align those up to make sure they're aligned in the middle and then I'm gonna group them and give this a name we're gonna call this at will call this add new button and then I also want the save update here so again let's drop move this over here Center it control group it and name it we'll call this save update button and then the last one we're gonna call this just the delete order button again here and then we're gonna head and line it up here align the middle and then group it and then name it delete order button okay we've got that done now we got everything nicely let's just spaced out accordingly holding down the control I'm going to align the left and then I'm going to distribute it vertically here now all the buttons and I also want to place this cancel new we're not gonna show cancel new and new at the same time so I'm gonna place it on top of each other I'm gonna send it to the back okay so now we've got our button set up we got a new order same order perfect if things were looking really good now what we want to do is I want to add some named ranges for those really important especially with customer so let's go ahead and do that in the customer name I've got different customers so I want to add a dynamic name range so to do that I'm gonna go into the formulas name manager and you'll see two already those are based on the calendar so those are pop-up calendar and we use those so what I don't worry about those for now just focus on this customer name okay and so what is it I want to use an offset farmer because it's dynamic so I'm gonna start out with off set and I'm starting out in row 2 because that's the header button right we don't want to include that but the reason we and start out with the headers because when there is noted no data it's gonna not prevent an error so start at an 8 2 comma 1 1 means one row down comma comma count a but I want to count all of the one so what I want count I want to count all including let's say a through a large number like 999 that's gonna count all the ones with text but I want to subtract 1 again because we're using the first header row which we don't want to include so we're gonna subtract 1 comma 1 means just one column all right tap out tab back in make sure the dance accounts cover all the data as they do here all the way from a 3 to a 7 we're good to go so now we've got a customer name but let's add more I also want equipment name we've got equipment I wanna do the same thing for equipment so let's just highlight this again actually we could probably highlight this is gonna be a little bit quicker go into the name manager new and we'll call this one equipment name okay and then again we're gonna start it off with offset just like it as we did before and then open parentheses and then what we're gonna do is going to go to comma and then 1 again comma comma count hey what are we counting we're counting all the equipment with names in this list again large number 999 starting at the header comma minus 1 actually minus 1 comma and then 1 1 column tab out tab back and looks like we're good okay don't forget to download this you want to see what I've done you always have free downloads click ok alright good now one more let's do one more I want to do order numbers that's really important even though we don't have any order numbers order list but we're going to so let's just say 1 2 3 putting some sample data right now will control this and then name manager again new one more and we're gonna call this order numbers same exact formula using offset offset is a great formula but we're using very very large ranges you might want to use something like index which is non-volatile we're using smaller ranges so it's okay there's a small application keep in mind there's more than one way to do this depending upon how much data you want how big your application is offset okay comma 1 comma comma count a what are we counting or counting all the orders in this list all the way up to a large number 9 9 9 close parentheses minus 1 not including the header comma 1 okay tap out tap in great I know I move fast over these we got a lot to cover so you can always download this and see the formula exactly for yourself you want to make sure the dancing ants cover the data ok good alright great so here's the idea let's go back into some formulas and start working on that we've got a customer I want this to be a drop-down list so let's put that in a data validation data validation and then we're going to make it a list and we want to equal the named range we just created called equals customer name okay great so that's going to give us a drop-down list of all the customers but we also need the order to row order number so let's put in a row now what is the row of water number one it's gonna be row four why is that because our row starts on our first one starts on four so I also need to know the role of that so let's put that in equals always if air in case there's an error what do I want to do I want to find a match I wanna match the formula what am I looking up I'm looking at the order number what is the array it's gonna be order numbers and I don't want an exact match so it's gonna be zero but I don't want the first value I want the first row so our first row starts on four so we need to add three right because our first value starts in row four so comma why are we coming because if there's an air what are we going to do if narrowing a double close that's gonna get us four if we change that to it's gonna get us five perfect that's what we want because order number one is in row four perfect and if there's no orders then I just want to be blank see no air it's just blank perfect that's exactly what I want what I want the next order could be the next order I want that to be using a max so we can use the max and if there are no orders like in this case there are no orders I want to show up one so how do we do that we use if air equals if air we're gonna use the max this time max of what max at the ordered numbers but I ought not only want the maximum I want one beyond that so plus 1 so plus one beyond that but what if there are no numbers in that case I wanted to return 1 which would be the first available in case there's an error so it's gonna do one now as soon as I change this to the order list as soon as I count one two three that next order numbers gonna automatically go to four which exactly what I want so it's the maximum which is 3 plus 1 which is 4 okay this is gonna be a true or false so a boolean so we can select that and I also want another selected row and add conditional formatting so for example if this likely rows 13 I want to highlight that row based on this row we can do that a few conditional formatting if we highlight all the rows and add a conditional formatting rule and create a new rule and then use a formula to create that we can do equals what does it can be equal whatever seen B 7 and then equals row open and close parentheses row open and close parenthesis now I want to format that very different than what it is so I'll just use a contrasting color let's go into fill effects and use a very contrasting color we'll use this and then what I'll do is I'll use a bold font so like this and I'll use a white font that'll stand out bold and white and it's gonna stand out a lot okay good so now we've got that so now if we type an equipment name good alright but let's do that let's type in some equipment in fact I want a drop-down list here just as we did for the customer so we'll drop that down and I'm going to data validation data validation here I want to create a list and the list based on the equipment names so equals we just created equipment named click okay and that's gonna give us a drop-down list perfect okay so now we in but when I enter this equipment am I actually want to show the description the status and the daily rate we have all that in the we have the description we have the status and we have the daily rate so I want that information to appear but the best way to get that information appears we need to know the row number it's on in fact this is on row three and four so how do we get that well we can use the same type of a match formula using or if air so I'm gonna put them formula right here and eventually you can hide the results just by changing the font color equals if air [Music] we're gonna use a match what do we match it I'm gonna match up whatever's in d13 d13 and then I'm gonna match it based on the equipment name comma zero on an exact match and so again I want the row what is the row it's gonna be plus 2 in this case plus two plus two because the first one's gonna be on a row for I think I'll check that a second comma what if it's an air and need parentheses okay so if air compressor is on row four let's take a look at compressors on row four cuz our first row starts in three in this case that's why we added two perfect okay that's what I want let's go back so we've got that and we can just drag that all the way down there and it's gonna provide a blank because there's an air but as soon as we add something on the first row it's gonna provide the air now if you want to hide these which you probably do on yours just go into home and then change the font to the existing color to the background color that's gonna hide it which is great but for our purposes I want you to see it so we can continue on and we're going to write some additional code very soon that's gonna put in the description status in the daily rate all right very nice I also want to pop up calendar we use the selects here I want this little icon to appear here so let's give this icon a name and what do we call this cow icon so now it's got a little name so we can refer to it within the code and I want to format these based on the currency so we're gonna click currency symbol that is what I want to format these as a long date so we can format those long date here and this one's going to be a short date all right it's coming together we've got a customer list now we've got an order number we've got the format so if we put in a format here perfect what do I want this to be I want this to be the total of what is in here we're gonna put a formula in here so let's write that now equals sum of what and sum of all the totals here all right great so I'm gonna have the sum and what is this this is the amount of dues gonna be equal whatever the total is so if we add let's just say 150 and we're gonna also format this as a currency good so now we have this so now I want to know the total amount due is equal to the total rental price minus the payments all right great so soon as we enter payment in here it's gonna show them out perfect so now we're getting they're getting a lot closer now all right let's get on to that counter changes to return on make it a little more clear so let's get into that calendar I have a pop-up calendar here that I created this is a shape based calendar it's really cool I'm gonna copy this control see I'm gonna place it on this order sheet here I only wanted to really appear when they user selected I'm gonna change the color several colors share anything that we like we could probably go with this blue here that's kind of close to what we want okay so basically what I want this calendar to do is when I click this icon I want it to pop up and I want this calendar to hide otherwise so let's write some code to do that right now it's a great little calendar and let's let's work on that so we're gonna go into the VBA to start working on our V being get get this application created it's going to be amazing so into the developers tab if you don't have the developers tab you can go into the file and the options and you can find that developers tab and then customize clicking right here on that checkbox you can also use a shortcut alt f11 to get you in there I do have some code this is a pop-up calendar this is the code that runs the calendar that's the only code that I have on there and you can take a look at that but we're gonna focus on something different today we're gonna focus code on sheet and I'm gonna creating a lot of other macros but this pop-up is just to run the calendar ok so let's take a look at it what do we want to do well the first thing what I want to do is when I select select on certain cells I want this calendar this icon to pop up what cells are those those are gonna be cells e6 e8 tense let's write some code to get that calendar to display that little icon here display and I want to display all you menu click on those cells otherwise I want it hidden so we can use selection chain so we're gonna click on worksheet selection change so we're gonna write code in here now if the user makes it change to one of those we want to we want to happen so let's also write some code to prevent some air so I'm gonna write if target dot count large is greater than let's use just ten then exit so what that's going to do is gonna prevent airs when user selects on a large large range of cell so that helps remove some bugs that's just something I write quite often okay so we're gonna focus on selection change so first thing I want to do is I want to write if not intersection now I wrote that code automatically and very quickly because it's part of autohotkey that's a software that helps me write code very fast and it's also free on the internet called autohotkey you can download it yourself e6 of course is what we're gonna be focusing on along with e8 and eat end when user makes a selection on one of these three cells I want something to happen what do I want to happen I want to have that pop up calendar show up then did I want to show up so what do I want to do let's just write some notes so we know exactly what we're doing on selection of date field display calendar icon okay so we're gonna know what we're doing there so when user slice up then what do I want to do I want to say with shapes right with shapes we've already named it cow icon we've given it that name so let's refer to it cow icon what do we want to do with that well the first thing I want to do is I want to display it based on the I'm gonna position it so dot left to position it and I don't want to place it inside the song I want to place it actually what I want to do is I want to place it on the cell to the right so I really want to place it right here and then what I want to do is I want to move it over a little bit here so place him to the cell the right ensures that it's always gonna be on the don't worry about that it's always going to be on the inside just on the inside of it okay so we want to first place it on the cell to the right so we can do that by continuing with our code dot left with reset the code that wasn't finished what is it it's equals the target is the cell that they're selecting but not I don't want the exact target don't want the cell to the right so we can use offset for that I don't want any row offset it's not going to go row above or row below it's gonna stay in the same row so we're gonna keep that zero but I do want to call them I'll call them offset call them to the right one plus one is going to be a column to the right native one would be a column to the left dot left I'm gonna do the same thing with the top property top again equals target dot offset and no rows up or down zero comma one one column and then dot top they don't want it exactly on the right I'll actually want to bring it over a little bit to the left so we can do dock increment left and then minus sixteen about 16 because the icons about 16 pixels give or take so I wanted to move to left and I don't want it exactly on the top so I'm gonna move it down a little bit using increment top to move it down we go one so in this case down would be top let's just say one the last thing I do I've used those four lines to position it exactly where I want but I've actually haven't made it visible yet so we can make it visible with this line of code dot visible equals MSO true okay so great so if the user selects on anything it's gonna make it visible but what if they don't want if they select outside they select outside in that case else what I want to do else I want to hide it shapes again cow icon dot visible equals Emma so false so this is gonna hide it so if they select anything else is going to hide it and then I also want to run the Mac and I have a macro called calendar hide and calendar show this is always here so calendar hide this is gonna hide I've run a macro cuz it clears it so we can do that that hides that pop up counter so I'm gonna copy that macro then I'm gonna go right in here I'm just gonna write in calendar hide so perfect remember we only want two I'm gonna run the macro this macro calendar show which is gonna display the calendar but I only want to run this macro when they click on that icon so I'm gonna copy that calendar show that's a complicated macro we're not going to go into today because we're just gonna focus on the or but I do have a training on that as well you can find out calendars on my youtube channel you can find a few on that one called three calendars Russia show you three different calendars so got a lot so I want to sign a macro to this little pop-up click assign macro I'm gonna paste in that macro called calendar show now let's see when I click on here let's find out and show it's not showing up let's see what we did ok so when we select the order sheet and weeks when you make a selection cow icon dot visible we need to make this true see true ok there we got it wrong one okay so now it's gonna show up that's exactly what I want to shows up exactly where I want to show up and when I click it I want to show that calendar perfect and when I click off it if I click in it outside of it it's gonna hide the calendar show it that's exactly what I want when I click the date it's gonna show a date when I click it it's gonna we'll be able to show a date perfect that's exactly what I want okay just a review we want to make sure we're showing visible it was true not false obviously and then false would be to hide it great so now we've got our calendar feature let's write additional code so I also want to load the item remember remember when we change this I want to load this item here so that's unchanged event so let's write some code for that meaning we're actually gonna make a change not a selection but we're actually making a change I want the description status and the daily rate to show up and I want it to pull it from this equipment here in the description the status in the day they're gonna pull that out so how do we do that well okay let's take a look let's format this I think we didn't format this as a currency yet so we can do that alright let's do that and that's unchanged events so what do I want to do I'm going to we've got worksheet but this one's changed we're going to click change when a user makes a change to a cell inside a worksheet something's going to happen well what do we want to happen I only want it to happen on specific changes one what are the changes few things what I wanted to only show up when we make a change to anywhere between d13 and d26 so let's write that code d13 if not range is nothing then what do we want to do again let's change this to D 13 through D 26 that's the change so if they make a change then that's what I want to happen but I also want to make sure a few other things for sure I want to load it only on a few other things what is those other things I want to make sure that they're not loading the order remember when we're loading the order all the information is gonna come from here the equipment name and description it's gonna come from here so I only want to load it when the when we're not loading what do you mean what I mean by that so if I've saved this order if I've already saved this order all this information is going to come from all of our order items here but if it's new order or if it's an existing order and we're adding on to it in that case the order load would be false so I want to make sure b6 is false so that means as we add as we added on existing not when we're loading it I'm we're looking a previous one two different kinds of changed we need to specify and differentiate between those two types of changes so how can we do that we just want to make sure that b6 is false so we're gonna add an and and range b6 dot value equals false and I also want to make sure that the kind of change is there's actually a value I wanna make sure that the target there's a actual value so and range D and the target dot Rho dot value does not equal empty right if the kind of changes were they're deleting something that we don't we can't load it so we have to make sure that that equals and we want to make sure all right so then what do I want to do then I want to run a macro that's gonna load the equipment so we're gonna write a macro right now then equipment load equipment though that's gonna be a brand new macro that we're gonna write right now so I'm gonna copy this to make sure we have the name so we're gonna do all that the macro doesn't exist yet but we're gonna write it right now so that's going to load load our equipment let's bring this over here and open this up a little bit so you can see more of it okay so now you can see all the codes so then we're going to load equipment so there's three conditions the user makes it change to D 26 it's not on the load meaning you're not loading the order from a nut from a previously saved and we want to make sure that they're actually entering a value it does not equal empty so when those three conditions are met we're going to run a macro so let's create that macro now but we to do that we need to actually create a module so we're gonna right click anywhere insert a module and what I want to do is I want to create a load module let's just call this load order sort of load anything we want so I'm gonna hold down the properties here click on that and then just call this load order max okay and to do that let's go ahead and write something sub and I don't have paste in that macro name that I just created so here's the macro so now let's start writing this macro and this macro really gonna need two variables what I mean I need to know the selected Road the rope they've selected I also need to know the equipment row the equipment row is based on the selected row is it row he's the equipment roof 3 or 5 or where's the equipment because I've got to know if I'm gonna load in the information if I'm gonna bring in the description the status and the rate I need to know what rows it on three four five or six but I also need to know the road the user has selected what row are they currently on that's important so we're gonna define both of those in two variables so we can do this dimension the selected row as long and also the equipment row that's good and also of course I want to actually display the picture - because that's nice so I'm gonna dimension the picture path as a string that's the path of the picture now I have that picture path and it's saved right here based on my desktop based on decent information right here so it's all here so make sure you have your pictures - and make sure this path is correct you want me to make sure it's the correct path for the pictures all right so I also wanted that so that I can load in the picture as soon as I load it in I want the picture to display right here in this box right here so how do we get that let's continue on with our macro of course we're focused really with XI one so with she and then we can continue on I want to make sure that b7 does not equal value if we have to of course we need really two things are in order to load our ger we need the selected row that can't be blank and of course we also need the equipment row we need to run checks to make sure both of those so we can start out with the selected row if dock range b7 equals empty equals empty then exit sub nothing we can do we can't load anything unless they've actually selected a row also now we can define the Select of those selected because it's not empty so now we can continue on selected row and what does it equal N equals b7 right here so we can just copy and paste that save a little time equals b7 I'm just call that selected we're always good to comment out once we have the selected row we can then define the equipment row why is that because the equipment a rose located in column C equipment Row is equal to dot range C and the selected row I'll show you that just second selected row and that's the equipment row equipment okay so we've got that of course it's C in the equipment row which is right here seen in this Quitman row that's gonna be our that's gonna be our row so we know that now we can define that we also want to make sure that that's not blank because if it is we're gonna we can't load anything so we can do if equipment row equals 0 then exit so just in case you're wrong we can't do anything on that just in case alright so now that we have that now what we can do is we can bring in over the data so dot range e is the first column we've already loaded D cuz that's the name he is our description E and what he and the selected row and what else and parenthesis : all the way over to G and the selected row equals what is it equal let's just go over that e3 G equals equipment B through D so that's on the equipment sheet so what is the equipment sheet well that equipment sheet is located right here if we can see that the equipment sheet is sheet 2 here so we know that so we can move on equals let's close this we don't need this anymore sheet 2 dot range B this B is the SEC we have the name and call them a and B is the description B and colon all the way through in this case it's going to be D and they quit B and the equipment grow all the way through and call it and D and equipment Rome ok let's just take a quick look at that E and the selected row through G in the selected row equals sheet to be an equipment row and D and the equipment of row dot value it's gonna bring over all the information all of you ok so that would be the description that would be the status and the rate ok let's take a quick look at that to confirm double check we're on the right page here description status and the rate bring that over there B through D all right ok so now we're good to go and let's take a look what else do we need to right now we're gonna write the picture but let's just take a look at that and see where we are now to make sure we're in the right place so let's just double click on that we don't need the end if because we have the macro right here alright we don't need this cuz we have it right here so we don't need end if it's all in one line we could just remove that if it's all in one line you don't need to know but if we are going to be doing something we would use it we could do this as well let me just show you what it would look like if we didn't have it if we wanted to keep that end if we would have to do enter and then we would do and if that would work also ok so we can do either one of those let's keep it this it stays a little more space both are the same ok so let's double click on this and then now we have the description the status and the daily rate perfect ok so but I also need the duration that's really important what is the duration well the duration is going to be basically whatever is equal to what's in G so and what is the duration let's put a formula in the duration the duration is it going to basically be if we have a returned on date if we have returned on then duration is going to be the return on date - the rented out date but what if there's no return date in that case of what I wanted to be the duration is going to be the expected date - the red dot date so we can write some code here so equals if and then I wanted to do it and and why and because I want to make sure that two of these have values if and returned on date does not equal blank and what else and our readout date does not equal blank let's write that up here so it's a little easier so if aunt eat n is not equal blanket be six now you could blink then what I want to do then what I want to do is I want to just basically say e ten minus e six right its case are no blank otherwise what otherwise what I want to do another one I want to make sure if another and and expected return on date does not equal empty and what else and also again rent out date does not equal NP if those two does not equal empty if those two are okay in that case then I want to do our return on date - or rent out date otherwise blank right otherwise if case one of those is blank so let's take a look at that and Neri we just added an additional prints so it's too great what if focus are expected returned on date is going to be but what if we come back and we return it on the ninth then I want this to go to three you see how that works so basically when this is empty it's gonna assume it that's gonna be on two days but what if this is empty if they're both empty that I wanted to blank that's exactly what I want and then I'm just put in something like actually let's let's write some code let's write add to here what I want to do is let's say it's on one day don't want to make this actually one because if we're renting an out on the same day I do want to add one to this so let's just do that plus one because generally in rental if you rent it out for one day from the same day it's gonna be considered one so let's add one to both of those formulas here both those I'm going to add one because generally both the day you rent it on and the day return on is considered one so in this case if we rent it out on the same day cuz shouldn't be zero should be at least one okay great so we have that but what about the days equals on all right eagles is this is less than 2 then what I want day otherwise put in days there we go now I have two so one day or if we can change this to two days perfect okay and if it changes this three days four days whatever okay great so now what I want the duration to be always on this so it equals duration that's what I want and of course we're gonna use f4 because I want the absolute when I drag it down so now it's going to be four so now but I only want the duration to show up if we have a daily rate otherwise I don't want to chump equals if then I'm gonna drag this this daily rate does not equal empty it does not equal empty then what I want to do then I want to show g10 otherwise empty so we understand so that we were only showing the duration for the rows that have a value so right click copy and then I paste this all the way down paste and paste formulas nice okay and then this one we want to do this one as well this one equals I want to make sure this one I had a formula equals there's two conditions in this if there's a daily rate and a duration then in that case I'm going to show evils if and two conditions daily rate does not equal empty and the duration does not equal empty and that would be H thirteen H thirteen does not equal and E in that case what I want to do that case I want to do G 13 x HH 13 the rate daily rate times the duration times duration H 13 perfect otherwise if those conditions are not meant to leave it blank okay great so now we have four times two now I'm gonna copy this formula down I'm gonna paste it all the way down paste formula okay great so our form is working but now what I want to do is I also want to update B 13 based on the selected row so let's write some code so as we select a row I want B 7 to change so let's go back into the code and this back into the selection change right here and what I want to do and I want to write some good if not the user makes it then what I want to do is I want to show that row they make a selection change to what is this selection change in this case it's going to be anywhere from d13 all the way through i 26 so we can write some code d 13 through i 26 then what i want to do well the first thing i want to do is i want to make sure that b7 is updated range b7 dot value equals target bro okay so let's select on different rows here now we got now alright so now we've got it now we understand that we're selecting on different rows so let's select on this and let's load this and let's try another one we got that alright so now our loading our duration is automatically let's enter this so it looks a little bit better and now we've got our totals and our totals are already updating perfect it's looking really really good what i want to do now i want to save this order i want to make sure everything is saved exactly 1 and i also want to load the picture so let's load the picture and let's continue with the load and load the picture in because i think we want to do that so we're gonna continue we have the work order loading but i still when we add a specific equipment i want to add the picture of that and display that so it looks really nice so how do we do that well we know that the picture path we're gonna define it where do we know it we know we know the equipment row we know what row is but now all we need to do is get the picture path and it's gonna locate it in ease so let's do that right now let's but we can write a different macro Kazak what i want to write a different macro i want to write a different macro because i want this picture to load in a few different ways one we're adding a new it and one when we select on it so for example if i select if i select I want that picture to load here on the right side if I add a new item I also want the picture to load so in those two instances I want the picture loaded so I'm gonna write a separate macro for that so let's go ahead and write that right now and then doos I'm gonna add that macro to right here so we can do that here so let's write in sub equipment equipment load pick okay so again dimension the we can actually copy this because it's gonna be pretty much we don't need to pitch a path here I don't know we need it actually it's copy this and I'm bringing it down here and then I'm gonna get rid of the pitch of that we don't need it here we're gonna use it down here though so we do need it down here so that's important alright so let's get into that with sheet one always going to focus on sheet one for the most part for this training and then I want to do I want to remove any picture first of all because if we're loading it we could have an old picture there so the first thing we want to do is remove any picture but if the picture doesn't exist it could create an error so the best thing to do is start out with on-air resume next and then dot shapes because we're already focused on sheet 1 I'm gonna call it the equipment pick and then dot the leaf so if there's any existing equipment picture from any other equipment want to delete it first and then on air go to 0 so that's gonna go so that way it'll end up that would just delete the picture if it exists so that's a good way to start all right now that we've deleted any picture now we can do want to make sure that of course we want to again we want to make sure that b7 does have a selector so I'm going to copy this here since I want to redefine the equipment I'm going to actually copy all of this here and bring it down here we're gonna do the same things again I want to define all that equipment row so we've got that just quick easier so now what I want to do is I want to define the picture path so the picture path is where we know it's on sheet equals sheet 2 dot range e in the equipment row E and the equipment row dot value and that's the picture path picture pal so we have the picture path to find out but we do need to make sure that it actually is going to lead to the correct path right because it could be an old it could be from another computer could be issues if there's not a specific and proper path so let's write some additional code so on-air resume next I want to check I want to check that picture path if we can do that with directory if directory of the pic path and then VB directory equals every good use does not equal that's pretty good does not equal does not equal empty then then what then we know the picture path exists and if then we know it exists so picture path existence so now we know it exists now we can write some code to display that picture so with dot pictures dot insert and what are we inserting pics your path gonna int path okay so we're gonna insert that picture we want to insert it but what do I want to do with it then once it's inserted I want to define it so with dot shape range shape range that's the picture itself that we're focused on I want to do a few things I'm gonna lock the aspect range lock aspect ratio because I want to show up equals MSO true and what else I want to set the height dot height equals about 150 right so I want to make sure we're probably about 150 and then I want to set in a specific name that name is very important so we know it's always gonna have the same name dot name is equal to again equipment path equipment path equipment and I want to set a name make sure we have a specific name equipment picture that's the same name that we delete up there it's always gonna be the same name so we're gonna set that name okay great so now that we're done with that we can move on okay so we're done with the patience so now we can refer to it by name so we can do something like with dot shapes and then we know the shape name equipment because we've already named an equipment pig now I want to display it right and I want to display it in a specific location so dot left what I want to display it I want to display it right about here right in j13 so let's write some code to do that dot left equals sheet one we have to specify the sheet again because we're on shape so that's really remember one with shape so it was needed specified again shapes range j13 dot left it want to do the same thing for top so we can just copy that again to make it a little bit quicker and then dot top equals sheet ones you through deduct top okay so good now it's gonna be the top left but we want to bring it down and bring it a little bit to the right if I just left to right there and be hugging this border right here I want to bring it down a little bit and I want to bring it to the right so we can use increment for that so dot increment left I want to move to the right so it's a positive so in this case dr inch from the left would be probably about five and then dot increment top which is down here i want to move it again i probably down a little bit maybe about five and the last thing i want to just make it visible died visible equals and it's so true okay perfect there we go and then i'm just gonna write here let's take a look i think we're good to go and if let's test out the code fix any bugs that we might have and then we can move on so what i want to do is i want to load this but i also want to run this macro right we're adding an equipment and we select on the line so i want to load the picture when we select so let's copy this and bring it the order should remember what we're doing is we're adding the target row remember if we select inside of range i want to also add the patient when we select on something so i'm gonna write that so not only do we want to put the row i want to put the picture there too it'll load that so let's take a look and fix any issues that we might have variable not to find equipment i gotta fix the spelling on that okay continue off the code alright looks good here perfect so now we have the picture right where we want it we could probably move it over to the right a little bit this looks looks a little bit to the left so let's move it over to the right a little bit to do that just add left let's make that fifteen now now it's kind of more centered i like that a little bit better okay good so it works when we select but what about when we add a new item let's type let's fix this debug now we want to make sure the equipment of row see we don't we can't add an equipment picture unless there's no value so let's write that code there so let's add some caveat here so let's go back into the order sheet remember we can't load this picture unless there's actually a value in C right C must have a values so want to make sure if range C and the target dot Rho dot value does not equal blank right we can only add then load the picture right we can't do it if there C doesn't contain a value so we can do that right here so now when we load line doesn't work it only one C contains a value so I like that much better okay so let's save our work it's always important and adding a new one make sure it's working okay portable generator that doesn't look like a portable generator to me forklift okay that looks good light tower that looks good okay perfect all right everything looks good except this is not the right picture but that's okay don't tell anybody just don't tell anybody okay all right the boom lift everything else looks really good so now we've got our information now what I want to do is I really want to start saving this that when I click Save I want all this information to to display here on the orders in fact we can remove these tempers we want our new order to be one so we want this to be 1 and then of course our next one so I want to save this information here and I want to save the items the order items here in this sheet so let's write so we could do that it's gonna call it save update we're gonna use the same Mac or whether we're updating a brand new order whether we're updating an existing order or we're saving a new order so let's write some code on that now okay so back into the VBA editor we go we're gonna create a brand new module so we're gonna right click anywhere here insert module and I'll give it a module name always want to name our module so we can differentiate between we know what's inside let's just call it order to save update connects okay once it's name we can close this properties we don't need that anymore and then let's go ahead and write our first macro for saving sub order again this is gonna be both for save and update so save update that's good enough for a macro name and we're gonna dimension some variables here at dimension no I want to know the order row so that's very important as long I also want to know the order column we're gonna use data mapping on that and I'll show you what that is ordered column as long and I want to know the last item row last item row if we're gonna be adding items why do we need that and why is that important the last item row all of our items right all these items are gonna be saved in a different table what tables that's gonna be called order items so if it's a new item I need to know what's the last row and then I'm gonna add more rows so that's very important if it's an existing item we'll just update the existing item in fact let's go ahead and do the data mapping right now let's take a look at the order list I wanna party I've already dated mapped it but I'm gonna delete it because I want to show you I'll just show you it's easier since this video is long enough what we're gonna do is we're gonna take a screenshot of this and I'm gonna show you exactly how I'm gonna taking a screenshot using my screen software it's already updated because from a previous so one of you guys I'm going to copy this for my Snagit software and I'm gonna paste it right back into the application just temporarily but I'm gonna paste it and right here this is gonna help us map the data it's already been mapped for us because I did it this previously so it can make it a little bit quicker so the idea is what I want to do is order number I need to know what cell that is if we look it's g4 I need to know what customer did that is if we look at the customer here on the screenshot look at its efore order date right it's gonna be located right here it's in g6 so that's a data mapping so what I'm gonna do is I'm gonna go through each of these columns each of these cells starting with one and going all the way to what we'll call them equals column I want to know what's the last column to go to when we're saving it eight column eight so great so we're gonna go from 1 through 8 and we're gonna take all this information based on this cell and put it in the row so we know the room we know the cell so that's data mapping it helps us map data from this form and bring it into this database with just a few lines of code alright now that we use I'm gonna go to delete this screenshot but that's gonna help so when you want to create your data mapping save the first row and make sure you're mapping every like the expected return date on EI it must be the expected return date e8 okay it's always mapped and that's gonna really help us write some code so I'll show you in the code how that's so much easier okay so let's go into it so we've got the last item bro as long also I've got a few more so let's go dimension the item database we're all I need to know what row we're focused on the item as long because we're gonna go through the rows and update those item row I need to know what item row why do we need to know the Admiral I need to know house we're going through these items we're going to be saving all these items I need to know what item rows of 13 14 15 we're gonna go through all these rows and I also need to know the last item row so that's really important as we run through them so let's go ahead and put that in and then we want to sum want to know the equipment row equipment row as long okay so now we've got all those dimensions now we're gonna focus on with sheet 1 as we will okay and whatever I wanna do is first I want to make sure that our we put some required fields we can't save this at least let's put a few required fields I'm gonna make efore we gotta have a customer and we definitely need to have G 4 those are the minimum probably gonna need more than that but for our purposes we'll keep it simple efore and G for those cannot be blank so let's write some code to make sure if dot range e4 dot value equals empty or dot range g4 equals empty then what then let the user know message box please fill in the required fields and then you can just put some more text in there that's okay exit sub that's a key for our purpose at least they can't move on without at least entering those two required fields order date order numbers should be automated generally but we'll keep that in mind okay next up we're ready to continue next up we want to make sure we need to differentially to know is it's a new order or is an existing order because we can you can use the same button the same macro for both existing and new order so you know what I don't like the Bulldog let's just format that I'm not loving that because hard it looks a little bit blurry if it's bold so let's just highlight those and then change those out to bold okay looks a little bit better okay so it looks more clear now that we can see so we want to know is this an existing or new records because I don't know so we used that based on whatever be based on whatever b3 is b3 is gonna tell us if it's a new order or not in this case this is our first time so we're gonna set that to true our first order is true so it's a new order so we need to know that because why do I need to know that because if it's an existing order we're gonna update update the existing row if it's a new order we're gonna add a new row so we need to know that based on the order row so we can continue on with the code but first we need to differentiate that so if dot range b4 dot value equals actually we can use before we get we have two options here we if the order row remember the order row is gonna be empty because it's not found so we can use beef or I guess as empty or we can use B through is true both would work either one will use B for it just in case so if B for is empty it also means it's a new order two different ways before definitely equals empty then it's a new order then new order okay and if and then we'll add an else here too if it's an existing order else existing order okay so what if it's a new order so if it's a new order we need to get the order row so the first thing you wanna do is order row is gonna be equal to sheet 4 remember sheet 4 is our order list here so sheet 4 dot range a and then just going to use a highroad 99.5 dot row that's gave us our last row the value but I want to add plus the one it's gonna give us our first available row okay so now that we have our first available row we're good to go but what if it's existing well if it's existing our order rows really in b4 right before it contracts if it's empty it's gonna be new if it's existing so our order row is equal to before order bro right okay good so for example just so we know we're on the same page so what if I put what if we have an order in here in our orders one that's gonna tell us that order one is in row before so we would know that it's an order rows automatically change to four you see how that is because of our formula but right now we don't have any order so I'm going to delete that and make sure that we created a new order so that's how we can use beef or if it's blankets a new order if not hopefully I've made myself clear on that now we're ready to go now what I want to do is I want to basically take all the data in this form all of that here and pretty much bring it right into this here and we can use our data mapping for this what I'm gonna do is I'm gonna run a loop from column one all the way to call them eight and basically take whatever is in sheet 1 G 4 and put it here take whatever is in sheet 1 e 4 and put it here and so on and so forth throughout so we can use that with a loop so we can add this loop now for border column equals 1 to 8 and let's close our look next order column make sure we close and open and same that prevents bugs so what are we gonna do sheep for that's orders dot cells why were using dot cells because both the row and the column are dynamic and they're variables so we want to use cells in this case order row we know the order we've defined it whether it's new or existing and then the order column that's going to be our loop order call dot value equals what is it equal the equals whatever's in sheet 1 so dot range right we're already on sheet 1 but what is this cell I need to know the cell what is this cell will the cell where's it located that cell is located right here or right here or right here or right here always in Row 1 but it's the collagen differentiating so let's do the road the cell is actually in sheet 4 so the rosen sheet 4 dot cells where is it it's in Row 1 and then it's in the comb order column that's what we're gonna find that cell so we know all right and that's data mapping that's all we need to do so we just need to add in dot value here and we have it to bring in order details to order list that's gonna bring it all in just with the three lines of code so we've taken eight lines of code and dropped it down to four lines I could if you have a large database you're gonna take 20 to 30 lines of code and bring it down to three lines of code just with a simple data mapping just by mapping it out all right so now that we have that what we want to do is I want to add the update so we've already taken care of we're just with the code we just added all the information here and we brought it in so what else do I want to do now what I want to do is I want to take all the information here and I want to bring it in to our order items list but what's important is I need to know whether it's an existing existing item like if I if since we're using this button to both save and update I need to know if these items are existing if they've already been added on this order and to do that what I'm gonna do is I'm gonna store the row number in column K what does that row number if we look in the order I'm going to store Row 3 Row 4 Row 5 I want to put that if it's existing if it's saved already I'm gonna put that in here so we can use that if K is blank right if kids blank that means this item has not been added here so we should add it but if it's existing if the existing used this row so use the row that's here or use a new row so we can just use an if-then statement to determine so first we're gonna write some notes add items to item list called ordered item lists so we know that's been previously saved so though first of all I need to know the last item row we're gonna loop through all the items I'm gonna look through all the EM so I need to know the last row in this case it's 18 but we're gonna start out with D 26 so let's do that so last item row equals dot range D 26 and then dot and X love dot and Excel up x.x a lot it's gonna get us the last dot row let's get us the last item ropes we need to look through those items starting in row 13 and going all the way to the last item row starting in row 13 and going all the way the last in this case it's 18 so let's do that let's continue on and now what we have here is the last let's bring this back up all right so let's continue on so now we're ready for our loop for the item row we've already defined it up equals 13 to last item row and then it close our loop next item row what are we want to do in this the first thing I want to check wanna run check is that existing or is it new we can do that with this one so the first thing but before I do that I actually want to update the status remember if we want to check the status I want to update the status they need to know if it's rented or available that's very important so if this is if this contains a value if e 10 contains a value that means that everything in here is available it's been returned it's all been returned so I want to make sure it shows available but what if this is empty if e 10 is empty that means it's still rented right so I want to make sure we update that so let's do that now so we can do that with this if range e 10 dot value does not equal empty does not equal empty then what then what I want to do is I want to update everything sheet two back on sheet 2 dot range C and the equipment row and the equipment row dot value equals available okay so here's let me just show you what we're doing on that assuming that this has been returned everything's been returned what I need to do is I need to find the equipment row in this case it's C 13 and I want to make sure that we update it and showing any in the equipment list changing the status to available because it's been returned so we can do that with just this line of code so he says if e 10 does not equal empty that means it's been returned update sheet 2 the equipment ro has now been empty so we do need to actually I got a define it wasn't a real almost forgot that equipment row of course equals top range see and right see our equipment rows see in the item row that's the equipment room because we need to know what row equipment row just so I'm gonna go over with you again just so I don't confuse you our equipment rows here right so if I know that it's been returned I'm gonna go into row six of our equipment I'm gonna go into row six and update this to available but what if it's not returned if it's not returned I want to update this to rent it so let's write that part of the code right now available else then okay right if then then available else when that it's not rented then in that case I want to make it rent it so I'm gonna take this else and paste it in here and change this to rent it okay so it's either available or rented based on whether it's been returned or not rented okay so we've got that line of code we're updating that let's just take a look at that if e 10 does not equal NP sheet 2 equals available else she'd to see an equipment road equals a rental okay very good we got that we can shrink this up here something give you more space to look alright so now we've got that done so we understand that it's gonna be rented or available so we can continue on with our code if again as if dot range pay and the item row equals empty then it's a new row emptied n new item row why is that let's go over that again again and if close our loops make sure we put an else cuz we're gonna need both else I'll go over that with you again just so we know where we're page we're looking here if this is empty here k we're gonna move it over k this is where I'm gonna put it we can hide that so it's gonna be item if it's empty we need to add a brand-new item row if it's existing then we know what row so we can do that with this line of code so if it's if the item rows new then what are we gonna do then I want to assign an item database row then the item database roads equal to they are located in sheet by sheet 5s where items are sheet v dot rains a and then we'll use in 99999 dot and Excel app dot Rho plus one plus one first available items database broke okay that's the first one so we've got our items row so we know that and if we're ready to go so if it's just a brand new and we need to add some more information here right if it's new or items what I want to do I want to add in the order name and I want to add in the row everything else we can add in automatically because it could change but the order ID won't change the row won't change so I want to add those in only for new items the order ID where's the order ID is gonna come from right here g4 and I also want to add in the row what does the rows just a formula so I can keep track of the road it's gonna really help us moving forward so let's do that right now let's add in that information sheet v dot range dot rate dot range a and the item database database row dot value equals what's it going to equal its can equal g4 which is the order ID dot range g4 that's the order ID I also want to add in the formula to so what is that that will be an e sheet v dot range e and the item database Rho dot value equals the mana formula quotation equals and then Rho open and close and close parentheses okay that's going to get us or row so we do those just for that and I also want to add any item database wrote in K now it's an existing so we added in dot range K and the item row I've value equals what is it the item database row equals the item database row now we've added in item database row what's that gonna do it's gonna add that row so if we're adding information in so we're adding the brand new information here in the outer um let's say we're adding information row five writing it the order ID we're adding the row but I also want to take five and I want to put it right here and can't because I want to know that it's five for the future so that's gonna really help us I want to put that five right here that's where the item database row gets placed right here so we know what row its existing on okay now we can continue on let's fix this okay and the item and okay so we got carriage so now we go so now we've got K covered but what if it's an existing run well if it in this existing row then what I want to do then the item row simply whatever's in K already the item row is already here okay so we can define that so then in that case the item database row is equal to what's in K existing item that row so now we've defined it and now we've added it new and now that we know the road we can add in the remaining information so sheet five that range B what's gonna go in BB is gonna go in the equipment name B and the item database row dot value what's gonna go there equals whatever's in d I'll show that to you say doc range D and the item row dot value and that's the item name and all we're doing basically there is we're whatever is basically in here in the item name in D we're gonna take it and we're going to put it we're gonna take it and we're gonna put it in right here in equipment B and then we're gonna do description and rate so I'm gonna do that right now and all we need to do is just simply copy and paste this and we can do this for the next three so we'll do this with C and D C and D and what are those going to be equal to those are going to be equal to basically the equipment description and the rate so of course that's going to go into E and gee and that's the description and then the rate we have the right here so blow out all that information in so good now we've got that now we've got the next item row and also I also want to update all the values here I want to update these all the two rented or all two available here as well so let's do that with this line of code and we can just copy this we have it already here but we'll just change this then I'm gonna copy this if in this case if equals then what I want to do I want to use it so then dot range F starting at 13 through F and the last item row dot value so if it's not empty that means it's available right so we can change it then equals available else what else it's printed okay so if it's empty then it's rented so then in that case just copy this and we can actually copy paste and just change it to rent it so if it's if it's not not equal empty its rented so let's just change it here to rent it in that case it is empty and that's rented so let's just go over it so all we're doing here is basically if this contains a value of e 10 then I want to make sure to show these all's available if it's empty I want to show all of these as rented so good so we've got that going and we've updated that I'm gonna update that I've also updated in the database all right so what else the way we want to do I want to make sure that now that we've set this up I want to make sure we set b3 to the new order it's no longer a new order it's an existing because we've just saved us we want to make sure that new order goes to fall so b3 must be set to false so dot range B 3 dot value equals false set new order to false and also want to update our shapes right because I want to make sure that our shapes are take a look at our shapes here I want to make sure our new order add new button is displayed and our cancel new order is hidden so let's do that right now dot shapes cancel new button dot dot visible not visible equals false right because we don't want we want to hide to cancel new no longer than you dot shapes add new button is now visible because it's no longer new just in case dot visible equals MSO true so we want to show and hide those accordingly all right good let's test it out let's check for any bugs now what we're going to do is I'm gonna save the code just in case you meet any errors then I'm going to take this save and I'm gonna take the group here I'm gonna sign a macro to it so let's go a sign macro and then we'll go down to order save update and click OK there's a lot of macros but those are for the calendar so now when we click let's save it again just in case so now look like save an update let's debug it and see the equipment row equals see in that range item row okay actually this should be up we got the wrong run it exhale up of course I'll fix that next to me exhale up because we can't all right so let's reset that and then run it again okay that looks good alright so now let's take a look we have our order list we have our information here we didn't put in a created by but that looks good we didn't put in an order date our order items we have our items update that that looks pretty good there I've got our information here the rate didn't go ahead we got to update the rate if there is one let's update that and then soon as we get the update rate so that's the only thing that did missed us so let's take a look at that our order a rate is gonna come from G and make sure our rate goes in to D so let's take a look at the code here and take a look at that our rate goes into deeds should be G okay a rate comes from G alright good so our rate comes from G alright so now I think we're good to go let's update that save an update and then take a look at our order items okay now we have our rates in there got the right column there perfect look seeing looking really good so now we've got new order now all we did knew that new order and save an update and then we're gonna be done so we've done a lot of work great so let's see and we've got our comps here why do we do this now we have our so now what if we add a new item so now if I add a new item like excavator and I save an update notice this one doesn't have a row let's left justify that so you can see that notice just no row on that that's going to tell Excel to add it to a brand new row so notice it's gonna add up to row nine here so as soon as we save and update that 9s gonna get placed here when we go into orders now it's here 9 now we knit order ok but I want to load this order so how do I load the order what I want to do is I want to take all of the order items this is gonna be more than one order idea it's gonna be maybe one two or three or four as many as you want and I want to load them but to do that I want to run it through an advanced filter based on a single order based on an order ID only wanna load order number one only one or load order number two so how do we do that we'll use an advanced filter so I'm gonna take all this data I'm gonna run through a filter based on some criteria based on the order number and then I'm gonna put the results right here then what I want to do is I want to take all the results would be just one order like order number one or whatever so we need a criteria and that criteria is gonna be here but how do we know what order so I'm gonna do equals whatever we enter right here equals g4 so that means whatever order we're looking for is only those in fact we only have one order right now but if we created if we were to create a new order which we haven't written the macro yet it would allow us to create a new worker we're gonna load that but let's do that let's create a new work order here and then what we're going to do is we're going to load and load the previous work order so let's write some macros at least for the new order now so we can get that done so we have orders save order load macros and let's write in order let's create a new module insert module and we'll call this order to some general order max and we'll call this here order macros and what I'll do is I'm gonna create call this we're going to call this sub order new and what do I want basically what I want to do is I want to clear out all the information I want to delete any pictures and I want to set it up for a brand new order so we can do that really easily with sheet one and then I'm gonna make sure we remove any pictures that might be here and then I'm going to remove any pictures so on every zoom next and then on air go to zero I'm gonna wrap that I want to delete the picture basically what we did before so so what we can do is then dot shapes equipment picture dot delete I want delete any fish as we're creating new work order move any existing picture and then on-air resume next that'll set us up okay on air go to zero and then on air go to zero that's gonna set us up so we can continue on with our code so the first thing I what I want to do is I want to set the new order to dot range b3 is gonna be true setup equals true set new order to true okay so let's move this over here so we can see it b3 is gonna be set to true bring this up here and down here b3 we're gonna set it true we want to show it to new order we also want to display certain buttons like cancel and you don't want to display that button so we can do that in a few logic code so the first thing we want is also want to clear out some content dot range what what which ones want to clear out b7 right there's no longer gonna be a selected row so I want to clear that out I also want to clear out all of the items here so let's say e 4 e 6 e 8 and E 10 clear those out order date we can default that and set the default and clear out the paint payments so let's clear out some of those cells so we can get ready for the next order be for e 6 e 8 and in the e10 clearing all those out I also want to make sure that G a which is the payments g 8 and also want to make sure i 6i6 clearing all those out i 6 making sure that we clear out payments of course and in the g6 is the order date okay but let's sit in some defaults and get it ready for the new order dot clear contents clear fields okay that's at least the fields above so I want to set the next order ID we know the next order is going to be here based on that so we want to take whatever values here I'm going to put it into g4 so we can do that just with this line of code dot range g4 dot value equals dot range b5 that's going to set us up for the next sort of b5 next order ID okay next up what do we have not about the next order ID we're gonna get ready we want to add a current let's add in the current date dot range g6 dot value equals now what is that gonna do I want to put the current date and possibly current time right here in to g6 getting in that ready for the next order so now we have that what else do I want to do I want to clear out the table remember I have some formulas in here so we need to be very careful I don't want a clear that's a formula I just want to clear out these the daily rate basically the item name all the way from d13 all the way through G 26 and not these not H and I because there's a formulas they don't want to clear out also on K so let's do that in the following lines of code dot range D 13 through G 26 and also K right K 13 through K 26 clearing those out because I'll just keep track of our rows so we want to clear those out dot clear contents clear table but not formulas okay we're gonna make sure we don't clear out those formulas all right next up but just set the buttons ready right dot shapes we have an app dot shapes we have an add new button new I tend I want to display that dot visible and I want to hide that dot visible equals and they're so false I'm gonna hide that hide and then dot shapes cancel me I want to make sure that by its visible cancel new button dot visible equals MSO true that one's show okay so we're gonna show the cancel button and hide the add new button cuz they just add and next up let's get ready dot range efore that's the customer dots like that's gonna select customer field okay so now we're gonna select customer field all right let's save our code and let's assign this macro we can always copy this macro and then we're gonna do is just sign that take the add new button click assign macro and paste then that code click OK now order new perfect looks good we got the new one we got the current date payments are cleared out make sure our formulas didn't get messed up they're hidden there our formulas are here good all right now so what I want to do now we're ready for a new order let's just add a new order in so we can add so we have more than one order add in an expected date and then let's just add in a little bit of information here okay and put enough just a few equipments nothing major I just want to save it create it by Fred and we don't need to returned on date and then what we're gonna do is we're gonna click Save and update both of these went to rent it that's what I want I want it to go to read it because there's no returned on date perfect let's look in our order list we have two order date it's longer field and now we have Fred good good good no return date right no payments yet that's right order items now we have two different orders we have one and two that's what I want everything looks good let's write justify this or left justified I should say the hole all right so that's good we don't need all right so good now we've got all the information it's loading in just the way we want it we're gonna save it and now what I want to do is I want to load this I want to write a macro that's gonna that when I enter number one here I want that I want that order to load automatically all right so let's do that let's do that let's write a macro that's gonna load it based on the change of g4 assuming assuming when we change this to 1 I want need to make sure one thing we need to make sure that there's an order oh look this changes from 1 to 2 and changes from 4 to 5 that's a long we need to make sure that we if we enter 10 this is gonna be blank because there is no order so we need to make sure that when they ventured that we need to make sure that b4 actually contains a value before we're gonna load it up so we can do that with just the line of code all right so let's add it in order we got order load order max we can put it on here we've got a Waterpik okay we can add it down here we've got load so let's call this load order sub order load okay and we're gonna load this order that's what I want to do it basically it's gonna be on change of one specific field so let's write the macro now we need to dimension some details on this dimension order row again we need to order out a row as long and also we need to order column I'm gonna do the data mapping against we're gonna loop through the columns order column as long result row this time we're gonna be using advanced filters so I need to know what the results row is as long and I also need to know the last item database row because we need to run an advanced filter so we need to know the last Road last item database item database row as long and I'll need to know the last results or the results you're gonna come in last results row as long okay and I think the item row is long and then item row why do we need that because we're gonna probably loop through the item rows here bring them all in we need to know that item row all right now that we've good to Benson what so basically what we're gonna happen is we're gonna run this advanced filter we're gonna get some results in here I need to know the last results row then we're gonna loop through all the results row here and bring all of that information back into here and we're all so of course you're gonna go through the columns here run 1 through 4 in fact we won't need the ID so we're gonna actually start a loop on to 2 through 8 because the ID is already there the user just put it in 2 through 8 and bring all this information whatever's in here and bring it and back into the right cells here back into what cells well back into this cell this cell this cell so we've already you did a mapping we can use data mapping both for saving and for loading it's an extremely convenient way so let's go on and see with sheet 1 we're gonna focus on that what are we doing with she one first thing we want to do it of course we got as I mentioned we got to make sure b4 contains a value we can't load an order if there's no row so if got range b4 dot value equals empty then message box please enter a correct order number all right so we've got that and then exit sub nothing we can do unless we have a row nerve exits up nothing can't continue on unless we actually have a row so now we can define and now we know order row equals what B force we can just copy and paste before we know that's the order row equals before order a pretty self-explanatory there ok so what next again I want to run our loop right remember so for border column just as we did that's gonna be in reverse just we didn't we're saving your column equals two through eight to a the only difference is we ran one through eight before but this time we don't need to bring over the order ID the user has just entered the order ID we don't need to bring it over it's already there so we're gonna so we don't need to start off from eight which is our we don't you start off in a which is our order we can start off in two so two through eight we're gonna run through all that so this one's going to start at two three and then close our loop next order column so what do I do now again dot range we're gonna focus on sheet 1 what is the cell well the cell is located in sheet 4 dot cells that's located in row 1 right one and what does the Klumps locator it's gonna be located in dynamical order column and dot value so that's gonna give us a range remember this right here is our cell the cell will change as it moves through the top column so it equals what where does it equal equal sheet for dot cells what's the row the row of course is our order row and a column is our order column dot value that's it that's all we have to do to bring it all the data at least for the top part and the rest of the code we can write according to that for the items so that's it it's really easy now let's write a note add in order item so we can make this a little bit bigger so we can see although we're not doing too much code but bring it up okay so now we're ready to add any order items so how do we do that well again we're going to we have our criteria we do need the last row why do I need the last row I'm gonna run an advanced filter here I want to determine the last row run an advanced filter based on this criteria or based on order ID one that means I only want to return values where we have a spit where we have a one in the order ID that's the only one I want to return and I want those results only items with order ID one two result to come here and we can use that with Vance filter but the first thing we need to do is determine the last row into a variable so we can do that with this line of code the last item database row equals sheet five outside of row dot range $8.99 just use a hind nine dot and exhale out dot Rudd's getting us our last row I also wanted we're gonna be looping through the items I also want to define our first item row order sheet here I want to define our order row of 13 because we're gonna go through all the Williams of all of them I want to define our item bro here and make sure that's set to 13 because we're going to be increasing it as we move through it so the starting one's gonna be 13 so let's set that also up so our item row its equal to 13 and that's our first item row ok now that we have those set we're ready to run our advanced filter sheet 5 is we're gonna run our advanced filter about range and what's it going to continue it's going to contain of course our first header row and that's going to be a 2 including our headers all the way through E and the last item database Rho E and the item database Rho dot advanced filter' I wanna run an advanced filter it's gonna copy I want to copy the results to another location but I want to set it criteria criteria range is getting equal again sheet v dot range what's what's it going to equal it's good let's take a little quick look at that so we know order items it's going to be including the header g2 through g3 and the results are going to go I - all the way to m2 so let's write that g2 through g3 okay next up I also want the copy to range copy copy to range and what is the range that we're copying to equals I'm gonna copy again sheet 5 the same thing what I just mentioned I to 3m to range I - through em - okay great dot and then I unique and we'll just go with equals false all right that's all I can let's just put that into - so you can see that here and put it on tour it's alright just take a quick look at that so we know where it the sheet 5a - three in the last item row we're gonna this is our main data I'm gonna run an advanced filter we're gonna copy that and we're going to be using criteria range equal to sheet 5g - through g3 are gonna copy that to sheet five I to 3m - and unique you goes false good alright now we run our advanced filter what I need to do is figure out what the last row is so the last results row we've defined raster result row equals to cheat v dot range I will use I because we know there's data in there I and then nine nine nine nine nine that's fine dot and X Allah rubs the last results row we also need a run check that's the misspelled ok last result row if the last result Row is less than 3 then go to no data or we could just exit the sub let's go to no did I like that better no data because why we don't want to exit there's a few more things that I want to do when we're loading it like I want to make sure let's go to it but no data ok and then what we'll do is we'll add some more code in below here like making sure the buttons are appearing right all right so continuing on now that we know that we have data what do we what do I mean by last results row is there less than 3 if the last is less to them because we have no data there's nothing to bring over so we want to check that just in case next up we're ready to bring all this information over and bring it into our order and we can do that with just a few lines of code right here for the results row equals 3 starting at 3 2 the last result row next result row all right good so now we've got that so now we're going to consider lips now we're gonna bring it in so I'm gonna bring in each line of code dot range D and the item row value equals what's it gonna equal sheet v dot range J and the results row dot value and that's the equipment name equipment name so I'm grading the name the description and the rate so we're gonna copy that and basically what that is is just again what we're doing D is gonna equal whatever is located right here into J and then all I need to do is bring in K and then over the description on the right so we can do that just by copy and pasting it so paste and paste okay so now we have that let's bring that over make sure everything is the same okay so d e and f is going to equal whatever's in J K and L and then there's one more thing I do need to do so of course this is gonna be a description and this is gonna be great and then there's one more thing I also want to bring in k over what do I want to do that K is very important because K is gonna tell us what row is it until we know that's an existing case we need to make an update so K root K is our row okay what's that gonna come from that K is simply what our located is in our it is an M from M is coming from my is that let's take a look at that Emma's our row so I want to bring in that and bring it over and put it right into K put it in right here that's very important alright so we can do that with this so it just changes to M and then it's gonna be our item all right now that we've done everything we're ready to go we've we've update that so what I'll now what I do is I want to increase the item row remember we set this item row 13 so we need to increase this by one item row equals item row plus one so we're gonna increase that row and next up we're ready to do that okay good now that we have that if I also want to update our rented and available again to what do I mean by that I want to update these are rented and available just to make sure to reset these based on this again just in case so we know that it's automatically set so we can do that on load again so we can do that if dock range again e 10 e10 dot value equals blank write equals empty then we know it hasn't been returned yet so then dot ranch what is it f thirteen through F and what and the item row and item row but it's not to item over because we added one here so probably have to go one under right because we kept adding an extra one - wand add value what does it can equal as empty it still equals if it's empty it's still rented right renting hasn't been returned yet rented else what else and if otherwise it's available otherwise let's just copy this paste it in here equals available all right if it's if it's if e 10 means it has a value in it right here returned on if it has a value that means it's gonna be rented it's available it's now available in so we can just basically change the status automatically to that so that's really important we want to do that alright so next up I just want to make sure that we're gonna set the new ordered false is no longer in new order because we've loaded in dot range b3 one was done today I know it's a long one b3 value equals false set new order to false what do I want to eat now the shapes shapes that we can copy those from up there we order we saved an update same thing these shapes here it's not an existing order so we can do that just paste them right in here so cancel new button right is gonna be false add new buttons gonna be true great now we're let's save our code and now what I want to do is I want to run this code on g4 change of g4 so let's do that let's add in some additional code but first we're gonna copy our load when do we want this to happen we want this to happen when g4 makes a change so let's take a look at that up in the order sheet and it's gonna be worksheet change if not intersection g4 is nothing or below the order g4 so now when we change g4 the order is going to load so let's type that in so now let's double click that into that the result row should be results I think it's results I have a salon to that or just change it up here just change it let's just change it right there okay let's take a look at that and if else if so just into this okay now we're good we got kind of alright that's got to have a new line let's continue on with the code one more bug lots of bugs that it last results where I can always get the variable index load a forgot the a there all right look good now we've loaded it in alright this is not quite a veil we've got to get that row right all right I think what we really want to do is we want to actually clear a table before I load it so when I load it now should be right okay all right let's update this JK this should be L okay let's run it again take a look at that all right this should be G let's take a look at that now we update that update the status all right that looks pretty good two more things we got to make sure that we're adding too many availables all right take a look at that into the code and let's see the last results are oh that's not right there should be AI RI our last results row or and if our results are coming in here I wonder the last results should be here I'm not a a is for our last data row we want to know the last data row that's important but that's only for our last database row so let's take a look at that now let's load that in and then we'll just type that in clear this out let's delete that for now and then load that in okay that looks right now everything is right and click a new order good please Center correct okay so new order we need to make sure that we have one little thing we want to add in when we're adding in our sheet before we load our order I want to make sure one thing if not I don't want to load an order and brains I want to make sure that we actually have a b4 dot value does not equal empty right then so let's make sure right before we need them and so that we want to do ants so there's two conditions - conditions we wanted to want to make sure that b4 we can't if we put in a row number here we want to make sure that b4 actually has a row even before we load it so when we load it you want to make sure it loads properly and we select picture perfect looks good all right two more macros - wrote and then we're going to be done delete order very good and save cancel of a new order all I wanna do is cancel new so let's write those two macros and then we are done all right awesome order macros let's just write one more sub order cancel and then order delete thanks for sticking with me on this super long training order delete some of them we'll get back to now but when you guys want me to create these from scratch they tend to be a lot longer but the views tell me you want to create a from scratch so I will do just as you asked because I know you love these so I want to make sure to give you always what you like okay so cancel new let's add this one we're gonna win make sure the only way we can cancel the new we can only get out of the new if there's existing orders so I want to make sure that a four actually contains a value because if there are no existing orders we can't go out of the new mode so to do that we need to make sure that a four on this sheet contains a value so we can write that code in right here if sheet four dot range a four dot value does not equal empty then we can do a few things what do I want to do well the first thing I want to do is sheet 1 dot range b3 that's our order B 3 dot value equals false we're gonna set that equals false I'm gonna set the new order to false set new order to false and the next thing I wanna do is I want to load in that sheet 1 dot R and again that's g-force where orders look g4 dot value equals what's going to equal that a4 value which is the order ID the first order ID so we're just gonna copy that and put that right in control C and paste that right in here that's the order ID order ID that's all we really have to do it's gonna load automatically so that's on the cancel and what about delete well the first thing I want to delete I want to make sure the user wants to do it so dim we need to order real first order row as long and next up I want to say if message give the user a warning message box are you sure you sure you want to delete this order and then VB yes no that's an option here VB yes or no and then delete a title delete let's bring this up so you can see it a little bit more on top of the screen delete order just call that that's the title of the message box of order and then good equals vb no then exit so if they say no just so nothing more to do assuming they said yes then we want to make sure that that there is actually a road order so we can set if sheet 1 range b4 that's our order up before dot value equals empty then exit sub there's no there's no road to delete there's nothing we can do we can now we can go assuming that there is a row then we could say that order rows equal to again let's put that into sheet 1b for value here D equals before value all right that's the order bro now we're ready to delete it sheet fours where orders are dot range order row and quotation : quotation and order Rho dot entire Rho dot delete that's gonna delete the entire uh delete entire row I also want to clear out the existing order and the best way to do is just to simply run the macro order new order new is gonna run the new macro that's good okay good let's save that and see what we've done here now let's assign those macros assign a macro here and we'll call it order delete here which is look at it right here and then I also want to sign this one assign macro order cancel right there okay good so let's try the cancel new perfect that brings up that works just good and let's try the load order number two and let's click delete the order are you sure you want to delete this order yes perfect now it's going to the order list order to is gone here now theoretically you should also delete these items - we're gonna have kind of time but theoretically you should probably delete those to run the advanced filter determine what rows they are on loop through these and then delete each row that's the proper way to do that but we don't we got a long time we're already what are we two hours nearly on this video so I think we're good okay so great we've gotten a lot to cover we've added new orders simply used to pop amazing pop-up calendar and I've shown you how to quickly create new rental orders and also add equipment listing those items listing those pictures and showing how we can select on different pictures and we also have added a lot of new features onto this we all show you how to add payments and save those payments how to update the order based on the return date update the status clicking Save and updates gonna update those we can also add new items simply by adding them and clicking save and update using the same macro for both save and new of course we're a new order we can clear it out canceling the new order and deleting orders we've covered a lot in this amazing equipment rental think for sticking with me those of you stuck with me for nearly two hours on this great training I hope you appreciate these don't forget to subscribe and we'll see you next week thanks so much [Music]
Info
Channel: Excel For Freelancers
Views: 37,518
Rating: undefined out of 5
Keywords: Excel Equipment Rental, Excel Equipment Rental Application, Rental Application, Excel Rental Software, Equipment Rental Software, Excel VBA, Equipment Rental Application, Rent Tools Application, Rental Application Excel, Excel Renting Softare, Excel Tool Rental, Tool Rental Application, Tool & Equipment Rental Software, Equipment & Tool Rental Software
Id: yddh4KJpjBY
Channel Id: undefined
Length: 112min 43sec (6763 seconds)
Published: Tue Mar 10 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.