Siguiendo con nuestras lecciones de código VBA, vamos a ver un ejemplo de la función Inputbox. Para ver este ejemplo, vamos a partir de una sencilla plantilla que se encarga de presentar la amortización de un préstamo. Nuestro objetivo va a ser que, mediante un botón aparezcan unas serie de ventanas que nos pedirán información sobre las condiciones contractuales del préstamo (capital concedido, número de cuotas e interés periodal) y lo que escribamos en dichas ventanas se traspase a unas celdas concretas en la plantilla Excel. Esto es muy útil si el usuario final que luego introducirá los datos no tiene conocimientos de Excel y no sabe que celdas debe modificar.
Las fórmulas que hay detrás de esta tabla, aunque no son relevantes para el desarrollo de nuestra explicación de la función Inputbox, son las siguientes:
En la columna A, vamos a establecer el número de cada una de las cuotas por lo que hemos escrito en A12 el número «1» y a continuación en A13 la fórmula condicional que escribimos es la siguiente «=SI(A12=$C$4;»»;SI(+A12=»»;»»;+A12+1))» la cual significa que si la cuota anterior es igual al número máximo de cuotas establecido en el préstamo (C4) o es una celda vacía, no se inserta ningún dato, mientras que si no es así suma una unidad al número de cuota anterior.
En la columna B, corresponde al interés a pagar que no es más que el capital vivo existente después de satisfacer la cuota anterior multiplicado por el tipo de interés periodal. La única salvedad que hemos establecido es que no nos rellene ningún dato si el número para cuotas siguientes a la del vencimiento del préstamo. Así en B13 hemos escrito =SI(A13>$C$4;»»;E12*$C$5)
En la columna C corresponde a la cantidad que se amortiza en cada cuota, y esto no es más que la diferencia entre la cuota satisfecha total (calculada en C7 mediante la función pago y copiada a la columna D) y los intereses a pagar en la cuota. La fórmula escrita es la siguiente =SI(ESNUMERO(A13);D13-B13;»») , donde la único a destacar es la introducción del comando esnumero(n) que hemos optado en vez de la condición A13>C4
Por último en la columna E, hemos puesto el capital pendiente de amortizar después de satisfacer la cuota. Esto no es más que el capital vivo en la cuota anterior menos la cantidad amortizada en la cuota anual. Como en los casos anteriores, introducimos la cláusula que nos asegura que no se rellenan cuotas después de que el préstamo haya vencido: =SI(ESNUMERO(A13);E12-C13;»»)
Aclaradas estas matizaciones, vamos a crear un botón de comando ActiveX desde la pestaña de Programador/Desarrollador que insertaremos en cualquier lugar de la hoja activa.
Una vez le hayamos dado el tamaño adecuado, haremos doble clic sobre el mismo para acceder a la ventana del editor de Visual Basic. En la misma, se habla establecido un procedimiento Sub para cuando se haga clic sobre el botón.
Vamos a situarnos entre la línea Private Sub y End Sub, para escribir el código que queremos que se ejecute al pulsar el botón creado. Lo primero que vamos hacer es definir una variable que vamos a llamar «Capital», esto lo haremos mediante la instucción Dim y luego estableceremos de qué tipo de variable se trata, en nuestro caso como queremos que sea un número con decimales será del tipo «single»:
Dim Capital As Single
Con esto habremos creado la variable «Capital». Ahora escribiremos debajo de esta línea lo siguiente:
Capital = InputBox(«¿Cuánto asciende el capital prestado?», «Cantidad otorgada»)
Lo introducido entre los corchetes de la función Inputbox corresponde al mensaje que queremos que aparezca y al título de la ventana que nos aparecerá. El mensaje contendrá una descripción suficientemente clara sobre el dato que queremos que se introduzca.
Luego definiremos en qué celda queremos que nos escriba el valor que hemos escrito en la ventana:
ActiveSheet.Range(«c3») = Capital
Haremos lo propio para el número de cuotas y el tipo de interés periodal, quedando el código como se ve en la imagen siguiente:
Hemos tenido cuidado en establecer el número de cuotas como un número entero y además hemos creado la orden al principio del código para que nos borre los datos que hubiera antes en el rango de celdas C3:C5 .
Cuando hagamos clic sobre el botón que hemos creado, se ejecutará la macro solicitándonos la información necesaria para cumplimentar la plantilla.
Descubre más desde Asiento descuadrado
Suscríbete y recibe las últimas entradas en tu correo electrónico.