One of the first things you're going to have to do for the grade manager project is to set up the spreadsheet such that it is set up for a new course, and is ready to accept the roster file. So, in this screencast, I'm going to kind of show you how you can create a new directory, and you can save the original starter file as a new file in that directory that the user selects. So in this screencast what we're going to do is the following. When we run this, and I'm just putting this button so I can show you what happens, the user can select a new folder. So, I'm just going to put in something like Charlie's New Folder. And then it's going to say, "please choose the directory where you'd like to place this new folder. A new folder named Charlie's New Folder will be created in this directory." So, the user will be able to navigate to where they want to put this folder. So, I'm just going to navigate to- I'm just going to put it in the Grade Manager, then it's going to say a new folder was created in this file path. And I click "OK". And then I can put a new name, and it's going to save this file, the current file, it's going to save as in that directory has a new file name. So, I'm just going say New file Name, and you need to omit the.xlsm because that's automatically going to be done. Then I click "OK" and it's going to confirm, "This file has been saved as 'New File Name.xlsm' in the folder 'Charlie's New Folder'". And the file name up here, you can't see it, but the file name is New File Name. So it's saved into that directory. If I go into that directory, this was the Grade Manager Directory, and it's created a new file folder, and it also saved this file as that New File Name. So, you're going to want to use this to initialize the first time that somebody runs the Grade Manager, you want to create a new directory and you want to save the starter file as a New File Name. That new file name is probably going to be something like "Grade Manager - Class Name" or Course Name. So, let me show you how we can do this in VBA code. So I've created a new sub, I'm calling this NewFolder(). It's also going to be saving this current file as a New File Name. I'm next going to dim three strings. One is going to be the NewFolderName, that's going to be the new directory that the user can define. The second one is going to be folder, which is going to be the folder that the user is going to place the new directory in. So folder is basically going to be the existing directory. NewFolderName is going to be the new folder. And then we have this NewFileName which is going to be what file you want to save the current file as in the new folder, which is placed in the existing folder. The next step is to obtain in an input box the name of the new folder. So, we can assign that to the string NewFolderName. And in my example, I just use Charlie's New Folder. In a message box, I am saying just kind of preempting the next step, "Please choose the directory where you'd like to place the new folder", "A new folder named", and I've got some funky concatenation here. So just be sure to look at that and try to understand what I'm doing here. But it's just kind of telling them that the New Folder Name is going to be placed in a new directory. So, the next thing that the user is going to do is to decide where the existing directory is. So here's sort of some advanced techniques here. But you can just kind of copy and paste this. By the way, I will post this file that I'm making, I'm going to post this is going to be called NewFolder.xlsm. And you can open that up and use this code and adapt it for your project. So, I've got this With Application.FileDialog, this FileDialogFolderPicker, we are not going AllowMultiSelect. So the user can't select multidirectories. And then we're going to show this selector, this picker, and then we're assigning folder as a string to the selected item. So, this basically allows the user to select the preexisting directory, and that's going to be assigned to this variable folder. The next step is we're going to use this make MkDir statement. So, we are going to make a new folder in this preexisting folder. So, the fjolder here was selected above and that's the preexisting folder. We're going to concatenate that with this "/" with the NewFolderName. So we're making a new directory inside of the old folder, and that new directory is the NewFolderName which the user selected up here. So at this point, the user has entered a name of the new folder. They've also selected the preexisting directory, and they were going to make a new folder inside that preexisting directory. The last thing we need to do is to save the current file as a new file name in this new directory inside of the old directory. Before we do that, it's a good idea just to tell the user a new folder has been created in that preexisting folder. Then we allow the user to enter the new file name in an input box, and I think I named this something like a New File Name. So, whatever they want to name it, it's going to save the current file as that new name inside the new folder that was placed in the preexisting directory. And then I obtain this just from recording a quick macro. I don't remember all the code for a lot of the stuff. So, I just recorded a macro, saved my file as something else, stop the recorder and then I saw what the recorder wrote in that modularized copied and pasted that, and adapted it a little bit. So, this is just saving the file name. We are going to place that, the new file name that the user just defined up here, placed in that new folder inside the preexisting directory. And finally, we're just going to confirm, "this file has been saved as the NewFileName", and I put that in single quotations here. So, make sure you understand the concatenation that I did, "in the folder NewFolderName". So, this basically does everything we need to do. There's one other thing, and some of these boxes, there's a cancel, so in this dialogue picker there's a cancel button. So, I just to kind of protect against that, some error handling. I'm just going to say, "On Error Goto here". So, I'm just putting here and then at the very bottom, I'm just going to put "Here". So if any error happens, we basically just stop and nothing happens. So, this is the code and this is exactly what the code was when I ran the initial scenario, when I ran the server teen at the beginning of this screencast. Thanks for watching and good luck.