Foros del Web » Soporte técnico » Ofimática »

excel para pasar numeros a letras

Estas en el tema de excel para pasar numeros a letras en el foro de Ofimática en Foros del Web. tengo casi listo el macro pero tengo un problema con los decimales, no kiero k me aprezcan numeros y si cantidades. es todo en euros. ...
  #1 (permalink)  
Antiguo 02/11/2006, 11:01
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
excel para pasar numeros a letras

tengo casi listo el macro pero tengo un problema con los decimales, no kiero k me aprezcan numeros y si cantidades.

es todo en euros.

aki escribo el macro para ver si alguien me soluciona el tema de los decimales.

Function num_letras(Numero As Double) As String
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"
Numeros(11) = "ONCE"
Numeros(12) = "DOCE"
Numeros(13) = "TRECE"
Numeros(14) = "CATORCE"
Numeros(15) = "QUINCE"
Numeros(16) = "DIECISEIS"
Numeros(17) = "DIECISIETE"
Numeros(18) = "DIECIOCHO"
Numeros(19) = "DIECINUEVE"
Numeros(20) = "VEINTE"
Numeros(21) = "VEINTIUNO"
Numeros(22) = "VEINTIDOS"
Numeros(23) = "VEINTITRES"
Numeros(24) = "VEINTICUATRO"
Numeros(25) = "VEINTICINCO"
Numeros(26) = "VEINTISEIS"
Numeros(27) = "VEINTISIETE"
Numeros(28) = "VEINTIOCHO"
Numeros(29) = "VEINTINUEVE"
Numeros(30) = "TREINTA"
Numeros(40) = "CUARENTA"
Numeros(50) = "CINCUENTA"
Numeros(60) = "SESENTA"
Numeros(70) = "SETENTA"
Numeros(80) = "OCHENTA"
Numeros(90) = "NOVENTA"
Do
'*---> Centenas de Millón
If (Numero < 1000000000) And (Numero >= 100000000) Then
If (Int(Numero / 100000000) = 1) And ((Numero - (Int(Numero / 100000000) * 100000000)) < 1000000) Then
Letras = Letras & "cien millones "
Else
Select Case Int(Numero / 100000000)
Case 1
Letras = Letras & "CIENTO"
Case 5
Letras = Letras & "QUINIENTOS"
Case 7
Letras = Letras & "SETECIENTOS"
Case 9
Letras = Letras & "NOVECIENTOS"
Case Else
Letras = Letras & Numeros(Int(Numero / 100000000))
End Select
If (Int(Numero / 100000000) <> 1) And (Int(Numero / 100000000) <> 5) And (Int(Numero / 100000000) <> 7) And (Int(Numero / 100000000) <> 9) Then
Letras = Letras & "CIENTOS "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100000000) * 100000000)
End If
'*---> Decenas de Millón
If (Numero < 100000000) And (Numero >= 10000000) Then
If Int(Numero / 1000000) < 16 Then
Letras = Letras & Numeros(Int(Numero / 1000000))
Letras = Letras & " MILLONES "
Numero = Numero - (Int(Numero / 1000000) * 1000000)
Else
Letras = Letras & Numeros(Int(Numero / 10000000) * 10)
Numero = Numero - (Int(Numero / 10000000) * 10000000)
If Numero > 1000000 Then
Letras = Letras & " y "
End If
End If
End If
'*---> Unidades de Millón
If (Numero < 10000000) And (Numero >= 1000000) Then
If Int(Numero / 1000000) = 1 Then
Letras = Letras & " UN MILLON "
Else
Letras = Letras & Numeros(Int(Numero / 1000000))
Letras = Letras & " MILLONES "
End If
Numero = Numero - (Int(Numero / 1000000) * 1000000)
End If
'*---> Centenas de Millar
If (Numero < 1000000) And (Numero >= 100000) Then
If (Int(Numero / 100000) = 1) And ((Numero - (Int(Numero / 100000) * 100000)) < 1000) Then
Letras = Letras & "CIEN MIL "
Else
Select Case Int(Numero / 100000)
Case 1
Letras = Letras & "CIENTO"
Case 5
Letras = Letras & "QUINIENTOS"
Case 7
Letras = Letras & "SETECIENTOS"
Case 9
Letras = Letras & "NOVECIENTOS"
Case Else
Letras = Letras & Numeros(Int(Numero / 100000))
End Select
If (Int(Numero / 100000) <> 1) And (Int(Numero / 100000) <> 5) And (Int(Numero / 100000) <> 7) And (Int(Numero / 100000) <> 9) Then
Letras = Letras & "CIENTOS "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100000) * 100000)
End If
'*---> Decenas de Millar
If (Numero < 100000) And (Numero >= 10000) Then
If Int(Numero / 1000) < 16 Then
Letras = Letras & Numeros(Int(Numero / 1000))
Letras = Letras & " MIL "
Numero = Numero - (Int(Numero / 1000) * 1000)
Else
Letras = Letras & Numeros(Int(Numero / 10000) * 10)
Numero = Numero - (Int((Numero / 10000)) * 10000)
If Numero > 1000 Then
Letras = Letras & " Y "
Else
Letras = Letras & " MIL "
End If
End If
End If
'*---> Unidades de Millar
If (Numero < 10000) And (Numero >= 1000) Then
If Int(Numero / 1000) = 1 Then
Letras = Letras & " "
Else
Letras = Letras & Numeros(Int(Numero / 1000))
End If
Letras = Letras & " MIL "
Numero = Numero - (Int(Numero / 1000) * 1000)
End If
'*---> Centenas
If (Numero < 1000) And (Numero > 99) Then
If (Int(Numero / 100) = 1) And ((Numero - (Int(Numero / 100) * 100)) < 1) Then
Letras = Letras & "CIEN "
Else
Select Case Int(Numero / 100)
Case 1
Letras = Letras & "CIENTO"
Case 5
Letras = Letras & "QUINIENTOS"
Case 7
Letras = Letras & "SETECIENTOS"
Case 9
Letras = Letras & "NOVECIENTOS"
Case Else
Letras = Letras & Numeros(Int(Numero / 100))
End Select
If (Int(Numero / 100) <> 1) And (Int(Numero / 100) <> 5) And (Int(Numero / 100) <> 7) And (Int(Numero / 100) <> 9) Then
Letras = Letras & "CIENTOS "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100) * 100)
End If
'*---> Decenas
If (Numero < 100) And (Numero > 9) Then
If Numero < 31 Then
Letras = Letras & Numeros(Int(Numero))
Numero = Numero - Int(Numero)
Else
Letras = Letras & Numeros(Int((Numero / 10)) * 10)
Numero = Numero - (Int((Numero / 10)) * 10)
If Numero > 0.99 Then
Letras = Letras & " Y "
End If
End If
End If
'*---> Unidades
If (Numero < 10) And (Numero > 0.99) Then
Letras = Letras & Numeros(Int(Numero))
Numero = Numero - Int(Numero)
End If
Loop Until (Numero = 0)
'*---> Decimales
If (Decimales > 0) Then
Letras = Letras & " con "
Letras = Letras & Format(Decimales * 100, "00") & " €"
End If
num_letras = Letras
End Function


gracias

formula=num_letras(123) o la celda q sea
  #2 (permalink)  
Antiguo 03/11/2006, 13:13
Colaborador
 
Fecha de Ingreso: agosto-2004
Mensajes: 1.611
Antigüedad: 19 años, 8 meses
Puntos: 47
Copia el bloque de las "centenas" al final de la macro!
  #3 (permalink)  
Antiguo 03/11/2006, 13:16
Colaborador
 
Fecha de Ingreso: agosto-2004
Mensajes: 1.611
Antigüedad: 19 años, 8 meses
Puntos: 47
Corrijo:
Copia el bloque de las decenas y ajusta la macro al final en los "decimales".
  #4 (permalink)  
Antiguo 06/11/2006, 05:32
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Aun No Me Sale

Por K No Me Pones El Final Es K No Se K Es Lo K Dices, Te Lo Agradeceria Muxo.

Desde Los Decimales Y Como Se Cierra El Macro Asi.

Muxas Gracias
  #5 (permalink)  
Antiguo 09/11/2006, 04:53
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Espero La Respuesta De Alguiennnnnnnnnnn
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:34.