¿Cómo evitar do loop para trabajar con distintas hojas de un mismo libro?
La hoja “Ayudantes”, contiene los detalles como: ficha (código interno del trabajador), tipo de asistencia o inasistencia, fecha, códigos de transportes en los que trabajó, y otras variables que condicionarán el monto total de su bonificación por día.
Las filas representan el detalle del día, por cada trabajador, y estas se encuentran ordenadas de tal manera que presenta los datos agrupados por cada trabajador, o sea, si el ayudante solo cuenta con 5 días, las 5 filas estarán en orden consecutivo, por lo terminando la información de este, comienza con los de otro, y así sucesivamente.
En esta primera hoja, utilizando do loop, recorro las celdas de cada fila para almacenar en variables, datos como ficha y nombre, los cuales utilizaré para ubicarlos en la hoja “Reporte”, donde presentaré, además, fecha de inicio y fin que se consideró para los cálculos, total de bonificaciones y la cantidad de cada tipo de bonificación que determinó dicho total. El dato “ficha”, lo utilizo para que el ciclo secundario almacene los datos, mientras este dato se mantenga en las filas, e ir contando y acumulando las distintas bonificaciones asignadas a este.
Dentro de las celdas a analizar por fila, se encuentran los códigos de transporte en los cuales participó, donde por cada día (fila), puede llegar a tener hasta 6, y por cada transporte le corresponderán 5 o más clientes. En la hoja “Concrecion” se indican los códigos de clientes asignados a cada transporte, y en la hoja “Clientes”, se encuentra el código de cliente con sus respectivos datos que determinarán igualmente las bonificaciones por transporte. Para esto, con un tercer ciclo do loop recorro los transportes, guardando el primero en una variable, para luego pasar a la hoja “Concreción” para buscar la coincidencia en la columna “A”. Al encontrarla, copio en otra variable, el código de cliente que se encuentra en columna “B”. Con esto, paso a la hoja “Clientes”, para buscar en la columna “A” la coincidencia. Al encontrarla. Comienzo a evaluar la información que se presenta en su misma fila.
Luego de lo anterior, repito dentro del tercer ciclo este procedimiento para buscar el siguiente cliente asignado al mismo código de transporte, debiendo regresar a la hoja “Concrecion”. Así hasta que se encuentre con una celda vacía, donde volverá al segundo ciclo para pasar al siguiente código de transporte.
Este segundo ciclo, se repite hasta que se tope con una celda vacía o la celda no contenga números.
Todo esto me da resultado, solo si reúno las 3 hojas en una sola, pero pasar de una hoja a otra, para luego volver para sacar datos y aplicar operaciones, no. Por este motivo, les pido ayuda para ver cómo lo puedo hacer, ya sea conservando las instrucciones do loop, o aplicando otras que me permitan hacer más rápido todo este procedimiento, que dejo en el siguiente enlace, pudiendo, además, trabajar sin concentrar toda la información en una sola hoja.