+ Reply to Thread
Results 1 to 14 of 14

Spellnumber

Hybrid View

  1. #1
    Registered User
    Join Date
    09-21-2010
    Location
    Kuwait
    MS-Off Ver
    Excel 2007
    Posts
    1

    Re: Spellnumber

    Hi All

    1. Start Microsoft Excel.
    2. Press ALT+F11 to start the Visual Basic Editor.
    3. On the Insert menu, click Module.
    4. Copy & Paste the following code into the module sheet.
    5. Go to Excel Sheet and put any Kuwaiti Dinar value with 3 decimals in cell A1
    6. Type [I]=SpellNumber(A1)[/I] in cell B1
    Hope it will solve your Problem


    Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
       Dim Dinars, Fils, 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 Fils and set MyNumber to Dinar amount.
       If DecimalPlace > 0 Then
           Fils = GetHundreds(Left(Mid(MyNumber, DecimalPlace + 1) & _
                     "000", 3))
           MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
       End If
       Count = 1
       Do While MyNumber <> ""
           Temp = GetHundreds(Right(MyNumber, 3))
           If Temp <> "" Then Dinars = Temp & Place(Count) & Dinars
           If Len(MyNumber) > 3 Then
               MyNumber = Left(MyNumber, Len(MyNumber) - 3)
           Else
               MyNumber = ""
           End If
           Count = Count + 1
       Loop
       Select Case Dinars
           Case ""
               Dinars = "No Dinars"
           Case "One"
               Dinars = "One Dinar"
            Case Else
               Dinars = Dinars & " Dinars"
       End Select
       Select Case Fils
           Case ""
               Fils = " and No Fils"
           Case "One"
               Fils = " and One Fils"
                 Case Else
               Fils = " and " & Fils & " Fils"
       End Select
       SpellNumber = Dinars & Fils
    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
    Last edited by kaleeckal; 09-22-2010 at 02:55 PM.

  2. #2
    Registered User
    Join Date
    08-08-2012
    Location
    Kuwait
    MS-Off Ver
    Excel 2007
    Posts
    1

    Re: Spellnumber

    but the result it is giving is in "Dinars" not in "Kuwaiti Dinars"

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1