Home > Foro de Excel >

Debates de Excel > Convertir numeros a letras en excel

Grupo de Excel
Foro de Excel
18130 Debates | 2005 Documentos | 1 Vídeo | 1 Test | 1 Blog | 675 Imágenes | 16590 Miembros

Convertir numeros a letras en excel

Jorge
El Salvador, El Salv...
Escrito por Jorge Alberto el 16/02/2007
Hola, necesito que me haga un gran favor, necesito saber como convertir numeros en dólares a formato de letras en excel. Ya probé con varios que encontre en internet, pero no pude. Talvez me puede facilitar la macro y explicarme los procedimientos. La verdad me  son dificiles las macros. Me urge, por su ayuda. Muchas gracias de antemano

Citar  |  
Ver mensaje      

Abraham Valencia
Lima, Perú
Escrito por Abraham Valencia el 16/02/2007

Aqui mismo hay muchossss ejemplos:

Http://foros.emagister.com/tema-deseo_convertir_numeros_a_texto-12890-377149. Htm

Abraham


Citar  |  
Ver mensaje     

Jorge Alberto
El Salvador, El Salv...
Escrito por Jorge Alberto el 16/02/2007

Gracias, me fue muy útil. Tenía que pasar a letras infinidad de datos. Muy amable de su parte.

Esta es la que utilice:

Aqui esta la macro corregida para  dólares y pesos mexicanos:

Para quien no sabe como pegar las macros:

Herramientas / Macros / Editor de Visual Basic

Aparecera una ventana

Se posicionan en el VBAProject del lado izquierdo del libro al que quieren agregar la macro, se van a la funcion INSERTAR / Modulo

Y del lado derecho aparecera una ventana en blanco, ahi pegan el siguiente texto:


'Funciones para convertir de números a letras
'Llamada : Letras(Número,Formato) - Formato 1-Pesos, 2-Dólares
Function Unidades(num, UNO)
Dim U
Dim Cad

U = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE")
Cad = ""
If num = 1 Then
If UNO = 1 Then
Cad = Cad & "UNO"
Else
Cad = Cad & "UN"
End If
Else
Cad = Cad & U(num - 1)
End If
Unidades = Cad
End Function

Function Decenas(num1, res)
Dim D1
D1 = Array("ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", _
"DIECIOCHO", "DIECINUEVE")
D2 = Array("DIEZ", "VEINT", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", _
"SETENTA", "OCHENTA", "NOVENTA")

If num1 > 10 And num1 < 20 Then
Cad1 = D1(num1 - 10 - 1)
Else
Cad1 = D2(num1 \ 10) - 1)
If (num1 \ 10) <> 2 Then
If res > 0 Then
Cad1 = Cad1 & " Y "
Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
End If
Else
If res = 0 Then
Cad1 = Cad1 & "E"
Else
Cad1 = Cad1 & "I"
Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
End If
End If
End If
Decenas = Cad1
End Function

Function Cientos(num2)
num3 = num2 \ 100
Select Case num3
Case 1
If num2 = 100 Then
cad2 = "CIEN "
Else
cad2 = "CIENTO "
End If
Case 5
cad2 = "QUINIENTOS "
Case 7
cad2 = "SETECIENTOS "
Case 9
cad2 = "NOVECIENTOS "
Case Else
cad2 = Unidades(num3, 0) & "CIENTOS "
End Select

num2 = num2 Mod 100
If num2 > 0 Then
If num2 < 10 Then
cad2 = cad2 & Unidades(num2, num2)
Else
cad2 = cad2 & Decenas(num2, num2 Mod 10)
End If
End If
Cientos = cad2
End Function

Function Miles(num4)
If (num4 >= 100) Then
cad3 = Cientos(num4)
Else
If (num4 >= 10) Then
cad3 = Decenas(num4, num4 Mod 10)
Else
cad3 = Unidades(num4, 0)
End If
End If
cad3 = cad3 & " MIL "
Miles = cad3
End Function

Function Millones(cant)
If cant = 1 Then
ter = " "
Else
ter = "ES "
End If
If (cant >= 1000) Then
cantl = cantl & Miles(cant \ 1000)
cant = cant Mod 1000
End If
If cant > 0 Then
If cant >= 100 Then
cantl = cantl & Cientos(cant)
Else
If cant >= 10 Then
cantl = cantl & Decenas(cant, cant Mod 10)
Else
cantl = cantl & Unidades(cant, 0)
End If
End If
End If
Millones = cantl & " MILLON" & ter
End Function
Function decimales(numero As Single) As Integer
Dim iaux As Integer
iaux = numero - Application. Round(numero, 2)
decimales = iaux
End Function

Function letras(cantm As Variant, ByVal mon As Integer) As String
Dim cants1 As String, num1 As Variant, num2 As Variant

num1 = cantm \ 1000000
num2 = cantm - (num1 * 1000000)

cents = (num2 * 100) Mod 100
If cents <= 9 Then
cents1 = "0" & cents
Else
cents1 = Format(cents)
End If

cantm = cantm - (cents / 100)
If cantm >= 1000000 Then
cantlm = Millones(cantm \ 1000000)
cantm = cantm Mod 1000000
End If
If cantm > 0 Then
If (cantm >= 1000) Then
cantlm = cantlm & Miles(cantm \ 1000)
cantm = cantm Mod 1000
End If
End If
If cantm > 0 Then
If cantm >= 100 Then
cantlm = cantlm & Cientos(cantm)
Else
If cantm >= 10 Then
cantlm = cantlm & Decenas(cantm, cantm Mod 10)
Else
cantlm = cantlm & Unidades(cantm, 1)
End If
End If
End If
If mon = 1 Then
letras = "(" & cantlm & " PESOS " & cents1 & "/100 M.N. )"
Else
letras = "(" & cantlm & " DOLARES " & cents1 & "/100 U.S.D. )"
End If
End Function

Sub prueba()
Dim res As String, num As Single
num = 50899697. 51
res = letras(num, 1)
End Sub

 

Al finalizar cierren y solo manden llamar la formula como :

=letras(aqui ponen la celda donde viene el numero,1) si es pesos mexicanos

y si es dolares llaman:

=letras(aqui ponen la celda donde viene el numero,2)

Si cambian la denominacion a otras monedas solo modifiquen la macro casi al final donde viene "pesos" a su moneda tambien entre comillas y quiten M.N.

 



Citar  |  
Ver mensaje     

Escrito por Mirko el 20/02/2007

Hola a todos, necesito la posibilidad de que alguien me ayude con la siuiente formula, he logrado llegar hasta los numeros enteros pero con los decimales tengo poblemas no se como hacerlo, soy de venezuela y la moneda es el bolivar y termina en centimos: Ejp.

102,55  al convertir CIENTO DOSMIL BOLIVARES CON CINCUENTA Y CINCO CENTIMOS

Mi correo es  mcenten@cantv. Net; centenm@msn. Com

Gracias

Anexo archivo

Mirko







Citar  |  
Ver mensaje     

Hugo Medina
Perú, Perú
Escrito por Hugo Medina el 21/02/2007

Buenas tardes......

Un favor con la formula de conversion de numeros a letras hise como lo indico pero me me bota el error de:

 "se ha detectado un nombre ambiguo: letras"

Por favor ayudeme con esto porque lo necesito con urgencia..

Gracias.....




Citar  |  
Ver mensaje     

Jorge Alberto
El Salvador, El Salv...
Escrito por Jorge Alberto el 22/02/2007

Talvez no guardo la macro, o no puso el nombre de la moneda entre comillas



Citar  |  
Ver mensaje     

Escrito por Raul el 03/03/2007

En realidad no necesitas demasiado el comando traduce

De hecho nolo necesitas, el excel trae otro comando que hace esa funcion.


Citar  |  
Ver mensaje     

Ploder
Madrid, España
Escrito por Ploder el 05/03/2007

Hola.

He conseguido pasar los numeros a letras pero tengo problemas con los decimales porque los deja en numero.

¿Alguien sabe que es lo que hay que cambiar en el macro o tiene un macro mas completo?

Muchas gracias


Citar  |  
Ver mensaje     

Ploder
Madrid, España
Escrito por Ploder el 05/03/2007

Hola yo tengo el mismo prblema.

¿Lo solucionaste? Si es asi, por favor dime como.

Gracias


Citar  |  
Ver mensaje     

Ric78 Cimadevilla
Veracruz, México
Escrito por Ric78 Cimadevilla el 08/11/2007

Saludos

Una macro que convierta numeros a letras pero con excel 2007.


Gracias


Citar  |  
Ver mensaje     

Escrito por Arq. Francisco Borrego Flores el 14/12/2007
"en realidad no necesitas demasiado el comando traduce
de hecho nolo necesitas, el excel trae otro comando que hace esa funcion.
"

por RAUL (Marzo 2007)



cual es ese comando pues no lo encuentro




Citar  |  
Ver mensaje     

Escrito por Arq. Francisco Borrego Flores el 14/12/2007

Hola encontre tu formula y la pegue segun tus instrucciones

Y al querer ejecutarla me pone error de sintaxis, no podrias revisarla o darme paso a pasito las innstrucciones ya que no la puedo ejecutar.

Gracias


Citar  |  
Ver mensaje     

Escrito por Alberto el 05/12/2008
hola encontre tu formula y la pegue segun tus instrucciones
y al querer ejecutarla me pone error de sintaxis, no podrias revisarla o darme paso a pasito las innstrucciones ya que no la puedo ejecutar.
gracias



Function letras(cantm As Variant, ByVal mon As Integer) As String
Dim cants1 As String, num1 As Variant, num2 As Variant
num1 = cantm 1000000

Citar  |  
Ver mensaje     


Responder


Quiero recibir alertas por email cuando haya mensajes nuevos en este debate

Al escribir en el debate:
  1. Repasa la ortografía y no escribas en formato SMS.
  2. Lee el texto dos veces antes de publicar.
  3. No escribas todo en mayúsculas o negritas.
 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA

Búsquedas frecuentes: letras chulas para nick cartas de recomendacion laboral regalo para una amiga como se escribe mi nombre en hebreo permixon

Emagister cumple la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de datos de Carácter Personal, y posee el código de inscripción nº 2002010053 del Registro General de la Agencia de Protección de Datos. Copyright © 1999/2000 - Grupo Intercom - Todos los derechos