Screenshots and Images
The printed version.
Open the template in Excel.
You are safe to download the resources. We've added our digital signatures to the files.
Download this if you have already installed the Microsoft Store edition of Invoice Manager for Excel, and are looking for additional customized templates.
Download this if you want this design to be set as the default template by the installer program.
As a business document, an invoice sent by a business to a client to denote an obligation to pay for goods or services. One of the most important fields is the total amount to pay. This sample invoicing template shows you how to show the invoiced total in English words.
As of the current implementation, Invoice Manager for Excel does not contain a built in function for converting a numeric value into equal English words. Fortunately, Invoice Manager for Excel is built upon Excel. Like other Office programs, Microsoft Excel supports VBA (Visual Basic for Application) macros, which you can use to extend the functionalities of Excel itself, including creation of user-defined formulas (functions).
While Excel itself does not have a built formula to convert a numeric value into English words, it is possible to create VBA function and have it work with your invoice template.
Most templates here on InvoicingTemplate.com are ".xlsx" files. ".xlsx" workbooks are Microsoft Excel Open XML Format Spreadsheet files. It's an XML-based spreadsheet file created by Microsoft Excel version 2007 and later. One limitation of ".xlsx" format is that it cannot store macros (i.e. VBA codes). To save the macro function code with the Excel invoicing template, you have to firstly convert your template into ".xlsm" format, which is called "Excel macro-enabled Workbook". See c5101 - Advanced Invoice Sample - Macro-Enabled Invoicing Template for more information on this topic.
In this advanced sample of creating customized invoice template, we'll use c5099 Standard Business Invoicing Template with Oval Button in the Business Invoice Templates gallery as the starting point, add the macro function "SpellNumber" to the template to show the billed amount in English words.
First, to convert an ".xlsx" invoice template into ".xlsm" format, follow steps below.
- First open the invoice template as usual.
- Click Excel menu "File", and then "Save As".
- Choose the location to save new workbook file.
- On the "Save As" dialog box, from the "Save as type" drop down list choose "Excel macro-enabled workbook (*.xlsm)", and then type in the file name for the new workbook.
- Click "Save".
Now the steps to create the "SpellNumber" VBA macro function for the ".xlsm" Excel workbook file. The macro code was copied from Microsoft at How to convert a numeric value into English words in Excel, where you can also find step by step instructions on how the create the spreadsheet file. You can also find a similar implementation at Two best ways to convert numbers to words in Excel, and at Converting Numbers Into Words.
- Press ALT+F11 on your keyboard. This opens the "Microsoft Visual Basic for Applications" editor, which is also referenced to as macro editor or VBA editor here on InvoicingTemplate.com.
- Click the menu "Insert", and then "Module". Thins inserts a new module into the current VBA project.
- Copy and paste the following VBA code into the top-right pane.
Option Explicit 'Main Function Function SpellNumber(ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' String representation of amount. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace = InStr(MyNumber, ".") ' Convert cents and set MyNumber to dollar amount. If DecimalPlace > 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars & " Dollars" End Select Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumber = Dollars & Cents End Function ' Converts a number from 100-999 into text Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) ' Convert the hundreds place. If Mid(MyNumber, 1, 1) <> "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred " End If ' Convert the tens and ones place. If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function ' Converts a number from 10 to 99 into text. Function GetTens(TensText) Dim Result As String Result = "" ' Null out the temporary function value. If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19... Select Case Val(TensText) Case 10: Result = "Ten" Case 11: Result = "Eleven" Case 12: Result = "Twelve" Case 13: Result = "Thirteen" Case 14: Result = "Fourteen" Case 15: Result = "Fifteen" Case 16: Result = "Sixteen" Case 17: Result = "Seventeen" Case 18: Result = "Eighteen" Case 19: Result = "Nineteen" Case Else End Select Else ' If value between 20-99... Select Case Val(Left(TensText, 1)) Case 2: Result = "Twenty " Case 3: Result = "Thirty " Case 4: Result = "Forty " Case 5: Result = "Fifty " Case 6: Result = "Sixty " Case 7: Result = "Seventy " Case 8: Result = "Eighty " Case 9: Result = "Ninety " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) ' Retrieve ones place. End If GetTens = Result End Function ' Converts a number from 1 to 9 into text. Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else: GetDigit = "" End Select End Function
- Click the "Save" button on the toolbar.
- Switch your invoice template into design mode by clicking the "Design Mode" button on the "Invoice" worksheet.
- Click to select the Excel cell where you want to show the English words for the invoiced total. In this sample, we choose $K$45 on the "Invocie" worksheet.
- Click to activate the formula, enter the formula to convert invoiced total into English words:
If your invoice format does not use / show the balance and you want to show the "Total", use this formula:
For example, if the amount to convert is "756.00", the result will be "Seven Hundred Fifty Six Dollars and No Cents".
- Exit design mode by clicking the "Design Mode" button again on the "Invoiced" worksheet.
- Save the template by clicking the "Save" tab on Excel quick access toolbar.
The support for VBA macros is one of the big advantages of Microsoft Office / Excel. With this feature, you can extend our invoicing templates in the way you like to meet your business requirements. Feel free to see more samples in the Business Invoice Formats gallery.
Format and Specification
|Name||Advanced Sample - Invoiced Total in English Words|
|Category||Sales Invoice Template|
|Release Date||Sunday, November 20, 2016|
|Format (XLS or XLSX)||.xlsm|
|Line Height (Points)||18.00|
|Papaer Size / Orientation||Portrait|
|Default Margins (Points)|
|Price||Free (0.00 USD)|
|System||Windows 7 and later, and Excel 2007 and later.|
February 10, 2018
- Removed the description of shortcut keys from the template since Uniform Invoice Software 5.26 is no longer support it.
- Added the usage description of this template to the form.