Ejemplo de formulario de captura en Excel

En esta ocasión presento un formulario de captura, con validaciones, que ingresará los datos capturados en una tabla de Excel.

Cómo funciona ??

Se presenta una tabla de Excel, con 14 campos. Mediante un botón se lanza un formulario que nos permitirá capturar datos. Cada TextBox, ComboBox y CheckBox tiene una validación que no permite ingresatos los datos capturados si algún objeto está vacío.

Los mejores videos de Excel

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

En el video mostramos paso a paso cómo crear este ejemplo.

 Objetos

  1. Formulario de captura.
  2. TextBoxes de captura.
  3. Control de calendario.
  4. Comboboxes que son llenados con listas predefinidas.
  5. CheckBoxes.

Imagen del formulario en acción

Ejemplo de formulario de captura en Excel

Ejemplo de formulario de captura en Excel

Código del formulario

Private Sub UserForm_Activate()
'LLENADO DE COMBOS
    Me.cmbMarcaCte.RowSource = "lstMarca"
    Me.cmbMarcaKit.RowSource = "lstMarca"
    Me.cmbStatus.RowSource = "lstStatus"
    Me.cmbPromocion.RowSource = "lstTipoPromo"
    Me.cmbSuper.RowSource = "lstSupers"
End Sub
'---------------------------------------------------------------------------------------
' Module    : frmCaptura
' Author    : Sergio A Campos H, exceleinfo.wordpress.com
' Date      : 25/06/2011
' Purpose   : Ejemplo de captura de datos
'---------------------------------------------------------------------------------------
'
Private Sub cmdRegistrar_Click()
'INICIO DE VALIDACIONES
    largo = txtNumero.TextLength
    If largo <> 10 Or Not IsNumeric(txtNumero.Value) Then
        MsgBox "El número debe ser a 10 dígitos y debe ser número", vbCritical, empresa
        txtNumero.SetFocus
    Else
        If cmbMarcaCte.Value <> cmbMarcaKit.Value Or txtModelCte.Value <> txtModelKit.Value Then
            MsgBox "El modelo del cliente debe ser el mismo que nos aparezca en Proveedor", vbCritical, empresa
            cmbMarcaCte.SetFocus
        Else
            If cmbMarcaCte = "" Or txtModelCte = "" Or cmbMarcaKit = "" Or txtModelKit = "" Then
                MsgBox "Algunos de los datos de la marca y modelo están vacíos", vbCritical, empresa
                cmbMarcaCte.SetFocus
            Else
                If cmbStatus = "" Then
                    MsgBox "No se ha seleccionado un status", vbCritical, empresa
                    cmbStatus.SetFocus
                Else
                    If txtCir = "" Then
                        MsgBox "No se ha ingresado la circular", vbCritical, empresa
                        txtCir.SetFocus
                    Else
                        If cmbPromocion = "" Then
                            MsgBox "No se ha seleccionado una promoción", vbCritical, empresa
                            cmbPromocion.SetFocus
                        Else
                            If cmbSuper = "" Then
                                MsgBox "No se ha seleccionado un Supervisor", vbCritical, empresa
                                cmbSuper.SetFocus
                            Else
                                If chkPromoV = FALSO Or chkPromoA = FALSO Or chkAjusteInt = FALSO Or chkComtInt = FALSO Then
                                    MsgBox "Algún(os) de los pasos no ha sido completado ", vbCritical, empresa
                                    chkPromoV.SetFocus
                                Else
                                    'Call Desproteger
                                    'ALTA DE LOS REGISTROS
                                    Set TransRowRng = ThisWorkbook.Worksheets("base").Cells(1, 1).CurrentRegion
                                    NewRow = TransRowRng.Rows.Count + 1
                                    With ThisWorkbook.Worksheets("base")
                                        .Cells(NewRow, 1).Value = txtNumero
                                        .Cells(NewRow, 2).Value = cmbMarcaCte
                                        .Cells(NewRow, 3).Value = txtModelCte
                                        .Cells(NewRow, 4).Value = dtpServicio
                                        .Cells(NewRow, 5).Value = cmbStatus
                                        .Cells(NewRow, 6).Value = txtCir
                                        .Cells(NewRow, 7).Value = cmbPromocion
                                        .Cells(NewRow, 8).Value = cmbSuper
                                        .Cells(NewRow, 9).Value = cmbMarcaKit
                                        .Cells(NewRow, 10).Value = txtModelKit
                                        .Cells(NewRow, 11).Value = chkPromoV
                                        .Cells(NewRow, 12).Value = chkPromoA
                                        .Cells(NewRow, 13).Value = chkAjusteInt
                                        .Cells(NewRow, 14).Value = chkComtInt
                                    End With
                                    GoTo fin
                                    '
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
    End If
    'Call Proteger
    Exit Sub
fin:
    Unload Me
    ThisWorkbook.Worksheets("base").Activate
    'Call Proteger
End Sub

:: Descargar el ejemplo EXCELeINFO – captura en formulario

You may also like...