Correo electrónico: william [punto] koalasoft [arroba] gmail [punto] com
Sitio de Red: https://koalasoft.wordpress.com
Jabber ID: koalasoft@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.5
© 2006-2008 William López Jiménez. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
Para poder convertir Números a letras deberá realizar los siguientes pasos:
CONFIGURACIÓN
- Abra la hoja de Cálculo de OpenOffice.org
- Vaya al menú Herramientas y luego a Macro (ver imagen)
- Elija “Organizar Macros..”
- Después elija OpenOffice.org Basic,
- Elegir “NUEVO”
- Elimine las lineas de código que aparecen.
- Pegue el código correspondiente.
- Guardar el código.
- Ahora ya se puede usar la macro en la hoja de calculo (y probablemente en otras partes de OpenOffice)
- Elija el menú «Archivo» y luego «Cerrar»
PRUEBA
- Abra una hoja de cálculo nueva.
- Teclee un valor en alguna celda, ej. 123 en la celda A1 y presione ENTER
- Luego en la celda (A2) teclee: =NUMLET(A1) y presione ENTER
Aparecerá: CIENTO VEINTITRÉS.
Y listo .. puedes codificarlo a tu gusto.!!
CÓDIGO DEL MACRO
Public Function NumLetras(ByVal Numero As Double, ByVal Mayusculas As Boolean) As String Dim NumTmp As String Dim co1 As Integer Dim co2 As Integer Dim pos As Integer Dim dig As Integer Dim cen As Integer Dim dec As Integer Dim uni As Integer Dim letra1 As String Dim letra2 As String Dim letra3 As String Dim Leyenda As String Dim Leyenda1 As String Dim TFNumero As String Dim Mayusculas As Boolean If Numero 1 Then Leyenda = "billones " End If Case 2 If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then Leyenda = "mil millones " ElseIf cen + dec + uni >= 1 Then Leyenda = "mil " End If Case 3 If cen + dec = 0 And uni = 1 Then Leyenda = "millon " ElseIf cen > 0 Or dec > 0 Or uni > 1 Then Leyenda = "millones " End If Case 4 If cen + dec + uni >= 1 Then Leyenda = "mil " End If Case 5 If cen + dec + uni >= 1 Then Leyenda = "" End If End Select co1 = co1 + 1 TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda Leyenda = "" letra1 = "" letra2 = "" letra3 = "" Loop If Val(NumTmp) = 0 Or Val(NumTmp) 0 Then cTexto = "veinti" End If Case 3: cTexto = "treinta " Case 4: cTexto = "cuarenta " Case 5: cTexto = "cincuenta " Case 6: cTexto = "sesenta " Case 7: cTexto = "setenta " Case 8: cTexto = "ochenta " Case 9: cTexto = "noventa " Case Else: cTexto = "" End Select If uni > 0 And dec > 2 Then cTexto = cTexto + "y " Decena = cTexto cTexto="" End Function Private Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String Dim cTexto As String If dec 1 Then Select Case uni Case 1: cTexto = "un " Case 2: cTexto = "dos " Case 3: cTexto = "tres " Case 4: cTexto = "cuatro " Case 5: cTexto = "cinco " End Select End If Select Case uni Case 6: cTexto = "seis " Case 7: cTexto = "siete " Case 8: cTexto = "ocho " Case 9: cTexto = "nueve " End Select Unidad = cTexto cTexto="" End Function 'Funcion que convierte al plural el argumento pasado Private Function Plural(ByVal Palabra As String) As String Dim pos As Integer Dim strPal As String If Len(Trim(Palabra)) > 0 Then pos = InStr(1, "aeiou", Right(Palabra, 1), vbTextCompare) If pos > 0 Then strPal = Palabra & "s" Else strPal = Palabra & "es" End If End If Plural = strPal End Function
Este código ha sido probado en OpenOffice.org 2.0 funciona perfectamente y posiblemente también en MS Office.
Codigo fuente de Ing. Mauricio Flores Olmos – 2000-2004
** email: mfolmos@prodigy.net.mx
Para cualquier aclaración respecto al código mostrado, favor de reportarlo al correo antes mencionado.
Convertir números en palabras con Excel 2010 (macro VBA)
Para utilizar este macro a través de una función, ingresa al editor de Visual Basic (VBA) presionando alt + F11, luego inserta un nuevo módulo
'----------------------------------------------------------------- Function Num_texto(Numero) Dim Texto Dim Millones Dim Miles Dim Cientos Dim Decimales Dim Cadena Dim CadMillones Dim CadMiles Dim CadCientos Texto = Numero Texto = FormatNumber(Texto, 2) Texto = Right(Space(14) & Texto, 14) Millones = Mid(Texto, 1, 3) Miles = Mid(Texto, 5, 3) Cientos = Mid(Texto, 9, 3) Decimales = Mid(Texto, 13, 2) CadMillones = ConvierteCifra(Millones, 1) CadMiles = ConvierteCifra(Miles, 1) CadCientos = ConvierteCifra(Cientos, 0) If Trim(CadMillones) > "" Then If Trim(CadMillones) = "UN" Then Cadena = CadMillones & " MILLON" Else Cadena = CadMillones & " MILLONES" End If End If If Trim(CadMiles) > "" Then Cadena = Cadena & " " & CadMiles & " MIL" End If If Trim(CadMiles & CadCientos) = "UN" And Not Cientos = "000" Then Cadena = Cadena & "UNO CON " & Decimales & "/100" Else If Miles & Cientos = "000000" Then Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales & "/100" Else Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales & "/100" End If End If Num_texto = Trim(Cadena) End Function '----------------------------------------------------------------- Function ConvierteCifra(Texto, SW) Dim Centena Dim Decena Dim Unidad Dim txtCentena Dim txtDecena Dim txtUnidad Centena = Mid(Texto, 1, 1) Decena = Mid(Texto, 2, 1) Unidad = Mid(Texto, 3, 1) Select Case Centena Case "1" txtCentena = "CIEN" If Decena & Unidad <> "00" Then txtCentena = "CIENTO" End If Case "2" txtCentena = "DOSCIENTOS" Case "3" txtCentena = "TRESCIENTOS" Case "4" txtCentena = "CUATROCIENTOS" Case "5" txtCentena = "QUINIENTOS" Case "6" txtCentena = "SEISCIENTOS" Case "7" txtCentena = "SETECIENTOS" Case "8" txtCentena = "OCHOCIENTOS" Case "9" txtCentena = "NOVECIENTOS" End Select Select Case Decena Case "1" txtDecena = "DIEZ" Select Case Unidad Case "1" txtDecena = "ONCE" Case "2" txtDecena = "DOCE" Case "3" txtDecena = "TRECE" Case "4" txtDecena = "CATORCE" Case "5" txtDecena = "QUINCE" Case "6" txtDecena = "DIECISEIS" Case "7" txtDecena = "DIECISIETE" Case "8" txtDecena = "DIECIOCHO" Case "9" txtDecena = "DIECINUEVE" End Select Case "2" txtDecena = "VEINTE" If Unidad <> "0" Then txtDecena = "VEINTI" End If Case "3" txtDecena = "TREINTA" If Unidad <> "0" Then txtDecena = "TREINTA Y " End If Case "4" txtDecena = "CUARENTA" If Unidad <> "0" Then txtDecena = "CUARENTA Y " End If Case "5" txtDecena = "CINCUENTA" If Unidad <> "0" Then txtDecena = "CINCUENTA Y " End If Case "6" txtDecena = "SESENTA" If Unidad <> "0" Then txtDecena = "SESENTA Y " End If Case "7" txtDecena = "SETENTA" If Unidad <> "0" Then txtDecena = "SETENTA Y " End If Case "8" txtDecena = "OCHENTA" If Unidad <> "0" Then txtDecena = "OCHENTA Y " End If Case "9" txtDecena = "NOVENTA" If Unidad <> "0" Then txtDecena = "NOVENTA Y " End If End Select If Decena <> "1" Then Select Case Unidad Case "1" If SW Then txtUnidad = "UN" Else txtUnidad = "UNO" End If Case "2" txtUnidad = "DOS" Case "3" txtUnidad = "TRES" Case "4" txtUnidad = "CUATRO" Case "5" txtUnidad = "CINCO" Case "6" txtUnidad = "SEIS" Case "7" txtUnidad = "SIETE" Case "8" txtUnidad = "OCHO" Case "9" txtUnidad = "NUEVE" End Select End If ConvierteCifra = txtCentena & " " & txtDecena & txtUnidad End Function
Modo de uso:
Debes colocar la función =Num_Texto([NUMERO])
, donde “[NUMERO]” es la celda que contiene la cifra en formato numérico o el número en sí, por ejemplo
=Num_Texto(14)
>> el resultado sería: “CATORCE”=Num_Texto(A1)
>> el resultado sería: “CATORCE”, si A1 contiene el número 14
Fuente: http://combito.com/convertir-numeros-en-palabras-con-excel-2010-macro-vba/
no corre ya lo probé sale error en el tema del numero
Me gustaMe gusta
Hola, tengo un error, al pegar el código me señala la línea
If Numero 1 Then
me marca «Numero» y me dindica que se esperaba Then.
Me gustaMe gusta
No se ejecuta, marca:
Error de sintaxis de BASIC.
Se esperaba: Then.
Me gustaMe gusta
Muy buen artículo gracias, también hay una APP Android para usar en celulares y tabletas, que convierte números a palabras, ideal para corroborar o escribir rápidamente y en donde quiera que estemos, números en palabras ya sea para cheques, contratos o en documentos importantes, esta APP esta disponible en:
https://play.google.com/store/apps/details?id=net.sabro.numerosaletras
Me gustaMe gusta
Interesante aplicación gracias por compartir.
Me gustaMe gusta