No todo el mundo está familiarizado con Excel. Puede proteger el proceso de entrada de datos utilizando el objeto UserForm de Excel para recopilar datos. Susan Harkins explica cómo.
Cómo crear formularios rellenables en Excel utilizando el objeto UserFormSi necesita recopilar datos y compilarlos en una hoja de cálculo de Microsoft Excel, aquí le mostramos cómo hacerlo fácil con un formulario rellenable creado utilizando el objeto UserForm.
Cuando necesite un proceso de entrada de datos fácil de usar, cree un formulario de usuario Excel. Los usuarios que no están familiarizados con Excel encontrarán estos formularios mucho más fáciles de navegar que una hoja. Además de ser fáciles de usar, son excelentes herramientas para restringir las opciones. En este artículo, le mostraré cómo crear un objeto UserForm, añadirle controles y, a continuación, utilizar Visual Basic for Applications (VBA) para vincular los controles a una hoja. Puede trabajar con sus propios datos o descargar el archivo de ejemplo.xls o.xlsm.
APRENDA MÁS: Precios y características de Office 365 Consumer
Acerca de los datos
Un UserForm guía la entrada de datos, así que lo primero que necesita es un rango de datos. La muestra el conjunto de datos simple con el que trabajaremos. El libro de trabajo debe estar habilitado para macros si utiliza la versión 2007 o posterior. Haga clic en la ficha Archivo (o en el botón Oficina) y seleccione Guardar como. Elija una ubicación según sea necesario. En el menú desplegable Guardar como tipo, seleccione Libro de trabajo habilitado para macros de Excel (*.xlsm.
Crearemos un sencillo formulario de usuario que ayudará a los usuarios a introducir nuevos registros en este conjunto de datos.
Crear el formulario de usuario
Con un poco de datos en una hoja de trabajo, está listo para pasar al Editor de Visual Basic (VBE) para crear el UserForm:
- Pulse[Alt]+[F11] para iniciar el VBE.
- Dentro del VBE, seleccione UserForm en el menú Insertar .
- Pulse[F4] para mostrar la hoja de propiedades del formulario de usuario e introduzca un nombre en el control Nombre. Cuando lo hace, el VBE actualiza el título del cuadro de diálogo de propiedades, según corresponda .
Agregar controles
El formulario de usuario en blanco está listo para los controles de entrada. Añadiremos unos cuantos cuadros de texto, cuadros combinados y controles de botones de comando. Para añadir el primer cuadro de texto, haga lo siguiente:
- Con el formulario de usuario seleccionado, haga clic en Cuadro de texto en el cuadro de herramientas y suéltelo en el formulario. Si la caja de herramientas no está visible, asegúrese de hacer clic en el formulario de usuario. Es visible cuando el UserForm está seleccionado.
- Con el nuevo control de caja de texto seleccionado, nómbrelo txtGivenName usando la hoja de propiedades, que se actualizará para el elemento seleccionado .
Usando la como guía, agregue los controles adicionales listados en la Tabla A y nómbrelos. Las etiquetas no son necesarias en este sencillo ejemplo, pero cuando cree un UserForm para sus propios datos, probablemente querrá incluirlas. Cuando lo hace, los nombres por defecto de Excel suelen ser adecuados. Introduzca un título descriptivo para cada etiqueta y los dos botones de comando. Es una buena idea guardar su trabajo a medida que progresa.
VER: Cuadro comparativo: Office suites (Tech Pro Research)
Añada los controles restantes.
Cuadro A
Añadir código
El código detrás del formulario hace que funcione. No dejes que la cantidad de código te intimide. El botón de comando Guardar hace la mayor parte del trabajo. Una vez que haya introducido todos los valores, el código de este botón transferirá los valores introducidos a la hoja. Para añadir código, haga doble clic en el formulario de usuario para abrir su módulo e introducir los procedimientos en la lista A. (No intente copiar y pegar desde esta página web porque el VBE se opondrá a algunos caracteres web. En su lugar, descargue uno de los archivos de ejemplo: Module1.bas o ufrmAnimals.frm.)
Listado A
Private Sub cboClass_DropButtonClick() `Poblar control. Me.cboClass.AddItem "Amphibian" Me.cboClass.AddItem "Bird" Me.cboClass.AddItem "Fish" Me.cboClass.AddItem "Mammal" Me.cboClass.AddItem "Reptile" End SubPrivate Sub cboConservationStatus_DropButtonClick() 'Control de población.
Me.cboConservationStatus.AddItem «En Peligro» Me.cboConservationStatus.AddItem «Extirpado» Me.cboConservationStatus.AddItem «Histórico» Me.cboConservationStatus.AddItem «Special concern» Me.cboConservationStatus.AddItem «Stable» Me.cboConservationStatus.AddItem «Threatened» Me.cboConservationStatus.AddItem «WAP»End Sub cboSex_DropButtonClick() ‘Control de población. Me.cboSex.AddItem «Female» Me.cboSex.AddItem «Male»End SubPrivate Sub cmdAdd_Click() ‘Copiar valores de entrada en hoja. Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets(«Animals») lRow = ws.Cells(Rows.Count, 1.End(xlUp.Offset(1, 0.Row With ws.Cells(lRow, 1.Value = Me.cboClass.Value.Value.Cells(lRow, 2.Value = Me.txtGivenName.Value.Value(lRow, 3.Valor = Me.txtTagNumber.Value.Cells(lRow, 4.Value = Me.txtSpecies.Value.Cells(lRow, 5.Value = Me.cboSex.Value.Cells(lRow, 6.Value = Me.cboConservationStatus.Value.Value.Cells(lRow, 7.Value = Me.txtComment.Value End Con `Borrar controles de entrada. Me.cboClass.Value = «» Me.txtGivenName.Value = «» Me.txtTagNumber.Value = «» Me.txtSpecies.Value = «» Me.cboSex.Value = «» Me.cboConservationStatus.Value = «» Me.txtComment.Value = «»End SubPrivate Sub cmdClose_Click() `Cerrar UserForm. Descargar MeEnd Sub
Los tres primeros procedimientos se aplican a los tres controles del cuadro combinado. El cuarto procedimiento, cmdAdd_Click(), copia los valores de entrada del formulario de usuario al rango de datos en la hoja y luego borra los controles para que pueda ingresar otro registro. De esta manera, el usuario puede introducir varios registros rápidamente. El último procedimiento, cmdClose_Click(), cierra el formulario de usuario.
El procedimiento en el Listado B abre el Formulario de Usuario. En la siguiente sección, añadiremos un botón de macro que llama a este procedimiento a la barra de herramientas de acceso rápido (QAT. No agregue este procedimiento al módulo de UserForm. En su lugar, seleccione Módulo en el menú Insertar y añada el procedimiento abreviado.
Listado B
Sub ShowAnimalsUF() 'Display Animals UserForm. ufrmAnimals.Show ModalEnd Sub
Acceso al botón Macro
Al añadir un botón de macro al QAT, los usuarios tendrán acceso rápido y fácil a UserForm. Para añadir el botón, haga lo siguiente:
- Haga clic en el menú desplegable QAT y elija Más comandos.
- En el menú desplegable Elegir comandos de, seleccione Macro.
- Seleccione ShowAnimalsUF ) y haga clic en Add.
- Haga clic en Cerrar.
Utilice el formulario de usuario
Para usar el formulario de usuario, haga clic en el botón de macro en el QAT para mostrarlo – ¿no fue eso fácil? Utilice las listas desplegables para elegir valores para los controles del cuadro combinado e introduzca valores para los controles del cuadro de texto. La figura G muestra un nuevo registro en el formulario de usuario.
Añadir un nuevo registro.
Para copiar esos valores a la hoja de trabajo, haga clic en el botón Guardar Animal. El código detrás del formulario de usuario copiará los valores de los controles de UserForm a la hoja y borrará los controles para el siguiente registro, como se muestra en la . Para cerrar el formulario, haga clic en el botón Cerrar.
Copiar los valores en la hoja.
Cabe destacar
Ninguno de los códigos guarda el registro una vez que se copia a la hoja. Debe recordar guardar el libro de trabajo para guardar los nuevos registros a nivel de hoja. Puede añadir el código apropiado al formulario de usuario o permitir que los usuarios lo hagan ellos mismos. Además, no hay manejo de errores ni validación de datos en este código básico. El uso de un cuadro combinado o un cuadro de lista le ayuda a limitar las opciones, pero necesitará código adicional para proteger la validez del texto y los valores numéricos y para obligar a los usuarios a introducir valores para los campos obligatorios. Como puede ver, el formulario de ejemplo permite al usuario dejar campos vacíos.
Envíenme sus preguntas sobre Office
Respondo a las preguntas de los lectores cuando puedo, pero no hay garantía. Cuando se ponga en contacto conmigo, sea lo más específico posible. Por ejemplo, «Please troubleshoot my workbook and fix what’s wrong» probablemente no obtendrá respuesta, pero «Can you tell me why this formula is’ t returning the expected results?
ConsejoTecnologico.com no me reembolsa mi tiempo ni mi experiencia, ni tampoco pido honorarios a los lectores. Puede ponerse en contacto conmigo en susansalesharkins@gmail.com.
Boletín semanal de Microsoft
Conviértase en un experto en Microsoft de su empresa con la ayuda de estos tutoriales de Windows y Office y de los análisis de nuestros expertos sobre los productos empresariales de Microsoft. Entregado Lunes y Miércoles
Divulgación de información sobre los afiliados: ConsejoTecnologico.com puede ganar una comisión por los productos y servicios que aparecen en esta página.