0% encontró este documento útil (0 votos)
287 vistas5 páginas

Userforms en Excel Con VBA

El documento describe cómo crear formularios de usuario (userforms) en Excel usando Visual Basic para Aplicaciones (VBA). Estos formularios permiten diseñar interfaces gráficas de usuario personalizadas. Se explica el proceso de crear un formulario para insertar registros en una tabla de Excel, incluyendo agregar controles, asignar funcionalidad a botones, y usar macros para generar código VBA.

Cargado por

Eder Legua
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
287 vistas5 páginas

Userforms en Excel Con VBA

El documento describe cómo crear formularios de usuario (userforms) en Excel usando Visual Basic para Aplicaciones (VBA). Estos formularios permiten diseñar interfaces gráficas de usuario personalizadas. Se explica el proceso de crear un formulario para insertar registros en una tabla de Excel, incluyendo agregar controles, asignar funcionalidad a botones, y usar macros para generar código VBA.

Cargado por

Eder Legua
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Userforms en Excel con VBA

Los userforms proporcionan un mecanismo para disear y desarrollar interfaces grfica de


usuario basadas en VBA (Visual Basic for Applications) en Excel.
Estuvimos creando en la clase anterior una interfaz como la siguiente para insertar registros en
una tabla Excel.

Importamos los nombres de los equipos de alguna fuente web donde estuvieran
disponibles.

Convertimos este conjunto de datos en tabla, dotndola de un nombre como Clubes.

Creamos la tabla Calendario en la que se irn almacenando los partidos disputados o


planificados, con los datos que se muestran en la imagen.

Creamos el esqueleto de un userform inicial mediante la ficha del Programador >Visual


Basic; desde la ventana de visual basic, men Insertar > UserForm. De este modo nos
aparece el userform con el contenido por defecto:

A partir de ah, vamos arrastrando controles del cuadro de herramientas al


userform. En nuestro caso, dos cuadros combinados para los equipos local y visitante,
dos botones de opcin para indicar si el partido ya se ha disputado yreas de
texto con controles de nmero para ir introduciendo el nmero de goles del equipo local
y visitante, adems del botn correspondiente para aceptar la insercin del partido. Junto
a ello, las pertinentes etiquetas para mostrar al usuario qu informacin introducir o
seleccionar en cada control.

Pinchando sobre el formulario y los distintos controles se activa la informacin


correspondiente a las Propiedades del elemento seleccionado en cada momento, donde
establecemos datos como el nombre para el formulario o control, el color de fondo, etc.

Como comentamos, resulta interesante establecer convenciones para los nombres de los
controles, como empezar por Frm en el caso de los formularios, por Cmb los cuadros
combinados, Opt los botones de opcin, Txt las reas de texto, Num los controles de
nmero, Btn los botones o Lbl las etiquetas (del ingls Label), entre otras. De esta forma
podremos encontrar rpidamente el nombre de nuestro control en cuanto comencemos a
escribir en el cdigo sus primeras letras siguiendo estas convenciones.

Ya tenemos un primer formulario con una determinada, pero debemos llamarlo desde
nuestra hoja Excel. Para ello, podemos volver a la hoja Excel e insertar en un botn de
formulario o alguna otra forma que nos permita asignar la accin correspondiente a abrir
el formulario. Elegimos Insertar > Forma > Rectngulo redondeado, quedando como
vemos en la imagen del principio de este post. Con botn derecho sobre esta forma
podemos establecer el texto que aparecer, y tambin Asignar macro, donde podemos
poner un nombre a la accin que se lanzar desde nuestra forma redondeada, y pulsar en
Nuevo. Esto nos llevar al cdigo VBA, digamos subrutina (Sub), donde podemos
indicar como accin que se nos muestre nuestro formulario. Como vemos, lo realiza el
procedimiento o mtodo Show sobre nuestro userform FrmCalendario.

Si guardamos lo que llevamos hecho, cerramos la ventana de Visual Basic y volvemos a


nuestra hoja, ya podemos pulsar en el botn y se abrir nuestro formulario.

A partir de aqu, habr que crear la funcionalidad correspondiente a los controles y


botones del formulario, de forma similar a lo explicado en el vdeo anterior. Para ello,
habr que volver a la ventana de visual basic, y completar varios pasos:

Para asociar los datos que deben aparecer en los cuadros combinadosde los
clubes, debemos seleccionar el cuadro correspondiente y, en Propiedades, escribir
en RowSource el nombre de nuestra tabla con los equipos (en este caso Clubes).

Para actualizar los cuadros de texto con los goles seleccionados en los respectivos
controles de nmero, pulsando doble click sobre cada uno de los controles nos
crea directamente una seccin de cdigo, de nuevo Sub, donde podemos indicar el
cdigo a ejecutar cada vez que se modifica el valor del control de nmero (cada
vez que pulse el usuario). En este caso, lo que hacemos es asignar el valor del
control al rea de texto, como se ve en la imagen, para cada control.

Continuando con nuestro ejemplo de userforms VBA en Excel, lo que requerimos que
haga nuestro formulario es insertar un registro en la tabla Calendario. Para llevar a

cabo este proceso, podemos apoyarnos en la funcionalidad de grabacin de macros de


Excel, y ver el cdigo que se generara si realizamos el proceso de forma automtica.
De esta forma, no necesitaremos conocer a priori los detalles de todo el cdigo a
generar, aunque siempre sea recomendable conocerlo en la mayor medida posible.
En cualquier caso, la grabacin facilitar la tarea. Seguimos los pasos:
1. Iniciamos la grabacin de la macro.
2. Ya iniciada, nos situamos en la cabecera de la tabla, en la primera columna.
3. Pulsamos la combinacin de teclas Ctrl + Flecha abajo, situndonos en el ltimo registro
(fila) introducido.
4. Pulsamos la flecha hacia abajo, para escribir en la primera fila posterior a la tabla.
5. Escribimos cualquier texto en la celda, y nos desplazamos hacia la derecha con el
tabulador, volviendo a escribir otro texto cualquiera en la siguiente celda. Como vemos,
esto crea una nueva fila en la tabla, que es lo que queramos.
6. Paramos la macro con el botn de Stop.
El texto generado contendr instrucciones que nos interesar, y otras que veremos
que no nos son de utilidad.

As, podemos intuir que la primera instruccin selecciona la primera columna dentro
de la cabecera de nuestra tabla, y la segunda hace el efecto de situarnos al final de
esa columna de la tabla. Lo que queremos es desplazarnos debajo del ltimo registro
introducido, luego podremos desplazarnos hacia abajo una fila. Como vemos, la
tercera instruccin no realiza esto con carcter general, sino que nos sita en una
posicin fija, cuando nuestro botn de Aceptar deber desplazarse una posicin
abajo, variando conforme vayamos aadiendo registros. Por ello, esa instruccin no
nos servir, y en lugar emplearemos ActiveCell.Offset(1, 0).Select. En cualquier caso,
podemos copiar el cdigo generado por la macro, volver a nuestro userform en la
ventana de VBA, hacer doble click sobre el botn Aceptar y pegar el cdigo. A partir
de ah, vamos usando offset para desplazarnos y los valores de las celdas y controles
para escribir la informacin del formulario en las celdas correspondientes. El resultado
es el que vemos a continuacin:

Para el botn cancelar, lo nico que tenemos que hacer es volver al userform, dar
doble click al botn Cancelar, y en el cdigo indicar que se cancele la operacin,
cerrando el formulario mediante su descarga (unload):

También podría gustarte