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 se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

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

datsh


Buenas tardes,
Tengo la siguiente información:
Grupo,nombres,días,placas de carros y horas. En mi ejemplo son 7 días aunque realmente son los días del mes y como saben algunos días no se laboran como los domingos. El cuadro contiene el numero de horas que labora cada persona(agrupadas las personas en A,B y C) según la placa del carro.

El cuadro que ya tengo es útil y lo tengo que actualizar mensualmente, sin embargo también necesito organizar la información en otro cuadro de otra forma pero totalmente automático(lo deje señalado en rojo), donde me haya contado el total de horas laboradas de las personas por placa y que continue clasificando por grupo, adicional que realice unas sumas.
Espero que haya quedado claro y no haya quedado nada pendiente de mi solicitud.

Muchas gracias de antemano a todos.
Archivos
ejemplo.xlsx
No tienes los permisos para descargar los archivos.
(14 KB)

tyno


Hola datsh.
Estuve mirando tu archivo y te hago un par de consultas:

¿porque Carlos y Felipe aparecen juntos en el grupo B en el cuadro rojo (que sería el cuadro automático) si en el cuadro negro están en distintos grupos y Carolina aparece sola en el grupo C? ¿es un error que tuviste al presentar el ejemplo?
 
¿siempre son tres grupos A,B,C?

¿cuantas personas pueden ir por grupo?


Creo que por ahora es eso. Saludos

datsh


Tyno,
* Quedo por error en mi "cuadro automatico"a Felipe en el grupo B, él es del grupo C como Carolina.


* Pues en el ejemplo son 3 gps ABC, al igual que en mi información real son 3 gps con otros nombres.


* Las personas que van por grupo pueden variar, de hecho podría estar agregando nuevas personas( no importará el orden de personas en cada grupo si llegase haber algún problema con que alguien de ustedes me de una solución con una macro) o quitando personas.
Gracias

tyno


Hola datsh.
Paso tu archivo con una macro que esta en la Hoja Cuadro Automático, la cual genera el cuadro recopilando los datos como has indicado (eso creo).
Como veras en la Hoja 1 (no cambies el nombre a esta Hoja) hay que ingresar los datos repitiendo el grupo y nombre para cada registro que se haga, no como antes que agrupabas celdas con grupos y nombres.
Prueba y avisas. Saludos
Archivos
ejemplo.zip
No tienes los permisos para descargar los archivos.
(35 KB)

datsh


Hola Tyno,muchas gracias, sin embargo ya cuando estaba terminando de adaptar su cuadro en el mío, me percate que el total laborado de cada persona no coincide y tampoco la suma de los grupos. solo está bien la suma total de todos los grupos.

Ejemplo:
Para Ana esta dando total laborado 114 y son 54
Para el grupo C en total laborado dice 804 y es 377.

Su aporte ha sido grande espero me pueda ayudar con eso.

tyno


Hola datsh.

Tienes razón quedó mal una linea.
En el editor de macros de la Hoja Cuadro Automático busca estas líneas:

'sumar total laborado
For b = 6 To Range("c65536").End(xlUp).Row
For a = 3 To Range("iv5").End(xlToLeft).Column +1
If Cells(5, a) <> "PER" Then
If Cells(5, a) <> "PET" Then
If Cells(5, a) <> "VAC" Then
If Cells(b, a) <> "" Then Cells(b, Range("iv5").End(xlToLeft).Column) = Cells(b, Range("iv5").End(xlToLeft).Column) + Cells(b, a)
End If
End If
End If
Next a
Next b




Y cambia los valores de la línea que he remarcado en rojo por lo que te indico aquí abajo:


'sumar total laborado
For b = 6 To Range("c65536").End(xlUp).Row
For a = 3 To Range("iv5").End(xlToLeft).Column -2
If Cells(5, a) <> "PER" Then
If Cells(5, a) <> "PET" Then
If Cells(5, a) <> "VAC" Then
If Cells(b, a) <> "" Then Cells(b, Range("iv5").End(xlToLeft).Column) = Cells(b, Range("iv5").End(xlToLeft).Column) + Cells(b, a)
End If
End If
End If
Next a
Next b


En lugar de +1 va -2. Creo que con eso debería andar bien. Lo mejor que copies este código que te he pasado y lo reemplaces en el que tienes en la macro.
Saludos

datsh


Bien! gracias.Aunque si me pueden explicar con tu ejemplo de excel que quiere decir esas sumas y restas, como para entender que operación realizaba antes de arreglarlo.
No quisiera extender este tema pero a medida que cuadro mi archivo salen inconvenientes,espero que no haya problema con preguntar a cada rato.
Mi hoja 1 contiene 31 días y en el VBA la adapte cambiando las 3 líneas(para definir en que columna están mis placas) que dicen algo como:



Código:
For Each celda In .Range("f3:f103,h3:h103,j3:j103,l3:l103,n3:n103,p3:p103,r3:r103,t3:t103,v3:v103,x3:x103,z3:z103,ab3:ab103,ad3:ad103,af3:af103,ah3:ah103,aj3:aj103,al3:al103,an3:an103,ap3:ap103,ar3:ar103,at3:at103,av3:av103,ax3:ax103,az3:az103,bb3:bb103,bd3:bd103,bf3:bf103")




Mi rango va hasta la columna BN y solo me esta sirviendo el cuadro automático hasta la BF, no se si es limitación en el texto, en el rango o algo que este en el VBA que lo restringe.

tyno


Hola datsh.

No se bien cual es el problema, si tienes que recorrer hasta la columna BN, entonces agregas los rangos que falta. En el código que has pasado veo que solo agregaste hasta el rango bf3:fb103, por lo tanto agrega los que faltan bh3:bh103, bj3:bj103,....etc.

Lo de sumas y resta supongo que debe ser esto:

For a = 3 To Range("iv5").End(xlToLeft).Column +1 //// For a = 3 To Range("iv5").End(xlToLeft).Column -2

Esta instrucción Range("iv5").End(xlToLeft).Column lo que hace es encontrar desde una celda de referencia (en este caso IV5) el numero de la primer columna con datos hacia la izquierda. Si por ejemplo en la celda N5 hubiese un dato entonces el valor devuelto sería 14 (porque la columna N es la 14) por lo tanto el bucle sería For a=3 to 14. Ahora verás que también a veces  sumo o resto algún número a este valor de la columna, bueno esto depende de cual quiero que sea el limite del bucle For Next. Siguiendo con el ejemplo: si el valor de la primer columna con datos resulta ser 14 pero yo necesito que el bucle siempre recorra dos lugares menos entonces obviamente le resto 2 a Range("iv5").End(xlToLeft).Column.

Saludos

datsh


Correcto eso hice, solo que te envíe hasta bf3:bf103 que es cuando me carga todo y bien el cuadro automático, cuando le agrego el bh3:bh103..hasta el bn3:bn103 el cuadro automático solo me muestra las columnas de Grupo y Nombre.

Estaba agregando más columnas con otros nombres del tipo VAC,PER etc.. pero me registro un error de compilación, aunque sentí que agregué de igual forma como estaban los permisos y demás.
Espero que me pueda ayudar con mi propio archivo ya que necesito tener esa información antes de que se acabe el mes, no se como hacerle llegar mi archivo porque no tengo acceso para enviarle un mensaje privado, habilite el mío para ver si me quiere regalar su correo y enviarle así mi archivo, o como bien le parezca.
Muchas Gracias Tyno.

tyno


Hola datsh.
¿Porque no subes el archivo tal cual lo vas a utilizar en realidad? no hace falta que tenga datos privados pero si que se parezcan a los que vas a utilizar y de paso me señalas en  que momento o donde saltan los errores. Saludos

datsh


Bueno, en mi archivo estan:VAC,EV,INC,PRM,PRP,NOR Y NEW que es tiempo total no laborado.


Así está en el archivo para definir el rango de placas
("f3:f103,h3:h103,j3:j103,l3:l103,n3:n103,p3:p103,r3:r103,t3:t103,v3:v103,x3:x103,z3:z103,ab3:ab103,ad3:ad103,af3:af103,ah3:ah103,aj3:aj103,al3:al103,an3:an103,ap3:ap103,ar3:ar103,at3:at103,av3:av103,ax3:ax103,az3:az103,bb3:bb103,bd3:bd103,bf3:bf103")

si lo dejo hasta el rango de BN, en el cuadro automático solo me salen las columnas grupo,nombre,total laborado y total no laborado
("f3:f103,h3:h103,j3:j103,l3:l103,n3:n103,p3:p103,r3:r103,t3:t103,v3:v103,x3:x103,z3:z103,ab3:ab103,ad3:ad103,af3:af103,ah3:ah103,aj3:aj103,al3:al103,an3:an103,ap3:ap103,ar3:ar103,at3:at103,av3:av103,ax3:ax103,az3:az103,bb3:bb103,bd3:bd103,bf3:bf103,bh3:bh103,bj3:bj103,bl3:bl103,bn3:bn103")


Nota:En mi hoja 1 tengo ocultas las columnas C,D,E porque tengo info irrelevante ahí.

Gracias amigo
Archivos
TNO.xlsm
No tienes los permisos para descargar los archivos.
(156 KB)

tyno


Hola datsh.
Prueba el archivo. Saludos
Archivos
TNO2.zip
No tienes los permisos para descargar los archivos.
(86 KB)

datsh


Tyno en las placas que son del tipo OTM parece que tiende a dejar uno de esos por fuera del cuadro automático, la suma total de tiempo laborado y tiempo no laborado= 202 horas. En el caso de NOHORA da 200,5horas le faltan 1,5horas de OTM 004-13 que no lo puso el cuadro automático.
Estoy teniendo el mismo problema con el archivo que estaba modificando ayer.
Muy amable por su ayuda

tyno


Hola datsh.
Prueba el archivo ahora. Saludos
Archivos
TNO2.zip
No tienes los permisos para descargar los archivos.
(81 KB)

datsh


Doy por cerrado el tema, no vi bien cual fue el cambio que hizo, pero bueno.
Muchísimas gracias por su paciencia y disposición Tyno.  
Smile

tyno


Hola datsh.
El problema era que no me percaté que las columnas donde van las placas y las cantidades no siempre estan seperadas por la misma cantidad de columnas, ahora modifiqué el código para que funcione como corresponde, bueno eso creo. Cualquier cosa me avisas y si está solucionado el tema lo das por resuelto. Gracias

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.