Contador de asistencia en un Formulario con un TextBox

Con respecto a el contador, que en la "Hoja excel USUARIOS" dice numero de clases que serían 7 o 12 o full--> 20 clases por mes ese seria el total, y las contador ( que a medida registra asistencia se vayan disminuyendo ese número)

Ejemplo yo compro 12 clases al mes entonces ese número irá en PERMITIDAS y ese valor se encuentra en la base de datos de USUARIOS en la columna CANTIDAD.

Y EL CONTADOR funcione que vaya disminuyendo cada vez que se registra asistencia. Para Dante

1 respuesta

Respuesta
1

H o l a:

Me puedes explicar con un ejemplo.

Si la Cantidad de clases es 12 que coloque ese valor en el textBox que se llama PERMITIDAS y en el otro textBox que cuando la persona ingrese asistencia en el TextBox Cuente las veces que registro asistencia la persona. Si Yo APrete asistencia en el checkbox de asistencia 5 veces entonces el valor en el TextBox CONTADOR son 5  pero ahi deberia contarse la asistencia en una hoja excel quizas para que las cuente. 

Hay que poner en una hoja las asistencias, para que cuando abras el formulario, busque en la hoja de asistencias, cuántas lleva y ese número ponerlo en el textbox contador. Pero ese proceso de escribir en la hoja de asistencias no lo conozco ni sé cómo se llama la hoja, ni en qué columna estará el nombre o en qué columna estará el conteo de asistencias. Si quieres platícame cuál es tu idea de es contador de asistencias y te ayudo con el diseño de la hoja de asistencias, o si ya tienes el diseño y sabes cómo va a funcionar envíame el ejemplo.

Dante ahí te envíe la hoja excel y agregue la información que me enviaste, hice una hoja normal, no sé como se traspasara la información del Formulario a la hoja. Gracias por tu ayuda.

H o l a:

Este es el código para registrar las asistencias

Private Sub CButton3_Click()
'Por.Dante Amor
    If ComboBox1 = "" Then Exit Sub
    If ComboBox1.ListIndex = -1 Then Exit Sub
    Set h3 = Sheets("REGISTRO DE ASISTENCIA")
    Set r = h3.Columns("B")
    Set b = r.Find(ComboBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            If h3.Cells(b.Row, "A") = Date Then
                MsgBox "El cliente ya se registró el día de hoy", vbExclamation
                Exit Sub
            End If
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
    u = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
    If IsNumeric(ComboBox1) Then cod = CDbl(ComboBox1) Else cod = ComboBox1
    h3.Cells(u, "A") = Date
    h3.Cells(u, "B") = cod
    h3.Cells(u, "C") = TextBox3
    h3.Cells(u, "D") = TextBox4
    h3.Cells(u, "E") = TextBox5
    h3.Cells(u, "F") = 1
    cuantos = Application.CountIf(h3.Columns("B"), ComboBox1)
    TextBox10 = cuantos
    MsgBox "Asitencia registrada", vbInformation, "REGISTRO DE ASISTENCIA"
End Sub
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    TextBox7 = ""
    TextBox9 = ""
    TextBox10 = ""
    If ComboBox1 = "" Then Exit Sub
    If ComboBox1.ListIndex = -1 Then Exit Sub
    f = ComboBox1.ListIndex + 2
    Set h2 = Sheets("USUARIOS")
    Set h3 = Sheets("REGISTRO DE ASISTENCIA")
    cuantos = Application.CountIf(h3.Columns("B"), ComboBox1)
    TextBox3 = h2.Cells(f, "B")
    TextBox4 = h2.Cells(f, "C")
    TextBox5 = h2.Cells(f, "I")
    TextBox6 = h2.Cells(f, "G")
    TextBox7 = h2.Cells(f, "H")
    TextBox9 = h2.Cells(f, "K")
    TextBox10 = cuantos
End Sub

Excelente trabajo Dante!!! Muchas gracias.

Pero tengo una duda porque registre el día de hoy a una persona, pero luego cambie la fecha manual por otro día para revisar si lo hace al otro día pero me sale esto.

Es que toma la fecha de la máquina, no la fecha del textbox. Te recomiendo que tome la fecha de la máquina, pero dime si quieres que tome la fecha del textbox.

Es más complicado la fecha del textbox, ya que se tiene que validar que hayas captura do una fecha válida.

O podemos usar un control de fecha, como el DTPicker o el MonthView, revisa si tienes alguno de estos controles.

No tengo ningún control es más recomendable que utilice la fecha de la máquina porque así no se distorsiona todo, pero si a la persona se le olvido anotarse ayer y quiere hacerlo hoy :/ ¿qué me recomiendas?

Podríamos poner un checkbox para indicar que se va a registrar otra fecha, entonces si el checkbox está prendido, tomamos la fecha de un textbox.

De cualquier manera, abre tu formulario, abre el cuadro de controles, revisa en el menú de VBA, en Herramientas, controles adicionales que tengas el de DTPicker o el MonthView y me avisas

No me sale la opción de controles adicionales :/

Tienes que abrir el Cuadro de herramientas, ahí también le puedes presionas botón derecho y te aparece Controles Adicionales, o desde el menú, pero primero abre el cuadro de herramientas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas