¿Cómo convertir una cifra escrita con números a letras?

Hola, tengo que preparar unos contratos para más o menos 400 trabajadores, los hago conbinando el contrato con la base de datos de los trabajadores, pero allí tengo los sueldos en números y en los contratos debo escribirlos también en letras, sabes si hay alguna forma de hacerlo que no sea manual, uno por uno.

1 Respuesta

Respuesta
1
Te voy a dejar todo el procedimiento porque en Excel no es posible, Microsoft ha creado un módulo en VBA para hacerlo desde una librería dinámica que puedes descargarte, tu no solo quieres pasar números a texto sino que necesitas armar cantidades en una expresión me explico:
Sueldo del trabajador= 856 tu no quieres que al cambiar salga Ocho Cinco Seis, sino que necesitas que ponga Ochocientos cincuenta y seis . Aquí te dejo toda la instrucción y como utilizarla:
Convertir números a letras en Excel
Ya que mediante el formato de Excel no es posible, la solución puede ser crear un módulo de Visual Basic que nos realice el trabajo. Afortunadamente, Microsoft nos ofrece otra alternativa en su página web del área de descarga de Excel. Se trata de utilizar una función llamada Recibo, que se encuentra en una librería dinámica y que puede llamarse desde Excel definiendo una función.
Veamos los pasos a seguir:
   1.
      Descargamos a nuestro disco duro el archivo E10467.EXE de la dirección
http://server-die.alc.upv.es/alumno/software/W95/Parches95.htm
Pincha encima del enlace del nombre del archivo. Cuando lo tengas descargado creas una carpeta por ejemplo en C:\Mis Documentos\Carpeta y pulsas en el archivo descagado doble click te aparecerá una ventana de WinZip para extraer los 2 archivos en la ventana de la ruta donde extraerlo pones la ruta que antes hemos puesto.
   2.
      El archivo E10467.EXE contiene dos archivos empaquetados: DLLTCAST.DLL y E10467.DOC. El primero es la librería dinámica que contiene la función Recibo y el segundo es un archivo de Word con las instrucciones para utilizar en Excel la función. Ejecutamos el archivo E10467.EXE y copiamos el archivo DLLTCAST.DLL a la carpeta c:\windows\system de nuestro disco duro.
   3.
      Arrancamos Excel y en un nuevo libro o en el que necesitemos utilizar la conversión de números a letras, insertamos un nuevo módulo de Visual Basic. En Excel 2000 mediante el menú Herramientas--Macro--Editor de Visual Basic y a continuación ejecutando en este editor el comando Insertar--Módulo.
   4.
      Escribimos el código siguiente en el módulo:
      Declare Sub Recibo Lib "dlltcast.dll" (cifra As Long, ByVal texto As String)
          Function letras(minumero)
          Dim texto As String * 255
          Dim cifra As Long
          texto = String(255, 0)
          cifra = CLng(minumero)
          Call Recibo(cifra, texto)
          letras = texto
          End Function
   5.
      Guardamos el libro de trabajo y cerramos el editor de Visual Basic. Probamos a utilizar la función en la hoja de cálculo en la que hemos definido la función escribiendo =letra(Número). Siendo número un valor numérico o una referencia de celda que contenga un número. Por ejemplo: =letra(56789) o =letra(B2).
En el archivo de Word E10467.DOC podemos ver la forma de utilizar la función desde cualquier hoja de cálculo sin tener que definirla nuevamente.
Funciona perfectamente, si después de la coma 560,43 tienes decimales si no pasan de 50 te pondrá 560 y si pasa de 50 pondrá 561.
Más no te puedo ayudar, y si son tantos contratos merece la pena esta labor que por otro lado no te llevará más de 10 minutos tenerla funcionando.
>Un saludo
>Julio
Si te ha servido puntúa y fianliza la consulta, si necesitas alguna aclaración, pues aquí me tienes.
Hola, mil gracias por la ayuda, ya lo hice y funciono perfecto, afortunadamente no tengo cifras con decimales, lo que si me sorprendió fue que me da las cifras en femenino por ejemplo para 300 me da trescientas, pero nada pensó usar buscar y reemplazar para cambiarlo.
Te tengo una pregunta adicional, me da las cifras en letras minúsculas, como las paso a mayúsculas en Excel.
Saludos,
Andrea
Después de la linea de código penúltima (letras = texto) pones esta otra linea para que escriba en mayúsculas:
letras = UCase(letras)    
Si alguna vez quisieras lo contrario minúsculas el codigo sería este:
letras = LCase(letras)       
Espero haberte ayudado, si es así puntúa y finaliza la consulta. Gracias.
>Un saludo
>Julio
PD: Imagino que esta función por la antigüedad fue creada cuando nuestra modena (España) era "la peseta", por ello la pusieron en femenino.
Excelente solución Experto, mil gracias! Te tendré en cuenta cada vez que tenga problemas con Excel. Me diste la solución en el tiempo justo. GRACIAS!
Gracias también a los creadores de este sitio, es de mucha ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas