Esto viene a cuento de una consulta realizada por "Luismi" <[email protected]> sobre cómo usar la clase de conversión de números a letras en una hoja de Excel o en un documento de Word, para poder convertir automáticamente números a letras. Sólo lo he probado en Excel, me imagino que en Word se procederá de la misma forma... es que esto de las "macros" es algo que nunca he utilizado, salvo para probar...
He aquí la respuesta a su consulta:
Para poder usar la clase cNum2Text, (o cualquier otra), tendrás que crear una macro en Excel o Word (yo lo he probado en Excel, aunque me imagino que en Word será igualmente fácil de hacer)
Para crear una macro (de código VB) en Excel:
Del menú Herramientas, selecciona el submenú Macro y pulsa en la opción Macros...
Te mostrará un cuadro de diálogo.
Escribe el nombre que le quieres dar a la macro, usa uno que no exista, por ejemplo Num2Texto
Pulsa en el botón Crear y te mostrará un entorno al estilo del de Visual Basic, con un módulo creado en el que estará el Sub Num2Texto, déjalo como está, que ahora cambiaremos este procedimiento.Añade al proyecto el módulo de clase cNum2Text.cls
Modifica el procedimiento creado en el módulo1, para que sea una función que devuelva el número convertido en letras:
Function Num2Texto(ByVal Numero As String) As String Dim tNum2Text As cNum2Text Set tNum2Text = New cNum2Text ' Num2Texto = tNum2Text.Numero2Letra(strNum:=Numero, SexoMoneda:=Masculino) Num2Texto = tNum2Text.Numero2Letra(Numero) Set tNum2Text = Nothing End FunctionDespués en la casilla en la que quieras convertir el número a letras, añade la fórmula al estilo habitual:
=Num2Texto(A1)
Si necesitas más parámetros, añadeselos, pero recuerda que en Excel, estos deben ir separados por punto y coma en lugar de por comas, aunque en la función o procedimiento si que se deberán separar por comas.
Por ejemplo, una función que suma dos números y devuelve el resultado:
Se usaría de esta forma:
=suma2(A1;A2)Y se codificaría de esta otra (que es la habitual en Visual Basic):
Public Function Suma2(a, b) Suma2 = a + b End Function
Nos vemos.
Guillermo