Control de asistencia en Excel VBA

Hoy les comparto un aplicativo llamado Control de asistencia en Excel, la cual es una macro desarrollada en Excel

El archivo cuenta con dos hojas Inicio y Códigos

Registro de asistencias Excel

Hoja Códigos – BD con información del personal

En esta hoja se deben almacenar los nombres de los trabajadores a los cuales se le controlará la asistencia

Control de asistencias desde excel

Yo le he colocado las iniciales de los nombres como código, pero usted mi querido lector puede colocar el código que desee

Le recomiendo colocar números de DNI o CUI (Dependiendo del país)

Hoja Inicio – Control de asistencia (Entradas y salidas)

En esta hoja es donde se ejecuta todo, explicaré el funcionamiento

Primero debes seleccionar si vas a trabajar con códigos o nombres

Control de asistencia en Excel

Después de haber seleccionado la opción de código o nombre, el valor del Combobox cambiará

asistencias ingreso desde excel

Seleccionamos el usuario del cual primero registraremos su ingreso y damos clic en Entrada

Control de asistencia en Excel

Para registrar la salida, seleccionaremos al mismo usuario (Código o nombre) y presionaremos Salida

registrar salida de un trabajador excel

Una ventaja de este aplicativo es que podemos digitar el nombre para seleccionar al trabajador

trabajador desde excel

Descargar archivo – Control de asistencias desde excel (Contraseña tutorialesexcel.com)

Recuerda que puedes descargar todos mis archivos excel desde Repositorio Tutoriales Excel, la contraseña de todos los archivos es tutorialesexcel.com

M4ster

El archivo Control de asistencia en excel es completamente GRATIS. A continuación explicaré brevemente el código utilizado

Los OptionButton creados tienen los nombres OPTcodigo y OPTnombre

El código que ejecutan al seleccionarlos es el siguiente:

Private Sub OPTcodigo_Click()
    CMBinformacion = Empty
    CMBinformacion.ListFillRange = wCodigos.Name & "!A2:A" & wCodigos.Range("A1").CurrentRegion.Rows.Count
End Sub

Private Sub OPTnombre_Click()
    CMBinformacion = Empty
    CMBinformacion.ListFillRange = wCodigos.Name & "!B2:B" & wCodigos.Range("A1").CurrentRegion.Rows.Count
End Sub

La función CalcularCodigo es del tipo Boolean y si en caso el CMBinformación se encuentra vacío su valor será False, caso contrario asignará el código correspondiente a la variable Codigo

Function CalcularCodigo() As Boolean
    Dim fila As Long
    With wInicio
        If .CMBinformacion.Value = Empty Then
            CalcularCodigo = False
            Exit Function
        End If
            
        If .OPTcodigo.Value = True Then
            Codigo = .CMBinformacion.Value
            CalcularCodigo = True
        Else
            fila = Application.WorksheetFunction.Match(.CMBinformacion.Value, wCodigos.Range("B:B"), 0)
            Codigo = wCodigos.Range("A" & fila)
            CalcularCodigo = True
        End If
    End With
End Function

Las Formas Entrada y Salida ejecutan dos macros, las cuales las he creado utilizando fórmulas (Para que sean veloces)

Private Codigo As String
Sub Entrada()
    Dim n&
    If CalcularCodigo = False Then
        MsgBox "Debe completar el código/ nombre del usuario"
        Exit Sub
    End If
    
    With wInicio
        n = .Range("B8").CurrentRegion.Rows.Count
        n = IIf(n = 1, 9, n + 8)
        .Range("B" & n) = Codigo
        
        .Range("C" & n) = wCodigos.Range("B" & Application.WorksheetFunction.Match(Codigo, wCodigos.Range("A:A"), 0))
        .Range("D" & n) = Now
    End With
End Sub

Sub Salida()
    Dim i&, n&
    If CalcularCodigo = False Then
        MsgBox "Debe completar el código/ nombre del usuario"
        Exit Sub
    End If
    
    With wInicio
        n = .Range("B8").CurrentRegion.Rows.Count
        n = IIf(n = 1, 9, n + 7)
        For i = n To 9 Step -1
            If wInicio.Range("B" & i) = Codigo Then
                .Range("E" & i) = Now
                Exit Sub
            End If
        Next
        
    End With
End Sub

Como lo he comentado en otras publicaciones, se recomienda usar fórmulas desde VBA ya que su código ya está optimizado

Recuerda que puedes descargar muchas aplicaciones gratis desde
https://tutorialesexcel.com/category/descargas/

Cualquier duda me la puedes realizar en los comentarios o al correo Luisrojastutorialesexcel.com

Esta entrada tiene 3 comentarios

    1. M4ster VBA

      Hola María, la contraseña de todos nuestros archivos es tutorialesexcel.com

  1. Raúl Alberto Londoño

    Muchas gracias excelente

Deja una respuesta