You are on page 1of 5

Formulario de captura de datos en Excel

En esta ocasin desarrollaremos un formulario de captura de datos en Excel que nos permitir llenar una hoja de nuestro libro con informacin de mltiples personas como su nombre, telfono, y su correo electrnico. Este artculo est basado en una publicacin anterior donde hice una introduccin bsica a los Formularios en VBA, sin embargo en dicho ejemplo siempre se insertaban los datos capturados en la primera fila de la hoja remplazando los datos introducidos previamente. Hoy haremos las adecuaciones necesarias para permitir la captura de mltiples filas as como la validacin de datos duplicados.

Crear el formulario de captura de datos


El primer paso es crear el formulario de captura y agregar los controles necesarios que nos permitirn ingresar los datos. Para eso abrimos el Editor de Visual Basic e insertamos el formulario desde el men Insertar > UserForm. Despus, utilizando el cuadro de herramientas agregamos las etiquetas, cuadros de textos y botones para tener un formulario como el siguiente:

El cdigo para el botn Cancelar es tan simple como utilizar la instruccin Unload Me que nos ayudar a cerrar el formulario. El cdigo para el botn Agregar ser ms elaborado, pero antes de pasar al cdigo debo hablar sobre una funcin de Excel que nos ayudar en el desarrollo de nuestro formulario de captura de datos.

La funcin CONTARA en Excel


La funcin CONTARA hace un recuento de las celdas no vacas dentro del rango indicado. Esta funcin ser de mucha utilidad en nuestro ejemplo porque nos ayudar a conocer la fila en donde debemos insertar la informacin. Considera el siguiente ejemplo:

La funcin CONTARA evala las celdas de la columna A y devuelve el valor 5 indicndonos que ha encontrado cinco celdas que no estn vacas. Si ingresamos un valor en la celda A6, entonces la funcin CONTARA nos devolver el valor 6.

Cdigo para el formulario de captura


Ahora que conocemos la funcin CONTARA, podremos comprender mejor el siguiente cdigo que utilizaremos para el botn Agregar: 1 Private Sub CommandButton1_Click() 2 3 Dim fila As Long 4 Dim duplicados As Boolean 5 'Obtener la fila disponible 6 fila = Application.WorksheetFunction.CountA(Range("A:A")) + 1 7 duplicados = False 8 9 'Validar si se han ingresado datos duplicados 10For i = 1 To fila If Cells(i, 1).Value = UserForm1.TextBox1.Value Then 11 If Cells(i, 2).Value = UserForm1.TextBox2.Value Then 12 If Cells(i, 3).Value = UserForm1.TextBox3 Then 13 14 'Se encontraron datos duplicados MsgBox "Datos duplicados en la fila " & i 15 duplicados = True 16 17

End If 18 End If 19 End If 20Next i 21 22 23If Not duplicados Then 'Insertar datos capturados 24 Cells(fila, 1).Value = UserForm1.TextBox1.Value 25 Cells(fila, 2).Value = UserForm1.TextBox2.Value 26 Cells(fila, 3).Value = UserForm1.TextBox3.Value 27 28 'Limpiar cajas de texto 29 UserForm1.TextBox1.Value = "" UserForm1.TextBox2.Value = "" 30 UserForm1.TextBox3.Value = "" 31 32 'Notificar al usuario 33 MsgBox "Datos insertados en la fila " & fila 34End If 35 36End Sub 37 38 39 40 41

Al pulsar el botn Agregar se inicializa la variable fila la cual almacenar el resultado de la funcin CONTARA y que nos indicar el nmero de fila donde se deben insertar los datos. Tambin inicializamos la variable duplicados que nos indicar si los valores ya fueron ingresados previamente. Antes de copiar los datos a la hoja de Excel, hacemos un recorrido de la primera columna de nuestra hoja para comparar el valor de cada celda con el valor de la caja de texto que contiene el nombre. Si encontramos alguna coincidencia, entonces comparamos el valor de la columna B con la segunda caja de texto para saber si son iguales. Solo en caso de que los tres valores coincidan mostramos un mensaje al usuario indicando que se encontraron valores duplicados y colocamos como verdadero el valor de la variable duplicados. En caso de que los datos no estn duplicados, insertamos todos los valores en la fila indicada y limpiamos las cajas de texto del formulario. Finalmente mostramos un mensaje al usuario indicando el nmero de fila donde se insertaron los datos.

Probando el formulario de captura de datos en Excel


Para probar el formulario de captura agregar un botn de comando a la hoja de Excel con la instruccin UserForm1.Show lo cual cargar nuestro formulario. Al momento de ingresar los datos y pulsar el botn Agregar, los valores sern insertados en una nueva fila de nuestra hoja.

Si por el contrario, encontramos que los datos estn duplicados en alguna de las filas, se mostrar un cuadro de dilogo advirtindonos de la duplicidad:

Es as como el formulario de captura que hemos creado nos permite insertar los datos capturados en una nueva fila y donde el nico lmite ser la cantidad de filas de nuestra hoja de Excel. Descarga el archivo de trabajo y prueba el funcionamiento de este formulario.

You might also like