Conectar un formulario de VBA con Excel es una tarea sencilla pero requiere de ciertos conocimientos y orden para poder llevarlo a cabo.
Creación de un formulario
Lo primero de todo que necesitaremos hacer será crear un formulario sencillo en VBA. Para eso debes ir al editor de Visual Basic y crear el formulario. Si no te aclaras muy bien con esta parte échale un vistazo al siguiente artículo para despejar todas las dudas:
Una vez que tengas el formulario creado lo normal será ponerle algunas etiquetas del nombre o el título o los campos que quieres rellenar, para ello deberás crear tantos controles de tipo “Label” como te hagan falta y formatearlos a tú gusto. Si quieres aprender más sobre el elemento “Label” mira este completo tutorial sobre el control Label en formularios.
Como puedes ver en la siguiente imagen, hemos creado un formulario con 4 controles Label:
Control TextBox
El control de tipo TextBox me permite rellenar datos en un formulario. De esta manera podría tener un formulario que pida Nombre, Apellidos y Ciudad. Para ello, necesitaremos unas “cajitas” donde el usuario pueda escribir. Estas “cajitas” en VBA las llamaremos TextBox, es decir, cajas de texto en su traducción literal.
Insertar un TextBox en el formulario
Para insertar un TextBox en nuestro formulario de VBA, seleccionaremos nuestro formulario y aparecerá una ventana con varias herramientas como al de la siguiente imagen:
y elegiremos el control que está dentro de un recuadro en rojo:
Este control que estamos seleccionando es nuestro TextBox.
Después pondremos el TexBox en nuestro formulario y le daremos el aspecto que queramos. Si repetimos esta acción tres veces tendremos el siguiente resultado:
Como puedes ver, el formulario ya se parece mucho a los que vemos en otros programas o páginas web. Para ver como queda realmente en Excel selecciona el formulario y haz click en el botón F5.
Como ves, ya no vemos las guías de puntos que veíamos en el editor de VBA. Si quieres, prueba a escribir tú Nombre, Apellido y Ciudad. El resultado siempre se queda ahí aunque todavía no hayamos indicado donde lo queremos guardar. Para salir de esta de VBA ventana haz clic en la “x” con recuadro rojo de la esquina superior derecha.
Propiedades de TextBox
Los TextBox tienen varias propiedades pero la principal propiedad que vamos a usar es “Value”. Esta propiedad nos permite saber el texto que se ha escrito en el TextBox. Para saber lo que un usuario ha escrito usaremos la sentencia:
TextBox1.Value
Donde TextBox1 es el nombre del TextBox. Por defecto es así (o TextBox2, o TextBox3…) a no ser que lo cambiemos en la barra de propiedades.
Conectar un formulario de VBA con Excel con TextBox
Este es el paso crítico. Una vez que hayamos rellenado la información en todos los TextBox necesitaremos un botón para indicarle a Excel que queremos guardar dicha información en una hoja de Excel en concreto en unas celdas en concreto.
Para ello añadimos un botón desde el panel de herramientas de VBA y le cambiamos el nombre para llamarlo “Aceptar”.
Una vez añadido el botón “Aceptar” haremos doble click sobre el en el editor de VBA para ver la parte de código donde deberemos escribir las sentencias de código para traspasar nuestros valores de los TextBox a ciertas celdas de nuestra hoja. Al darle doble click lo que veremos es que se abre una ventana como la siguiente:
Donde se ha creado automáticamente una macro que se llama CommandButton1_Click. Esta macro se activará cuando hagamos click sobre el botón que por defecto se llama CommandButton1. Si por algún motivo cambiamos el nombre del botón deberemos cambiar también el nombre de la macro.
Supongamos que queremos que los valores de nuestra formulario vayan todos a una hoja que se llama “Datos” y en la fila 6. El código que usaremos será:
Sheets("Datos").Cells(6, 1) = TextBox1.Value Sheets("Datos").Cells(6, 2) = TextBox2.Value Sheets("Datos").Cells(6, 3) = TextBox3.Value
De esta manera nuestra macro quedará de la siguiente manera:
Pero si, al darle al botón de Aceptar queremos que también se cierre la ventana del formulario podremos añadir la sentencia:
Unload Me
Descarga este ejemplo
Como este ejemplo para conectar un formulario de VBA con Excel es muy interesante y puede ser algo complejo os dejamos el enlace del ejercicio para que puedas descargarlo y comprobar toda esta funcionalidad por ti mismo.
[sociallocker]
Formulario TextBox conectado con Excel
[/sociallocker]