Share via

formul;a to convert figures into words in excel

Anonymous
2025-02-12T10:27:09+00:00

formul;a to convert figures into words in excel

Microsoft 365 and Office | Excel | For education | iOS

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

16 answers

Sort by: Most helpful
  1. Anonymous
    2025-02-21T05:59:09+00:00

    Could you please send me the exact van code that is to be copied and pasted into the module. And also please advise me what next step to be taken. It’s to be saved or simply exited from the vba module and insert spell numbers formula in the desired cell?

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2025-02-17T10:49:04+00:00

    Many thanks for your reply. I have tried to copy / paste the macro suggested by you, but unfortunately, I am not able to do it. I would be grateful if you could make it more understandable to a person like me.

    thanks

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2025-02-17T06:43:33+00:00

    Macro is only avaible on Desktop application.

    Alt+F11 to open VB editor. Then copy macro in it.

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2025-02-15T07:22:12+00:00

    Don’t know how to create the macro

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2025-02-13T09:32:40+00:00

    Show one sample, it will help us to understand what you want better.

    Try this macro

    Image

    Option Explicit

    Function SpellNumber(ByVal numIn) Dim LSide, RSide, Temp, DecPlace, Count, oNum oNum = numIn ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " numIn = Trim(Str(numIn)) 'String representation of amount ' Edit 2.(0)/Internationalisation ' Don't change point sign here as the above assignment preserves the point! DecPlace = InStr(numIn, ".") 'Pos of dec place 0 if none If DecPlace > 0 Then 'Convert Right & set numIn RSide = GetTens(Left(Mid(numIn, DecPlace + 1) & "00", 2)) numIn = Trim(Left(numIn, DecPlace - 1)) End If RSide = numIn Count = 1 Do While numIn <> "" Temp = GetHundreds(Right(numIn, 3)) If Temp <> "" Then LSide = Temp & Place(Count) & LSide If Len(numIn) > 3 Then numIn = Left(numIn, Len(numIn) - 3) Else numIn = "" End If Count = Count + 1 Loop

    SpellNumber = LSide
    If InStr(oNum, Application.DecimalSeparator) &gt; 0 Then    ' &lt;&lt; Edit 2.(1) 
        SpellNumber = SpellNumber & " point " & fractionWords(oNum)
    End If
    

    End Function

    Function GetHundreds(ByVal numIn) 'Converts a number from 100-999 into text Dim w As String If Val(numIn) = 0 Then Exit Function numIn = Right("000" & numIn, 3) If Mid(numIn, 1, 1) <> "0" Then 'Convert hundreds place w = GetDigit(Mid(numIn, 1, 1)) & " Hundred " End If If Mid(numIn, 2, 1) <> "0" Then 'Convert tens and ones place w = w & GetTens(Mid(numIn, 2)) Else w = w & GetDigit(Mid(numIn, 3)) End If GetHundreds = w End Function

    Function GetTens(TensText) 'Converts a number from 10 to 99 into text Dim w As String w = "" 'Null out the temporary function value If Val(Left(TensText, 1)) = 1 Then 'If value between 10-19 Select Case Val(TensText) Case 10: w = "Ten" Case 11: w = "Eleven" Case 12: w = "Twelve" Case 13: w = "Thirteen" Case 14: w = "Fourteen" Case 15: w = "Fifteen" Case 16: w = "Sixteen" Case 17: w = "Seventeen" Case 18: w = "Eighteen" Case 19: w = "Nineteen" Case Else End Select Else 'If value between 20-99.. Select Case Val(Left(TensText, 1)) Case 2: w = "Twenty " Case 3: w = "Thirty " Case 4: w = "Forty " Case 5: w = "Fifty " Case 6: w = "Sixty " Case 7: w = "Seventy " Case 8: w = "Eighty " Case 9: w = "Ninety " Case Else End Select w = w & GetDigit _ (Right(TensText, 1)) 'Retrieve ones place End If GetTens = w End Function

    Function GetDigit(Digit) 'Converts a number from 1 to 9 into text 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

    Function fractionWords(n) As String Dim fraction As String, x As Long fraction = Split(n, Application.DecimalSeparator)(1) ' << Edit 2.(2) For x = 1 To Len(fraction) If fractionWords <> "" Then fractionWords = fractionWords & " " fractionWords = fractionWords & GetDigit(Mid(fraction, x, 1)) Next x End Function

    Was this answer helpful?

    0 comments No comments