Buenos días, serian tan amables de poderme enviar la rutina para convertir un valor numero, en texto para el script de impresión de un cheque gracias mi e-mail es [email protected].
Espero que te sirva esto es para crear por ejemplo precios en numerois a Letras ! Necesitas labels, textbox, y botones Para utilizar una de estas funciones, simplemente se crea un objeto a nivel de modulo (por ejemplo el formulario que emplea la función en particular) y se invoca como método del objeto. Aunque puede que prefiera usar como una simple función, al hacer las clases GlobalMultiUse. Normalmente usaremos solo conversión a español o solo conversión a ingles. Esta es una de las razones por las que empaquete el código en clases diferentes. Siempre prefiero un código ordenado, sin embargo, la conversión a Español, es tan heterogénea, que resulta imposible un código limpio. - ¿A quién se le ocurrió que Veinte y Tres se debiera escribir como Veintitrés?. Realmente en este case es más practico el idioma ingles. En fin, todos los caso están dados. Este es un ejemplo para usar la conversión a Español. Digamos un Formulario con un TextBox (txt_Valor), y un Label (lbl_NumeroEnPalabras), para mostrar el valor en palabras, depuse que el usuario da [Enters] a la caja de entrada. Option Explicit Private Const Moneda = "Dólares" Private sw As cls_NumSpanishWord Private Sub Form_Initialize() Set sw = New cls_NumSpanishWord End Sub Private Sub Form_Terminate() Set sw = Nothing End Sub Private Sub txt_Valor_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then lbl_NumeroEnPalabras = sw.ConvertCurrencyToSpanish(txt_Valor, Moneda) End If End Sub Realmente es muy simple. Como característica particular ConvertCurrencyToSpanish incluye el parámetro opcional FeminineGenerous, el cual será útil para las monedas cuyo genero es femenino, por ejemplo Pesetas (estaría mal decir Trescientos Pesetas, lo correcto sería Trescientas Pesetas). Para usar como componente, simplemente compile el proyecto DLL com_NumbersToWords. Luego creamos la referencia (el nombre de la referencia es Library Numbers To Words) en el programa de gestión que empleara el componente (Soluciones Visual Basic, Access, Word, etc.) Como Clases Globales Si se va a emplear en varios formularios, o en aplicaciones de Access, - por ejemplo, es convneniente cambiar la propiedad Intancing de la Clase a 6-GlobalMultiUse. Esto permitirá la utilización de las funciones sin crear el objeto explicitimante. Por ejemplo, en una de mis aplicaciones de Access, aparece la instrucción: Private Sub Valor_AfterUpdate() lblValorLetras.Caption = ConvertCurrencyToSpanish( _ [Valor], _ IIf([Tipo de Moneda] = DOLARES, "Dólares", "Pesos")) End Sub Valor es un combre de campo tipo moneda, y Tipo de Moneda es otro campo para definir el moneda con que se almacena el campo. En Word también tiene cabida el componente. Primero que todo abrimos el editor VB de Word (Alt+F11) y creamos la Referencia al la DLL (igual que en Visual Basic). Generalmente lo que hago para Word es por ensayo y error, hasta que doy con lo que quiero. Por ejemplo que le parece - ¿Escribir un número, luego seleccionar el número (doble-clic), y dar clic a un botón de un Toolbar, y que el número se convierta en palabras?. Pues lo logre. El código en el proyecto NORMAL, módulo NewMacros, debe aparecer: Sub NumerosPalabras() ' ' NumToWords Macro ' Números a Palabras ' Selection.Text = ConvertCurrencyToSpanish(Selection.Text, "Pesos") End Sub La forma de crear el botón en una Toolbar personalizada se lo dejo de tarea. Lo importante es que se puede. Si tienes preguntas contáctame! ATT: RIMT07 "no sete olvide finalizar la pregunta"
Muchas gracias por la respuesta, no te había contestado porque no estaba en la ciudad. Lo voy a utilizar y si tengo algún problema te cuento, Gracias.