| Be the first user to complete this post  | Add to List | 
VBA-Excel: Convert Numbers (Dollars, Euros) into Words or Text - Till Trillions
To Convert Numbers into Text, please follow the steps below
Download Link : NumberToWordsTrillion
Related Article:
Convert Numbers (Rupees) into Words OR Text - Updated Till 1000000 Crore
Example:
| 123456 | One Hundred Twenty Three Thousand Four Hundred Fifty Six | 
| 1000000 | One Million | 
| 1234567 | One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven | 
| 87654321 | Eighty Seven Million Six Hundred Fifty Four Thousand Three Hundred Twenty One | 
| 456456 | Four Lac Fifty Six Thousand Four Hundred Fifty Six | 
| 31311 | Thirty One Thousand Three Hundred Eleven | 
| 235345 | Two Lac Thirty Five Thousand Three Hundred Fourty Five | 
| 1234567 | Twelve Lacs Thirty Four Thousand Five Hundred Sixty Seven | 
Steps:
- Download the NumberToWordsTrillion.xlsm
- Put the number in Column A
- Click the Create Button
- This step is not needed, because your job is already done :)
Complete Code:
Sub sumit()
    Dim mainWorkBook
    Set mainWorkBook = ActiveWorkbook
    intRows = mainWorkBook.Sheets("Main").UsedRange.Rows.Count
    'MsgBox intRows
    For i = 1 To intRows
    intValue = mainWorkBook.Sheets("Main").Range("A" & i)
       If IsNumeric(intValue) And intValue <> "" Then
            mainWorkBook.Sheets("Main").Range("B" & i) = FnConvert(intValue)
       End If
    Next
End Sub
Function FnConvert(strNumber)
    strNumber = CStr(strNumber)
    If Len(strNumber) > 0 And Len(strNumber) < 2 Then
         strTextConversion = FnGetUnitDigit(strNumber)
     End If
     If Len(strNumber) > 1 And Len(strNumber) < 3 Then
         strTextConversion = FnGetTensDigit(strNumber)
     End If
     If Len(strNumber) > 2 And Len(strNumber) < 4 Then
         strTextConversion = FnGetHundreds(strNumber)
     End If
     If Len(strNumber) > 3 And Len(strNumber) < 6 Then
         If Len(strNumber) = 4 Then
             strTextConversion = FnGetThousandsOne(strNumber)
         End If
         If Len(strNumber) = 5 Then
             strTextConversion = FnGetThousandsTwo(strNumber)
         End If
     End If
      If Len(strNumber) > 5 And Len(strNumber) < 8 Then
        If Len(strNumber) = 6 Then
             strTextConversion = FnGetThousandsThree(strNumber)
         End If
         If Len(strNumber) = 7 Then
             strTextConversion = FnGetMillionOne(strNumber)
         End If
     End If
     If Len(strNumber) > 7 And Len(strNumber) < 15 Then
       If Len(strNumber) = 8 Then
            strTextConversion = FnGetMillionTwo(strNumber)
        End If
        If Len(strNumber) = 9 Then
            strTextConversion = FnGetMillionThree(strNumber)
        End If
        If Len(strNumber) = 10 Then
            strTextConversion = FnGetBillionOne(strNumber)
        End If
        If Len(strNumber) = 11 Then
            strTextConversion = FnGetBillionTwo(strNumber)
        End If
        If Len(strNumber) = 12 Then
            strTextConversion = FnGetBillionThree(strNumber)
        End If
        If Len(strNumber) = 13 Then
            strTextConversion = FnGetTrillionOne(strNumber)
        End If
        If Len(strNumber) = 14 Then
            'strTextConversion = FnGetCroreSeven(strNumber)
        End If
    End If
    FnConvert = strTextConversion
End Function
Function FnGetTrillionOne(intN)
    Dim Str
     'Str = FnGetUnitDigit(Left(intN, 1)) & " Lac " & FnGetThousandsTwo(Right(intN, Len(intN) - 1))
    temp = FnGetUnitDigit(Left(intN, 1))
    If temp <> "" Then
        Str = FnGetUnitDigit(Left(intN, 1)) & " Trillion " & FnGetBillionThree(Right(intN, Len(intN) - 1))
    Else
        Str = FnGetBillionThree(Right(intN, Len(intN) - 1))
    End If
     FnGetTrillionOne = Str
End Function
Function FnGetBillionThree(intN)
    Dim Str
    temp = FnGetHundreds(Left(intN, 3))
    If temp <> "" Then
        Str = FnGetHundreds(Left(intN, 3)) & " Billion " & FnGetMillionThree(Right(intN, Len(intN) - 3))
    Else
        Str = FnGetMillionThree(Right(intN, Len(intN) - 3))
    End If
     FnGetBillionThree = Str
End Function
Function FnGetBillionTwo(intN)
    Dim Str
    temp = FnGetTensDigit(Left(intN, 2))
    If temp <> "" Then
        Str = FnGetTensDigit(Left(intN, 2)) & " Million " & FnGetMillionThree(Right(intN, Len(intN) - 2))
    Else
        Str = FnGetMillionThree(Right(intN, Len(intN) - 2))
    End If
     FnGetBillionTwo = Str
End Function
Function FnGetBillionOne(intN)
    Dim Str
     'Str = FnGetUnitDigit(Left(intN, 1)) & " Lac " & FnGetThousandsTwo(Right(intN, Len(intN) - 1))
    temp = FnGetUnitDigit(Left(intN, 1))
    If temp <> "" Then
        Str = FnGetUnitDigit(Left(intN, 1)) & " Billion " & FnGetMillionThree(Right(intN, Len(intN) - 1))
    Else
        Str = FnGetMillionThree(Right(intN, Len(intN) - 1))
    End If
     FnGetBillionOne = Str
End Function
Function FnGetMillionThree(intN)
    Dim Str
    temp = FnGetHundreds(Left(intN, 3))
    If temp <> "" Then
        Str = FnGetHundreds(Left(intN, 3)) & " Million " & FnGetThousandsThree(Right(intN, Len(intN) - 3))
    Else
        Str = FnGetThousandsThree(Right(intN, Len(intN) - 3))
    End If
     FnGetMillionThree = Str
End Function
Function FnGetMillionTwo(intN)
    Dim Str
     'Str = FnGetUnitDigit(Left(intN, 1)) & " Lac " & FnGetThousandsTwo(Right(intN, Len(intN) - 1))
    temp = FnGetTensDigit(Left(intN, 2))
    If temp <> "" Then
        Str = FnGetTensDigit(Left(intN, 2)) & " Million " & FnGetThousandsThree(Right(intN, Len(intN) - 2))
    Else
        Str = FnGetThousandsThree(Right(intN, Len(intN) - 2))
    End If
     FnGetMillionTwo = Str
End Function
Function FnGetMillionOne(intN)
    Dim Str
     'Str = FnGetUnitDigit(Left(intN, 1)) & " Lac " & FnGetThousandsTwo(Right(intN, Len(intN) - 1))
    temp = FnGetUnitDigit(Left(intN, 1))
    If temp <> "" Then
        Str = FnGetUnitDigit(Left(intN, 1)) & " Million " & FnGetThousandsThree(Right(intN, Len(intN) - 1))
    Else
        Str = FnGetThousandsThree(Right(intN, Len(intN) - 1))
    End If
     FnGetMillionOne = Str
End Function
Function FnGetThousandsThree(intN)
    Dim Str
    temp = FnGetHundreds(Left(intN, 3))
    If temp <> "" Then
        Str = FnGetHundreds(Left(intN, 3)) & " Thousand " & FnGetHundreds(Right(intN, Len(intN) - 3))
    Else
        Str = FnGetHundreds(Right(intN, Len(intN) - 3))
    End If
    FnGetThousandsThree = Str
End Function
Function FnGetThousandsTwo(intN)
    Dim Str
    'Str = FnGetTensDigit(Left(intN, 2)) & " Thousand " & FnGetHundreds(Right(intN, Len(intN) - 2))
    temp = FnGetTensDigit(Left(intN, 2))
    If temp <> "" Then
        Str = FnGetTensDigit(Left(intN, 2)) & " Thousand " & FnGetHundreds(Right(intN, Len(intN) - 2))
    Else
        Str = FnGetHundreds(Right(intN, Len(intN) - 2))
    End If
    FnGetThousandsTwo = Str
End Function
Function FnGetThousandsOne(intN)
    Dim Str
    'Str = FnGetUnitDigit(Left(intN, 1)) & " Thousand " & FnGetHundreds(Right(intN, Len(intN) - 1))
    temp = FnGetUnitDigit(Left(intN, 1))
    If temp <> "" Then
        Str = FnGetUnitDigit(Left(intN, 1)) & " Thousand " & FnGetHundreds(Right(intN, Len(intN) - 1))
    Else
        Str = FnGetHundreds(Right(intN, Len(intN) - 1))
    End If
    FnGetThousandsOne = Str
End Function
Function FnGetHundreds(intN)
    Dim Str
    temp = FnGetUnitDigit(Left(intN, 1))
    If temp <> "" Then
        Str = FnGetUnitDigit(Left(intN, 1)) & " Hundred " & FnGetTensDigit(Right(intN, 2))
    Else
        Str = FnGetTensDigit(Right(intN, 2))
    End If
    FnGetHundreds = Trim(Str)
End Function
Function FnGetTensDigit(intN)
    Dim Str
    If Left(intN, 1) = 1 Then
       Select Case Val(intN)
            Case 10: Str = "Ten"
            Case 11: Str = "Eleven"
            Case 12: Str = "Twelve"
            Case 13: Str = "Thirteen"
            Case 14: Str = "Fourteen"
            Case 15: Str = "Fifteen"
            Case 16: Str = "Sixteen"
            Case 17: Str = "Seventeen"
            Case 18: Str = "Eighteen"
            Case 19: Str = "Nineteen"
        End Select
    Else
        Select Case Val(Left(intN, 1))
            Case 2: Str = "Twenty"
            Case 3: Str = "Thirty"
            Case 4: Str = "Fourty"
            Case 5: Str = "Fifty"
            Case 6: Str = "Sixty"
            Case 7: Str = "Seventy"
            Case 8: Str = "Eighty"
            Case 9: Str = "Ninty"
        End Select
        Str = Str & " " & FnGetUnitDigit(Right(intN, 1))
    End If
    FnGetTensDigit = Trim(Str)
End Function
Function FnGetUnitDigit(intN)
    Dim Str
    Select Case Val(intN)
        Case 1: Str = "One"
        Case 2: Str = "Two"
        Case 3: Str = "Three"
        Case 4: Str = "Four"
        Case 5: Str = "Five"
        Case 6: Str = "Six"
        Case 7: Str = "Seven"
        Case 8: Str = "Eight"
        Case 9: Str = "Nine"
    End Select
        FnGetUnitDigit = Trim(Str)
End Function

Download Link : NumberToWordsTrillion
Also Read:
- VBA-Excel: SUDOKU Solver
- VBA-Excel: Add Worksheets For All The Given Dates Except Weekends and Copy The Common Template In Each Worksheet
- VBA-Excel: Modified Consolidator – Merge or Combine Multiple Excel Files Into One Where Columns Are Not In Order
- VBA-Excel: Create worksheets with Names in Specific Format/Pattern.
 
    