Convertir Numeros A Letras Excel

Páginas: 5 (1216 palabras) Publicado: 11 de enero de 2013
Sub convertir()
'
' convertir Macro
'

'
Function SpellNumberSP(ByVal n As Double, _
Optional ByVal ccy As String = "", _
Optional ByVal cents As String = "", _
Optional ByVal join As String = " con", _
Optional ByVal fraction As Boolean = False) As String
Dim myLength As Long
Dim i As Long
Dim myNumAs Long
Dim Remainder As Long

SpellNumberSP = ""

Remainder = Round(100 * (n - Int(n)), 0) 'extrae la parte decimal

On Error Resume Next
myLength = Int(Application.Log10(n) / 3)

For i = myLength To 0 Step -1
myNum = Int(n / 10 ^ (i * 3)) 'extrae la parte entera
n = n - myNum * 10 ^ (i * 3)
If myNum > 0 ThenSelect Case myNum
Case 1
SpellNumberSP = SpellNumberSP & _
Choose(i + 1, "uno", "mil ", "un millón ", "un billón ", "un trillón")
Case Else
SpellNumberSP = SpellNumberSP & MakeWord(Int(myNum)) & _
Choose(i + 1, "", " mil ", " millones ", " billones ", "trillones")
End Select
End If

Next i
SpellNumberSP = SpellNumberSP & " " & ccy & _
IIf(Remainder > 0, join & " " & Format(Remainder, "00"), " ") & _
IIf(fraction, "/100", "") & " " & cents
SpellNumberSP = (Trim(SpellNumberSP))

End Function

Function MakeWord(ByVal inValue AsLong) As String
Dim unitWord, tenWord, tenWordEnt
Dim n As Long
Dim unit As Long, ten As Long, hund As Long

unitWord = Array("", "uno", "dos", "tres", "cuatro", _
"cinco", "seis", "siete", "ocho", _
"nueve", "diez", "once", "doce", _
"trece", "catorce", "quince", _
"dieciseis", "diecisiete", "dieciocho","diecinueve")
tenWord = Array("", "diez", "veinti", "treinta y ", "cuarenta y ", _
"cincuenta y ", "sesenta y ", "setenta y ", "ochenta y ", "noventa y ")
tenWordEnt = Array("", "diez", "veinte", "treinta", "cuarenta", _
"cincuenta", "sesenta", "setenta", "ochenta", "noventa")
MakeWord = ""
n = inValue
If n = 0 Then MakeWord ="cero"
hund = n \ 100 '"\" se usa para division entera
If hund > 0 Then
If n / 100 = 1 Then
MakeWord = "cien"
Exit Function
End If
Select Case hund
Case 1
MakeWord = "ciento "
Case 5
MakeWord = "quinientos "
Case Else
MakeWord = MakeWord &MakeWord(Int(hund)) & " cientos "
End Select
End If
n = n - hund * 100
If n < 20 Then
ten = n
MakeWord = MakeWord & unitWord(ten) '& " "
Else
Select Case n Mod 10
Case 0
ten = n \ 10
MakeWord = MakeWord & tenWordEnt(ten) '& " "
unit = n - ten * 10MakeWord = Trim(MakeWord & unitWord(unit))
Case Else
ten = n \ 10
MakeWord = MakeWord & tenWord(ten) '& " "
unit = n - ten * 10
MakeWord = Trim(MakeWord & unitWord(unit))
End Select
End If
MakeWord = (Trim(MakeWord))
End Function
Function num_letras(Numero As Double) AsString
Dim Letras As String
Dim HuboCentavos As Boolean
Dim Decimales As Double
Decimales = Numero - Int(Numero)
Numero = Int(Numero)
Dim Numeros(90) As String
Numeros(0) = "cero"
Numeros(1) = "uno"
Numeros(2) = "dos"
Numeros(3) = "tres"
Numeros(4) = "cuatro"
Numeros(5) = "cinco"
Numeros(6) = "seis"
Numeros(7) = "siete"
Numeros(8) = "ocho"
Numeros(9) = "nueve"
Numeros(10) = "diez"...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Convertir Numeros A Letras En Excel
  • Convertir Numeros a Letras En Excel
  • convertir numero a letra en excel
  • convertir-numeros-a-letras-en-excel
  • formula para convertir numeros a letras en excel
  • convertir numeros a letras
  • Convertir numeros en ltras excel
  • convertir numeros a letras funcion()

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS