Featured Posts

Start Your Journey with Linux Command Line

Image
Start Your Journey with the Linux Command Line: A Comprehensive Guide Whether you are a software developer, system administrator, analytics engineer, or cybersecurity enthusiast, mastering the Linux command line (terminal) is one of the single most effective skills you can acquire. While graphical user interfaces (GUIs) offer visual convenience, the command line interface (CLI) delivers unmatched speed, fine-grained system control, and seamless automation capabilities. Linux Command Line This tutorial breaks down more than 35 core Linux commands into structured, practical modules complete with real-world examples, flags, and command-chaining techniques. By building muscle memory around these fundamentals, you will elevate your daily technical workflow from basic navigation to advanced command orchestration. Why Learn the Command Line? The Linux CLI is not merely a legacy tool—it remains the foundation of modern cloud architecture, server maintenance, DevOps pipelines, and enterp...

Convert a Currency Number to Words in Excel

Convert amount from Number to Words

Convert a Currency Number to Words in Excel
Convert a Currency Number to Words in Excel 

Step by Step tutorial

This VBA code will enable you to convert any amount in an excel cell to words amount with 6 currencies very easily. Steps are below:

1- Open an Excel file and press Alt + F11

2- Click Insert, Module

Alt + F11
Alt + F11

3- Copy below text and paste it in the module

Option Explicit
'https://ilpd-ms.blogspot.com/2020/03/how-to-convert-amount-from-number-to.html
Function SpellNumberEDP(ByVal MyNumber, Optional MyCurrency As String = "")
    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
    Dim str_amount, str_amounts
    Dim str_cent, str_cents
    Select Case UCase(MyCurrency)
    Case "SAR"
        str_amount = "Riyal" ' Riyal can be changed to "Saudi Riyal"
        str_amounts = "Riyals"
        str_cent = "Halala"
        str_cents = "Halalas"
    Case "AED"
        str_amount = "Dirham"
        str_amounts = "Dirhams"
        str_cent = "Fil"
        str_cents = "Fils"
    Case "GBP"
        str_amount = "Pound"
        str_amounts = "Pounds"
        str_cent = "Penny"
        str_cents = "Pence"
    Case "EUR"
        str_amount = "Euro"
        str_amounts = "Euros"
        str_cent = "Cent"
        str_cents = "Cents"
    Case "YEN"
        str_amount = "Yen"
        str_amounts = "Yens"
        str_cent = "Sen"
        str_cents = "Sens"
    Case Else:
        str_amount = "Dollar"
        str_amounts = "Dollars"
        str_cent = "Cent"
        str_cents = "Cents"
    End Select
    Select Case Dollars
    Case ""
        Dollars = "No " & str_amounts
    Case "One"
        Dollars = "One " & str_amount
    Case Else
        Dollars = Dollars & " " & str_amounts
    End Select
    Select Case cents
    Case ""
        cents = " and No " & str_cents
    Case "One"
        cents = " and One " & str_cent
    Case Else
        cents = " and " & cents & " " & str_cents
    End Select
    SpellNumberEDP = 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, 11) <> "0" Then
        Result = GetDigit(Mid(MyNumber, 11)) & " Hundred "
    End If
' Convert the tens and ones place.
    If Mid(MyNumber, 21) <> "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

4- Close the Visual basic Window and return to Excel

Save file as micro-enabled
Save file as micro-enabled

5- A dialog box will appear; “The following features

cannot be saved in macro-free workbook”.Save the workbook as Macro Enabled Workbook. 

6- Click “No”.

7- Choose Save As Type = Excel macro-enabled workbook

Now you can choose between 6 currencies depending on how to write your formula as below - Assuming that the cell with number is (A1)

  • For  US Dollars 

=SpellNumberEDP(A1) ⇒ note: only "A1" and nothing between quotes.

  • For European Euros (EUR)  ⇒ note: you must write "EUR" between quotes to get Euro currency.
=SpellNumberEDP(A1,"EUR")
  • For Japanese Yen (YEN  ⇒ note: you must write "Yen" between quotes to get Yen currency.
=SpellNumberEDP(A1,"YEN")
  • For English Pounds (GBP⇒ note: you must write "GBP" between quotes to get pounds currency.
=SpellNumberEDP(A1,"GBP")
  • For Saudi Riyal (SAR) ⇒ note: you must write "SAR" between quotes to get Saudi currency.

=SpellNumberEDP(A1,"SAR")

  • For UAE Dirham (AED) ⇒ note: you must write "AED" between quotes to get Dirham currency.

=SpellNumberEDP(A1,"AED")


Note: You can change the output inside the code. I changed it from :"Riyal" to "Saudi Riyal" as follows:

Case "SAR"
str_amount = "Saudi Riyal" str_amounts =
str_amounts = "Saudi Riyals"

Here's how to do it



 

Comments

Post a Comment

Your opinion matters, your voice makes us proud and happy. Your words are our motivation.

Popular Posts

PROJECT MAVEN | The Architecture of Algorithmic Warfare

Open Source: The Invisible Engine of Your Daily Life

Data Analysis Roadmap 2026: From Excel Lover to Python-Powered Analyst

Python 4.3.1.10 LAB: Converting fuel consumption

Python for Windows Beginners: Build Your First Automated Workflow in 10 Minutes