Formulario de captura en Excel que guarda datos en otra hoja

Cuando deseamos que otras personas recaben datos siempre son de gran utilidad los formularios. Un formulario de captura nos permite recolectar sólo datos necesarios, ya que al tener campos estructurados y listas con opciones, evitamos que los usuarios escriban cosas que no necesitamos.

Además, si al formulario le añadimos macros, podremos tener nuestros datos en tablas para posteriormente manipularlos con facilidad.

Por qué no usar los formularios de vba

A esta pregunta siempre daré la misma respuesta: todo depende del gusto del diseñador.

En otro artículo les comparto un formulario diseñado en el IDE de vba que usa el mismo código para dar de alta los datos en una hoja de Excel.

El ejemplo que les comparto incluye un formulario diseñado en celdas de una hoja de Excel, con bordes y colores que lo hacen ver un tanto minimalista.

Formulario de captura en Excel

Ver video Copiar datos a otra hoja de Excel con macros

#SUSCRÍBETE pare recibir en tu correo cada vez que publique un video nuevo.

Listas de validación de datos

Para que los usuarios de nuestro formulario sólo capturen la información necesario, el algunos campos usaremos la Validación de datos para que tengan listas con opciones. Las diferentes maneras de usar la Validación de datos las podremos ver en este artículo publicado en este mismo Blog.

Lista de validación de datos en Excel

Dónde quedan los datos capturados

Cuando el usuario termine de capturar los datos en el formulario, debe presionar el botón Guardar datos y éste ejecutará una macro que los enviará a otra de Excel en formato de tabla.

Guardar datos en otra de Excel

Código vba

A continuación el código usado para el ejemplo.

Option Explicit
Sub Captura_Datos()
'Declaración de variables
'
Dim strTitulo As String
Dim Continuar As String
Dim TransRowRng As Range
Dim NewRow As Integer
Dim Limpiar As String
'
strTitulo = "Atención Telefónica"
'
Continuar = MsgBox("Dar de alta los datos?", vbYesNo + vbExclamation, strTitulo)
If Continuar = vbNo Then Exit Sub
'
Set TransRowRng = ThisWorkbook.Worksheets("Datos").Cells(1, 1).CurrentRegion
NewRow = TransRowRng.Rows.Count + 1
With ThisWorkbook.Worksheets("Datos")
    .Cells(NewRow, 1).Value = Date
    .Cells(NewRow, 2).Value = Format(Date, "dd")
    .Cells(NewRow, 3).Value = Format(Date, "mm")
    .Cells(NewRow, 4).Value = Format(Date, "yy")
    .Cells(NewRow, 5).Value = ThisWorkbook.Sheets(1).Range("C6")
    .Cells(NewRow, 6).Value = ThisWorkbook.Sheets(1).Range("C9")
    .Cells(NewRow, 7).Value = ThisWorkbook.Sheets(1).Range("C12")
    .Cells(NewRow, 8).Value = ThisWorkbook.Sheets(1).Range("C15")
    .Cells(NewRow, 9).Value = ThisWorkbook.Sheets(1).Range("F9")
    .Cells(NewRow, 10).Value = ThisWorkbook.Sheets(1).Range("F12")
    .Cells(NewRow, 11).Value = ThisWorkbook.Sheets(1).Range("F15")
End With
'
MsgBox "Alta exitosa.", vbInformation, strTitulo
Limpiar = MsgBox("Deseas limpiar los campos de la captura?", vbYesNo, strTitulo)
If Limpiar = vbYes Then
    With ActiveWorkbook.Sheets(1)
        .Range("C6").ClearContents
        .Range("C9").ClearContents
        .Range("C12").ClearContents
        .Range("C15").ClearContents
        .Range("F9").ClearContents
        .Range("F12").ClearContents
        'ClearContents no funciona en celda combinada...
        .Range("F15").Value = ""
    End With
Else
End If
'
End Sub

Referencias

Validación de datos en Excel

Ejemplo de formulario de captura en Excel

Anexos

:: Descarga el ejemplo Formulario de captura en hoja de Excel.rar

You may also like...

RECIBE CONTENIDO EXCLUSIVO

Tips, trucos, videos para convertirte en un EXPERTO EN EXCEL y llegar al éxito. Suscríbete y recibe el mejor contenido en tu correo.