Convert number to dollars only without the cents

fredtabah

New Member
Joined
Apr 21, 2021
Messages
1
Office Version
  1. 2016
Platform
  1. Windows
Example: $123.45 = "One Hundred Twenty Three Dollars" instead of "One Hundred Twenty Three Dollars and Forty Five Cents"

Current Code:
VBA Code:
Option Explicit
'Main Function [URL='http://www.ExcelDataPro.com']www.ExcelDataPro.com[/URL]
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"
        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, 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
 

Excel Facts

Enter current date or time
Ctrl+: enters current time. Ctrl+; enters current date. Use Ctrl+: Ctrl+; Enter for current date & time.

RoryA

MrExcel MVP, Moderator
Joined
May 2, 2008
Messages
36,951
Office Version
  1. 365
  2. 2019
  3. 2016
  4. 2010
Platform
  1. Windows
  2. MacOS
Simple method - change this:

Code:
SpellNumberEDP = Dollars & cents

to just:

Code:
SpellNumberEDP = Dollars
 

Watch MrExcel Video

Forum statistics

Threads
1,133,271
Messages
5,657,765
Members
418,412
Latest member
fehr56

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top