Excel - "buscarv" en VB con planillas desordenadas

   
Vista:

"buscarv" en VB con planillas desordenadas

Publicado por Javiera (1 intervención) el 24/08/2009 18:42:12
Hola, ojalá me pudieran ayudar con lo siguiente:

Tengo 2 planillas: Elementos y Trabajadores.

En la planilla Elementos aparecen datos de ropa de seguridad que se les ha entregado a los trabajadores, siendo sus columnas: RUT, NOMBRE, AREA, ELEMENTO....etc. Sin embargo, por un problema del sistema que genera esta planilla, no arroja bien el nombre del AREA a la cual pertenece el trabajador, por lo que este dato quiero sacarlo de la otra planilla TRABAJADORES. La planilla TRABAJADORES tiene varias columnas entre las que están RUT, NOMBRE, AREA DONDE SE DESEMPEÑA....etc.

La idea es hacer en VB una función parecida a lo que hace buscarv, que busque cada RUT de la planilla ELEMENTOS en la planilla TRABAJADORES y que copie en la tercera columna, el valor encontrado en la columna "AREA DONDE SE DESMPEÑA" de la tabla trabajadores. Acá es donde surge mi otro problema, la planilla TRABAJADORES no está siempre ordenada de la misma manera y por eso no me sirvió hacer una macro de buscarv inmediatamente. Sin embargo, los datos RUT siempre se encontrarán bajo una celda que le dá el nombre a la columna "Rut" y los datos "AREA DONDE SE DESMPEÑA" siempre están bajo la columna con nombre "Area donde se desempeña"....son como los títulos de las columnas de la planilla trabajadores y pueden estar en cualquier fila y columna (como te conté, la tabla no siempre la ordenan de la misma manera).

No sé si se pueda hacer una función algo parecida a buscarv en VB, pero que use los datos RUT Y AREA DONDE SE DESMPEÑA que se encuentran en toda la columna debajo de las celdas que tienen por nombre "Rut" y "Area donde se desempeña" respectivamente`.

Espero haberme explicado bien...agradezco de antemano las ayudas, ya que hace tiempo que estoy complicada con esto....saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:

Publicado por anonimo (70 intervenciones) el 24/08/2009 19:08:25
yo quiero hacer dinero y no espero que lo hagan por mi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:

Publicado por Javiera (1 intervención) el 25/08/2009 18:26:43
la verdad es que no comprendo mucho la intención de la anterior respuesta, pero sí creo q la idea es criticar la pregunta

sólo hice una consulta, si alguien la puede y quiere responder le agradeceré enormemente, sino, agradezco de todas maneras las ganas de ayudar, de eso se trata esto, no tiene nada que ver con dinero

lástima que lo hayas entendido así
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

"buscarv" en VB con planillas desordenadas

Publicado por Mark (273 intervenciones) el 27/08/2009 04:44:11
Hola, yo para estos casos de escribir en foros te recomendaría siempre colocar lo que has hecho, así quienes te responden evitan pensar cosas que tal vez tu no quieres expresar.

Ahora si atendiendo a tu pregunta, tienes varias opciones, una es que quien te crea el reporte (me imagino una SQL) te lo envíe con el mismo formato, además no creo que quien la genera la cree cada vez que tu se la pides. Otra seria usar varias de las funciones agregadas del Excel con las cuales podrías generar tu procedimiento sin la necesidad de VBA, dándole a F1, veras

Función Indirecto
Función Desref
Función Dirección
Función Índice
Función Coincidir
Otras mas

Luego iras al menú Insertar/Nombre/Definir y a utilizar rangos dinámicos con eso!!!

Al grano, veras de entrada una solución que se me ha ocurrido al ver tu post es encontrar el número de la columna, ya que entiendo que es lo que afectaría un BuscarV común (me refiero a no usar VBA), por lo tanto para realizar un ejemplo, he tomado lo siguiente:

* Un libro con dos hojas, Hoja1 y Hoja2. Desde la primera aplicarías BuscarV sobre la segunda, esta segunda (Hoja2) es la que tendría tu reporte con la columna que cambia de posición
* En la columna A de la Hoja1 estaría el RUT, en la B me supongo que estaría el nombre y en la C "AREA DONDE SE DESEMPEÑA"

Por lo que sin muchas pruebas podría quedar algo como =COLUMNA(INDICE(Hoja2!$A$3:$T$3;COINCIDIR($C$5;Hoja2!$A$3:$T$3;0))); aquí esta demás decirte que C5 en la función Coincidir esta en la Hoja1

Tu trabajo seria incorporar ese número de columna en el tercer parámetro de la Función BuscarV, y por favor no dejes de escribir Falso en el cuarto parámetro de esta, algo así:

=BUSCARV(A6;Hoja2!$A$4:$C$8;COLUMNA(INDICE(Hoja2!$A$3:$T$3;COINCIDIR($C$5;Hoja2!$A$3:$T$3;0)));FALSO)

Con esto deberías resolver tu problema, tal vez JuanC, Abraham (te nombro los mas activos pero hay otros) puedan aportarte algo mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BUSCARV

Publicado por Cesar (57 intervenciones) el 27/08/2009 17:02:36
mmm, bien complicadito, pero posible

Cuan desordenado genera el reporte en la planilla trabajadores, es verdad que lo genera en cualquier fila y cualquier columna?????
si es asi, primero hay que hacer algo para ordenar tus datos, de otra forma lo complicariamos mas. En una macro previa, deberas primero encontrar las cabeceras, y sus datos adjuntos (usa FIND, con el texto que vas a buscar, que seria "Rut" y "Area donde se desempeña", luego un END hacia abajo), este rango lo copias a otro lado donde si esté ordenado, y donde si tengas celdas vicnuladas a tu planilla de Elementos."

Eso es lo que se me ocurre, ojala te haya sido de utilidad.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar