Home > Templates > Meal Planner Excel Weekly Meal PlannerGet this free Excel weekly meal planner, based on the Excel workbook that I use for my menu plans every week. Enter your favourite meals and their main ingredients, or search for new recipes. Click button to create weekly grocery shopping list, and print the weekly calendar to put on your fridge door, for Sunday to Saturday. |
Excel Meal Planner IntroTo help you make the job of meal planning easier, you can use this Excel weekly meal planner template. Enter your favourite meals, list their basic ingredients, and click a button to create a shopping list for a week's meals. To see a quick overview of how the Excel Weekly Meal Planner works, watch this short video. Thanks to Jimmy Pena, who created the Recipe Selector tool in the meal planner. Note: For special occasions, see my Excel holiday dinner planner. |
Select RecipesThe first step is to choose some recipes for your weekly meals. There are a few recipes in the sample file, to get you started. To find more recipes, you can look through your collection of cookbooks, or go to the Recipes sheet in the Excel Weekly Meal Planner. On the Recipes sheet, enter an ingredient name in cell A2, then click the Get Recipes button. A macro runs, and pulls a list of recipes for the selected ingredient. To see one of the recipes, click its link. Then, if you like the recipe, print a copy, to refer to later.
|
Meal Planner RecipesYou can also search the recipes that are already entered on the Meal_Ingredients sheet. For example, you might want to use a specific ingredient from your pantry or fridge, before its "Best Before" date.
|
Ingredient Storage LocationsOn the Admin_Lists sheet, there's a small table with locations where you might store your ingredients at home. You can edit this list, and add new locations, or delete storage locations that you don't need. Ingredient InventoryOn the Recipe_Ingred sheet, there are location columns at the left side of the Ingredients table. For any ingredient that you want to track:
In the screen shot below, ground beef is in the fridge freezer, and in the basement freezer, for a total of 3 pounds. |
Meal Planner with InventoryIf you download the Basic Meal Planner with Inventory, there are additional columns in the Meal_Ingredients table
Those columns have formulas that calculate the amounts for the shopping list. You can ignore those columns and formulas -- they're just used for the shopping list. NOTE: The On Hand column might not show the total amount that you have on hand. The formula splits the total amount by the number of times that ingredient in used in the current week's menu. For example, we have 3 pounds of ground beef on hand, and it's used 3 times this week, so each row shows 1 pound in the On Hand column (3 divided by 3 = 1) |
Select the Weekly MealsAfter you have entered all the ingredients, you're ready to start the weekly meal planning.
Other Items and NotesIf there are other items to add to the shopping list, enter those in the "Other" row.
|
Create the Weekly Shopping ListAfter you select each day's meals, click the Shopping List button at the top of the WeekPlan sheet. Meal Planner with InventoryIf you download the Basic Meal Planner with Inventory, there are two filters at the top of the pivot table - Meal Item, and Need.
There are extra columns in the pivot table too:
|
Print the Shopping ListAfter the shopping list has been created, the items are summarized by category, in an Excel Pivot Table. You can print the list, add any other grocery items that you need, and then head to the grocery store. |
Weekly Meal Planner MacrosNOTE: You don't need to read this section, unless you want to know how the macros work in the weekly meal planner. Shopping List ButtonWhen you click the Shopping List button, it runs a macro, which uses an advanced filter to copy all the ingredients for the selected meals to the ShoppingList sheet, and sorts the printable meal plan shopping list by ingredient name. Here's how the advanced filter works:
|
Macro CodeShown below is the code that is in the weekly meal planner sample file.
CreateShoppingList MacroIn the sample file, you'll find this code on a regular code module. It creates the shopping list, based on the selected meals. Sub CreateShoppingList() Dim wsShop As Worksheet Dim wsIngred As Worksheet Dim wsList As Worksheet Dim wsItems As Worksheet Dim wsPrint As Worksheet Set wsShop = Sheets("ShoppingList") Set wsIngred = Sheets("Meal_Ingredients") Set wsItems = Sheets("Meal_Items") Set wsPrint = Sheets("ShopListPrint") wsIngred.Columns("B:J").AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=wsItems.Range("CritShop"), _ CopyToRange:=wsShop.Range("ExtShop"), _ Unique:=False With wsShop .Cells(1, 2).CurrentRegion.Sort _ Key1:=.Range("C1"), _ Order1:=xlAscending, _ Header:=xlYes End With With wsPrint .PivotTables(1).PivotCache.Refresh .Activate End With End Sub |
Recipes Worksheet CodeIn the sample file, this code is on the Recipes sheet code module (right-click the Recipes sheet tab, click View Code, and view the code there) Option Explicit Private Sub CommandButton1_Click() Call GetRecipes End Sub '------------------------------ Sub GetRecipes() On Error GoTo ErrorHandler Const RangeToImport As String = "$A$10" ' delete existing xml map (if any) If ActiveWorkbook.XmlMaps.Count > 0 Then ActiveWorkbook.XmlMaps.Item(1).Delete End If ' clear out range to prep for new import Range(RangeToImport).CurrentRegion.Cells.Clear ' import web XML to destination range ActiveWorkbook.XmlImport URL:= _ "https://www.recipepuppy.com/api/?q=" _ & URLEncode(Range("SelItem").Value) _ & "&format=xml", ImportMap:=Nothing, _ overwrite:=True, Destination:=Range(RangeToImport) ProgramExit: Exit Sub ErrorHandler: MsgBox Err.Number & " - " & Err.Description Resume ProgramExit End Sub '------------------------------ Public Function URLEncode(EncodeStr As String) As String ' https://www.freevbcode.com/ShowCode.Asp?ID=5137 Dim i As Integer Dim erg As String erg = EncodeStr ' *** First replace '%' chr erg = Replace(erg, "%", Chr(1)) ' *** then '+' chr erg = Replace(erg, "+", Chr(2)) For i = 0 To 255 Select Case i ' *** Allowed 'regular' characters Case 37, 43, 48 To 57, 65 To 90, 97 To 122 Case 1 ' *** Replace original % erg = Replace(erg, Chr(i), "%25") Case 2 ' *** Replace original + erg = Replace(erg, Chr(i), "%2B") Case 32 erg = Replace(erg, Chr(i), "%20") Case 3 To 15 erg = Replace(erg, Chr(i), "%0" & Hex(i)) Case Else erg = Replace(erg, Chr(i), "%" & Hex(i)) End Select Next URLEncode = erg End Function |
Get the Excel Weekly Meal PlannerThere are several menu planners, so download the meal plan templates that you need.
|
Last updated: August 1, 2023 2:31 PM