UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo


No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

Visor


Estimados amigos del foro en este tema me me he atascado luego de varios intentos, he realzado un formulario en el que selecciono en un DTPicker la fecha, esta fecha se compara con las fechas que  ya se hayan ingresado en desde la columna C hasta la CG si ya existe me avisa, si no consta en los días de dar clases me avisa "Hoy no tienes clase" igual si es sábado o domingo o si es una fecha superior a la de hoy.
Todo esto se compara con el botón de abajo del DTPicker...
Bueno una vez seleccionada la fecha selecciono en el combobox al estudiante y luego debo colocar asistencia o inasistencia
Para la asistencias se colocara un numero en la hoja según el día y por lo tanto según el valor del label que este en la parte superio izquierda del formulario, al colocarse ese numero aparecerá un check en la hoja, en la fila que corresponde al estudiante elegido y en la columna bajo la fecha.
En el caso de la inasistencia se colocara un cero (0) en ese mismo lugar
Me gustaría que me puedan echar un vistazo al código realizado que lo he hecho con select case, que espero que ese haya sido el apropiado pues en esta se evalúa el día que corresponda
Subo un archivo para que lo vean
Nota: la escobita esta puesta para en caso de haber pinchado un registro equivocado y poder limpiar ese registro
Agradezco el apoyo a la solución de este tema problema
Subo un archivo para que lo vean

[url=https://www.dropbox.com/s/wit9g6w90zes6xf/Registrar asistencia v0.xlsm?dl=0]https://www.dropbox.com/s/wit9g6w90zes6xf/Registrar%20asistencia%20V0.xlsm?dl=0[/url]

jhon1904

avatar
Hola visor 

te subo una posible solución un poco mas sencilla, he modificado los codigos para que sea mas efectivo y sencilla.


saludos,
Archivos
Registrar asistencia V1.xlsm
No tienes los permisos para descargar los archivos.
(61 KB)


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Perfecto!!  Es increíble como se usa la lógica para hacer aplicaciones, es una buena herramienta también para la vida....
Esta avanzando como se espera hay pequeñas cosas, por ejemplo:
1_ Como hago para que funcione directamente con el DTPicker? y no con el botón CommandButton10

2_ Cuando se selecciona una fecha y coincide con un label cuyo valor  es cero (0) debe decir que no hay clases en ese día "Hoy no hay clases" &...
      Sin embargo, por ejemplo la macro sí acepta el jueves aun cuando tiene un valor de  0 
 Cuando es una fecha posterior a la de hoy, la macro dice que "la fecha no              existe ...y pregunta.  "..desea ingresarla"? y la ingresa al aceptar,.. no debe pasar esto
     Acepta el ingreso de sábados y domingos lo cual no debe ocurrir pues tiene ceros  en el valor de los labels
Puede ocurrir un día que talves no se registre las asistencias, pero como es menor a la fecha de hoy, allí se se puede ingresar la fecha atrasada por lo tanto la pregunta "....desea ingresarla, es correcta en ese caso...Es decir no me permita adelantarme de fechas. Seria como si la fecha hoy esta predeterminada en el DTPicker (Me.DTPicker1.Value = Date) listo para ingresar la fecha hoy y tomar asistencia,... fecha posterior no me permita, fecha de hoy es para ingresar asistencias, fechas anteriores, las busca y permite correcciones o si no la encuentra es por que no se registró en esa fecha anterior la asistencia y habría que actualizar. En este caso si coloco la fecha de hoy y no he registrado aun la fecha anterior de clases he ingreso registro de asistencias, se requiere llenar ese vacío de fecha y registro, podría suceder en lo posterior la necesidad de tener un botón que mueva todos los datos a partir de la fila 8 hasta la 77 en la columna ubicada y moverlo hacia la derecha, pero eso seria otra cosa, que seguro no es parte de este tema.
Logrando resolver esto tendríamos siempre fechas en avance
3_ hay un Dim ENCONTRAR que no esta indicado As..supongo que es Integer
4_ En el optionButton2 de colocar inasistencia, al hacerlo se coloca ###, tal vez no lo esta convirtiendo a numero cero

Debo explicar que para tomar asistencia, nosotros vamos nombrando al estudiante el estudiante alza las manos y dice presente!! y le coloco la asistencia en este caso con el optionbutton1 pero si no esta presente le coloco inasistencia
Gracias te doy por todo esta travesía de códigos y lógica

jhon1904

avatar
hola visor

he realizado los cambios que sugeriste incluido el de ordenar por fecha, revisalo y espero te sirva.

saludos
Archivos
Registrar asistencia V1.xlsm
No tienes los permisos para descargar los archivos.
(59 KB)


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Saludos jhon1904
Gracias por los avances, en realidad he estado procurando hacer conforme lo recibido por ti para que se analiza que si es fecha de hoy y no existe entonces se ingrese pero si es superior a fecha de hoy no se permita ingresar esa fecha. si es fecha anterior se encuentre y se permita editar (esto ya esta)
es decir gran pare ya esta pero te muestra respecto a esta posibilidad de eventos que se puede presentar.
Se podrá hacer asi?? acorde al boto que esta bajo el DTPicker
cuando pongo Date me refiero a la fecha de hoy
Código:
If DTPicker1 < Date Or Now Then
Encontrar_Fecha
MsgBox "La fecha ya existe desea actualizar registro?"
Else
If DTPicker1 > Date Then
MsgBox "No se puede ingresar fechas posteriores a las de hoy"
Else
If DTPicker1 = Date Then
'Al no existir la fecha de hoy
MsgBox "Esta es Fecha de hoy se ingresa la fecha para Registro de asistencia"


Todo esto lo menciono pues veo que me deja ingresar fechas futuras lo cual no es lógico que tome lista a fecha posterior

Visor


Hola de nuevo Jhon1904
Este evento es mas apropiado para evitar un boton adicional o aparte del DTPicker y el codigo de evaluar la fecha de hoy antes o despues.

Código:
Private Sub DTPicker1_CloseUp()
Select Case DTPicker1.Value
  Case Is = Date
      'Código para igual
      MsgBox "Esta es Fecha de hoy se ingresa la fecha para Registro de asistencia"
   
  Case Is > Date
      'Código para mayor
      MsgBox "No se puede ingresar fechas posteriores a las de hoy"
  Case Is < Date
      'Código para menor
        MsgBox "La fecha ya existe desea actualizar registro?"
       
        MsgBox "La fecha no existe porque en este dia no esta asignado para clases"
     
End Select
End Sub
tan solo que sea mayor a la fecha de hoy no se puede hacer nada
si es hoy y no existe se ingresa para tomar asistencia

Si es hoy y ya existe entonces permite ubicarse para corregir o actualizar registro
quizá sea mas apropiado poner allí  Case Is <= Date

sin embargo en el código para menor debo distinguir entre fecha que existe (con valores en las labels) y fecha que no existe (con cero en las labels)

Ya falta solo un poco en esto y gracias a ti

jhon1904

avatar
Hola visor

veo lo  que único que falta es que omita cuando la fecha sea mayor a la de hoy de resto ya todo esta, yo te sugiero que solo pongas el siguiente código que te valida la fecha superiores a la de hoy y listo.

Código:
If DTPicker1 > Date Then: MsgBox ("La fecha no se puede ingresar, ya que supera la fecha actual"): Dtpicker1 = Date: Exit Sub


te subo el archivo de ejemplo.

saludos,
Archivos
Registrar asistencia V1.xlsm
No tienes los permisos para descargar los archivos.
(63 KB)


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Gracias Jhon1904 efectivamente ahora si ejecuta todo lo relacionado al registro de asistencia usando optionbutton según la fecha y valores de los labels que están según el día.
Falta un par de cosas uno de lo cual subiré en el siguiente tema

Gracias por ayudarme en este utilitario

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.