Informe Conexión-Desconexión

30/04/2006 - 09:54 por smartito | Informe spam
Hola !

Pues tengo el siguiente problema, no me sale una macro que tengo que
hacer, os cuento:

Tengo un Libro ( "ConexionDesconexion.xls" ) que tiene dos Hojas (
"Reporte", "Calculo Retrasos" )

Dentro de la Hoja "Reporte" tengo las siguientes columnas con datos.

Columna A: "Nombre del agente"
Columna B: "Extn"
Columna C: "Hora de Acceso"
Columna D: "Hora de Desconex."
Columna E: "Identif."

Los encabezados de columna empiezan en la fila 3 (tres)
Los datos empiezan en la fila 4 (cuatro)

En esta hoja tenemos datos por ejemplo:

Nombre del agente Extn Hora de Acceso Hora de Desconex. Identif.
JuanAntonioCastillo 61588 07:59 11:01 65123
JuanAntonioCastillo 61588 11:03 14:10 65123
JuanAntonioCastillo 61588 14:10 16:01 65123
ManuelRomero 61511 08:13 15:02 65155
ManuelRomero 61511 15:05 15:49 65155

Bien creo que con estos datos es suficiente, paso a describir la hoja
"Calculo Retraso"

Columna B: "Nombre del Agente"
Columna C: "Id Empleado"
Columna D: "Identif."
Columna E: "Hora Ent"
Columna F: "Hora Sal"
Columna G: "Cms Ent"
Columna H: "Cms Sal"
Columna I: "Ret Ent"
Columna J: "Ret Sal"
Columna K: "Total Ret"

Los encabezados empiezan en la fila 1 (uno)
Los datos empiezan en la fila 2 (dos)

Nombre del agente Id Empleado Identif. Hora Ent Hora Sal Cms Ent Cms
Sal Ret Ent Ret Sal Total Ret
JuanAntonioCastillo 41444 65123 08:00 16:00 07:59 16:01 00:00 00:00 00:01
ManuelRomero 41455 65155 08:00 16:00 08:13 15:49 00:13 00:11 00:24

Creo que se entiende bien lo que no me sale hacer con la macro, os
cuento.

En la Hoja "Reporte" vemos que tenemos tantas filas como
ConexionDesconexion al sistema tenga el agente, de ahí que se repitan
lineas de igual agente pero con distintas entradas salidas.
Lo que hay que conseguir es que partiendo de esos datos en la Hoja
"Calculo Retraso" saque los datos por agente. Es decir, al Agente
JuanAntonioCastillo (Soy yo :P) me haga los calculos necesarios para
saber si hago bien mi turno...

Decir que en la Hoja "Calculo Retrasos" ya hay datos como por ejemplo,
el "Hora Ent" y "Hora Sal" están ya introducidos, es el turno que
deberia hacer el agente, el "Identif." tb está introducido, y el
"Nombre del agente" y "Id Empleado" tb están.

Espero que no se me quede nada en el tintero (esto lo digo por nuestro
amigo Hector Miguel ;) )

Si no se entiende algo, [o necesitais información adicional] me
comentais ok?
Un saludo y de antemano muchas gracias por vuestra lectura.
Juan Antonio Castillo

Preguntas similare

Leer las respuestas

#6 AnSanVal
02/05/2006 - 01:15 | Informe spam
Hola Juan Antonio (no habia entrado al foro hoy).
Seguramente no te funciona porque yo hice mi ejemplo (y me funciona) desde
la columna A hasta la J, y NO desde la B hasta la K, como acabo de ver que
lo tienes tu. No me habia fijado que lo indicas asi en tu ejemplo. Ahora no
tengo tiempo. Si puedo mañana le doy un repaso. Mientras, intenta tú
modificar los rangos en el módulo a una columna más. :-(

Un saludo desde Tenerife (España).
**********************************
"smartito" escribió en el mensaje
news:
Hola,

Gracias por tu respuesta, pero no hace lo que buscaba...

Te comento por partes...

Veamos si es esto lo que necesitas. En la hoja2:
en H2 escribe: =SI(F2>D2;F2-D2;0)
en I2 escribe: =SI(G2<E2;E2-G2;0)
en J2 escribe: =H2+I2
copias y pegas hacia abajo hasta donde tengas nombres.



me imagino que eso es para calcular los retrasos, tendria que colocarlo
en I2, J2, K2

y con respecto al modulo.. creo que te falta ir aumentando las filas o
las columnas dentro del for... ya que no hace nada..
de todos modos a ver si alguien más puede aportar algo a este hilo ;)

Gracias de nuevo,
Un saludo,
Juan Antonio Castillo
Respuesta Responder a este mensaje
#7 smartito
02/05/2006 - 11:49 | Informe spam
Hola AnSalVal,

Asi es !! ya está solucionado! muchisimas gracias, de verdad !

Pego el código correcto (o al menos como a mi me funciona)

Public Sub CalcularRetrasos()

Dim he As Date
Dim hs As Date
Dim fila As Integer
Sheets(2).Cells(2, 4).Select
Do Until ActiveCell = ""
he = Sheets(2).Cells(2, 5)
hs = Sheets(2).Cells(2, 6)
For fila = 4 To 100
If Sheets(1).Cells(fila, 5) = "" Then Exit For
If Sheets(1).Cells(fila, 5) = ActiveCell Then
If Sheets(1).Cells(fila, 3) < he Then he Sheets(1).Cells(fila, 3)
If Sheets(1).Cells(fila, 4) > hs Then hs Sheets(1).Cells(fila, 4)
End If
Next fila
Cells(ActiveCell.Row, 7) = he
Cells(ActiveCell.Row, 8) = hs
ActiveCell.Offset(1, 0).Select
Loop
End Sub


Un saludo,
Juan Antonio Castillo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida