Llevo días tratando de encontrar una solución a un problema con mi Userform. Seguro que hay una forma sencilla de solucionarlo pero estoy “desesperado”.
En un Formulario donde meto facturas hay:
TextBox1: Base, donde tecleo una cifra, por ejemplo 127
ComboBox1: %IVA, donde selecciono por ejemplo 21%
TextBox2: Cuota, donde mediante formulas aparece el 21% de 127, es decir, 26,67
TextBox3: Total, donde mediante formulas aparece la suma, es decir, 153,67
¿Como se puede hacer para que a medida que voy indroduciendo los datos en el UserForm, pueda sobreescribir o machacar la cifra que la formula me calcula en el TextBox2 o TextBox3?
Es decir, para que coincida con el importe exacto de la factura en papel, poder machacar ese 26,67 por un 26,68 por ejemplo, o ese 153,67 por un 153,68…
Esto es muy común en programas comerciales de contabilidad etc… pero no veo la forma de como hacerlo con VBA.
Muchisimas gracias
Eso lo tendrías que hacer en los eventos KeyDown, KeyPress o KeyUp, dependiendo de cómo lo quieras implementar.
Si lo haces en el evento Change, este no se lanzará hasta que no termines de escribir y pulses enter o cambies el foco a otro elemento.
Deberías controlar programáticamente que no se puedan introducir valores no numéricos, o que si se introducen valores erróneos (por ejemplo un número con dos comas), no te lance el error.
Un saludo
Gracias CRON por la respuesta, realmente no tenía problema con que se desencadenara el calculo, lo había desencadenado con el evento ENTER.
Mi problema era que después de que se autocalculaba el importe, no de dejaba corregir la cifra del calculo de la formula.
He encontrado la solución, y la pongo por si alguien alguna vez acaba por aqui buscando una solución.
Ir a Propiedades del Textbox y el LOCKET =FALSE
Saludos
Gracias por compartir.
La verdad, no se me había ocurrido porque el valor por defecto de LOCKED es false.
Un saludo