Que Excel trabaje para tí: formulario ingreso de datos para no programadores

En una entrada pasada, llamada Ejemplo de formulario de captura en Excel exponía un ejemplo con un formulario creado en el IDE de Visual Basic para aplicaciones (vba) y que nos permitía capturar datos para una tabla de Excel.

Ver video Formulario ingreso de datos para no programadores

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Beneficios de los formularios diseñados ??

  1. Puedes crear cuantos objetos desees, desde Texboxes hasta OptionButtons.
  2. Tú defines las validaciones, evitando que se ingresen tipos de texto no deseados.
  3. Adecúas el diseño a tu gusto.
  4. Se considera una aplicación, ya que utilizas programación en vba.

Desventajas de los formularios diseñados ??

Realmente no existen desventajas. La complejidad radica en el nivel de validación que el programador desee darle.

Solución para no programadores ??

Si eres un usuario de nivel intermedio a avanzado, pero aún no entras en el mundo de la programación vba, pero requieres una solución alterna, la solución es utilizar el Formulario que ofrece Excel.

En versiones anteriores a Excel 2007 el Formulario se podía lanzar desde el menú Herramientas > Datos. En la versión 2010-2016 debemos añadir el acceso a la barra de acceso rápido: En dicha barra damos click derecho y elegimos Personalizar la barra de herramientas de acceso rápido. En los comandos disponibles elegimos Formulario… y presionamos Agregar >>.

La condición para poder utilizar Formulario es que tengamos una tabla de Excel, y para lanzarlo debemos estar posicionados en cualquier celda de la tabla. El título de cada columna será el nombre de cada campo que mostrará el formulario.

Ventajas del Formulario en Excel

  • Ya incluye las opciones para Agregar, Modificar, Borrar y Buscar datos.
  • Se adecúa automáticamente a las columnas que se tengan en tus datos.
  • Puede anclarse a la Barra de herramientas de acceso rápido.
  • Se puede llamar desde vba (siempre y cuando los encabezados comiencen en la fila 1.

El rango de datos.

Figura 1. El rango de datos.

Formulario en Excel sin necesidad de usar vba.

Figura 2.  Formulario en Excel sin necesidad de usar vba.

Llamar al formulario desde una macro

Aunque podemos anclar un botón a la Barra de acceso rápido, también podemos mandarlo llamar de una macros, siempre y cuando que nuestros datos se encuentren desde la fila 1.

  • Damos clic derecho sobre la hoja donde mostraremos el Formulario.
  • Elegimos Ver código.
  • Ingresamos el siguiente código vba:
Sub MostrarFormulario()

    ActiveSheet.ShowDataForm

End Sub

Descargar el archivo de ejemplo

Descargar el ejemplo Formulario de ingreso de datos para no programadores.rar

You may also like...

22 Responses

  1. Emilink says:

    Hola sergioacamposh, consulta, es factible hacer lo inverso? o sea, de una tabla de datos existente, ingresar un dato (siempre la misma referencia, la misma columna) y que llene el combobox con los datos de esa fila referenciada?

    Gracias!!!

  2. Christian says:

    Buenas Tardes Sergio, hay forma de lanzar este mismo formulario desde un command button? estoy pensando que dentro de la aplicación que estoy trabajando incluir un boton para actualizar la tabla (BD) con la que trabajo o bien lanzarlo desde la hoja original… se podra?

    • sergioacamposh says:

      Sí puedes lanzar el formulario desde un botón, sólo agrégale el siguiente código: ActiveSheet.ShowDataForm

  3. enrique says:

    buenos dias, quisiera saber donde puedo descargar este ejemplo?

  4. Jorge Chavez says:

    Hola amigo Sergio espero me puedas ayudar, tengo una plantilla en Word 2010, en la cual por medio de VBA le genere un UserForm (formulario) en el cual registro información como nombre, dirección, teléfono etc, etc y los inserto en la plantilla y todo funciona correctamente, pero ahora lo que necesito es que se grabe esa información en una tabla en Excel 2010, utilizando un botón de grabar en el UserForm…… cuales serian las instrucciones de VBA para abrir el archivo o tabla de Excel y grabar la información?????? De antemano muchas gracias su amigo Jorge….

  5. carlosm says:

    hay forma de mostrar parte de la tablas de excell en el userform(formulario) como si fuera un pedazo de la hoja excel en el formulario? gracias

  6. javier says:

    soy nuevo en esto tengo 2 tablas y deseo llenar un formulario con datos de estas tablas tengo la tabla A con los campos id,nombre y la tabla B con los campos id,nombre,semestre,grupo tengo un formulario con un listbox y me carga los datos de la tabla A y lleno los campos del formulario y al guardar los datos en la tabla B se me guardan todos correctamente en la tabla,pero a la hora de abrir el formulario cargo el listbox me carga los datos de la tabla A en vez de los de la tabla B deseo que me cargue los datos de la tabla B previamente llenados,me podrian ayudar por favor

    • sergioacamposh says:

      Qué código usas para cargar los datos en Listbox ?

      • javier says:

        este lo utilizo para cargar los datos que estan en la hoja

        Private Sub c_Nombre_Change()
        On Error Resume Next

        Application.ScreenUpdating = True
        If nCli(c_nombre.Text) 0 Then

        Sheets(“prestamos”).Activate
        Cells(c_nombre.ListIndex + 2, 1).Select
        nombre = ActiveCell.Offset(0, 1)
        grupo = ActiveCell.Offset(0, 2)
        sem = ActiveCell.Offset(0, 3)
        areacon = ActiveCell.Offset(0, 4)
        edit = ActiveCell.Offset(0, 5)
        edic = ActiveCell.Offset(0, 6)
        numclas = ActiveCell.Offset(0, 7)
        fech = ActiveCell.Offset(0, 8)
        tipres = ActiveCell.Offset(0, 10) ‘ tipo de prestamo
        status = ActiveCell.Offset(0, 11)

        Else

        nombre = “”
        grupo = “”
        sem = “”
        areacon = “”
        edit = “”
        edic = “”
        numclas = “”
        fech = “”
        tipres = “”
        status = “”

        End If

        End Sub

        Private Sub c_Nombre_Enter()
        CargarLista
        End Sub

        aqui cargo al iniciar el form los datos de la tabla A
        Sub CargarLista()
        c_nombre.Clear
        Sheets(“Alta de libros”).Select*****aqui no se como hacer referencia a que me cargue los otros campos de la otra tabla prestamos que llene los camps que quiero mostrar y solo me muestra los campos de a tabla Alta de libros
        Range(“A2”).Select
        Do While Not IsEmpty(ActiveCell)
        c_nombre.AddItem ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
        Loop
        End Sub

        Lo que intento hacer es que me cargue los datos de la tabla A en el formulario HAy algunos campos vacios y los lleno con sus correspondientes datos de la tabla B donde se almacenan los campos llenados del formulario, y al momento de volver a cargar el formulario me muestra los datos pero de los campos de la tabla A y lo que quiero que me muestre son los campos que llene y se almacenaron en la tabla B

  7. Guest says:

    Hola, excelente! gracias por compartir.

    estaba probando este ejemplo pero me sale el error que adjunto en las imágenes, me puedes ayudar. gracias.

  8. Jesús says:

    Hola Sergio, así han quedado mis columnas adaptadas a tu hoja, pero el formulario no se modificarlo para que coincida con los datos que necesito tomas. ¿Puedes ayudarme? Gracias por tus excelentes aportes

  9. Jesús says:

    Hola Sergio, creo que me cargué mi primer comentario. Soy nuevo en este foro, y quiero aprovechar para darte las gracias por tus aportes.
    Vamos a abrir una librería virtual y estoy bajándome vía URL con J downloader varias decenas de miles de fotos. Posteriormente y tras modificar tamaño, he de importarlas a nuestro ERP que “sólo” las toma si el nombre corresponde al título del libro o al código EAN/ISBN. ¿Como hago para renombrarlas? Los datos están en una excel por columnas y las imágenes en una carpeta aparte.

  10. Josefran says:

    Hola buenas dias, estoy trabajando en este proyecto, en el cual al momento de ingresar el BIn se duplique en Producto e Instrumento, cuando halla seleccionado en el Combo box S11, si no es mucha molestia? Y si tienen algun Codigo o link en el cual Me guarde todo lo de un libro en un archivo TXT desde el formulario de Visual.
    De antemano Gracias y buenas tardes.

  11. David Cruz says:

    hola buena tarde una pregunta como le puedo hacer si tengo una bd de datos en Excel y cada línea la pueda subir a un formulario web???

    • sergioacamposh says:

      Te refieres subirlo a la Web en lugar de cargarlo en la base de datos ??

      Puedes ser más explícito ?

      • David Cruz says:

        Mira tengo una tablas de datos nombre, apellido pat, mat, fecha de nacimiento, calle, col, localidad, municipio y etc etc unas 8 columnas mas y un total de unos 10,000 registros. Bien ahora lo que quiero hacer es subirlo a un formulario web pero eso de copy/ paste es muy engorroso y cansado entonces se me ocurre pues con una macro y me comentan de un control llamado webBrowser el cual no lo se ocupar y esa es mi duda. He investigado y utilice por un momento el macro recorder y buscaba un tutorial de imacros para ver como funcionan en este tipo de casos.

Leave a Reply

Your email address will not be published. Required fields are marked *