Saltar al contenido

Error al buscar en dos listas concatenadas


Recommended Posts

publicado

Hola, no salgo de un problema cuando ya estoy con otro, dichoso gráfico.


Os cuento, hay las dos listas concatenadas en una tercera lista:
Lista1 –– Lista2 ––––– Lista3
    1         Mañana        1 Mañana
    2         Tarde             2 Tarde


En la lista desplegable se muestra la tercera, que al escoger una de las opciones de esa lista por ejemplo “1 Mañana”, en la celda se queda el uno “1”, que desde una macro busca ese texto “1” en un listado.
Pero muestra un error, porque lo que busca no es el uno “1”, que es lo que se queda en la celda, si no que buscar el texto “1 Mañana”.

Como puedo hacer para que desde esa macro busque el valor que se queda en la celda que en este caso seria “1”, en lugar del texto completo “1 Mañana”.

La búsqueda se realiza sobre la celda AR7

 

Si alguien me puede echar una mano se la agradecería.

Gracias.

Lista con dos columnas - PRUEBAS 7.xlsm

publicado

amigo @JuanP ya conteste el otro tema, viendo la pregunta aqui, sigo sin entender, pero creo que te estas ahogando en un baso de agua amigo, en la tabla que tienes en la hoja "Datos 2" la columna TURNO tiene codigo UNICOS para cada turno, por lo tanto la busqueda la puedes hacer simplemente por ese campos, es decir, daria lo mismo si buscas "1" o buscas "1 - Mañana" ya que es código es unico, igual si buscas "1FSI" o buscas "1FSI - Mañana FS Inicio", ahora si tuieras por ejemplo "1 - Tarde",  alli si tendrías problema, pues el 1 NO sería unico y estaría asociado a dos resultados, por lo cual si tendrias que buscar la palabra completa

no se si es que no estoy entendiendo, si no es asi, pues explica mejor exactamente que es lo que necesitas.

suerte

publicado

Hola bigpetroman, a ver si puedo explicarme mejor, esta hoja es uno de los primeros pasos para crear un gráfico, con horarios de los turnos, etc, primero antes de crear el grafico de cada usuario, que tendrá puesto los horarios de entrada, salida, etc, y otra clase de eventos, busco a ver si el turno existe.

Los turnos van a llevar números y letras, ya que hay varios turnos de Mañana porque tienen horarios diferentes. 

Para dar una pequeña ayuda de que turnos corresponden a cada grupo, porque para un grupo el 1 será de mañana y para otro grupo será el 23FL, he puesto la lista desplegable para que muestre para un grupo “1 mañana” y para el otro “23FL mañana”, pero lo que se tiene que quedar en la celda es el 1, o el 23FL.

Y luego entre cada fila de turnos (turno 1, turno 2, etc..) hay una fila oculta que llevara si esta de mañana la M, ese es otro grafico que se tiene que crear solo lleva los turnos M, T y N (no está puesto en el archivo ejemplo que está en el post)

El buscador tiene que buscar el turno (igual pueden llegar a 10 hojas), y que me está pasando con el buscador, que en lugar de hacer la búsqueda por el 1 o el 23FL que es lo que se queda en la celda, está haciendo la búsqueda por lo que muestra la lista desplegable “1 mañana”

 

He intentado poner un código como el que hay en el “Worksheet_Change” para dejar el 1 o 23FL en la celda “Target.Value = VBA.Left(.Value, VBA.InStr(1, .Value, " ", vbTextCompare) - 1)” para que deje solo las primera letras antes de hacer la búsqueda, pero no se como poner ese código para que realice bien la búsqueda del contenido de la celda y no de la lista desplegable.

 

Y porque buscar en la columna TURNO, porque hay otros eventos que en la columna TURNO Y TEXTO no hay contenido.

 

 

publicado

Hola bigpetroman, como ya te comente...... iba a preparar un nuevo archivo, que tendría otras hojas donde realizo otras búsquedas que no tiene nada que ver con el problema de esta hoja, porque veo que subiría otro archivos que tendría el mismo problema, con mas hojas que no tienen nada que ver con esta. 

Mira si yo en lugar de poner la lista desplegable, escribo directamente el uno "1", no hay problema para realizar la búsqueda.

El problema viene cuando pongo la lista desplegable porque la búsqueda la hace del texto "1 Mañana", y luego coloca el 1 en la celda, pero primero hace la búsqueda de lo que se selecciona en la lista desplegable.

No se si ahora ves la diferencia. 

Por cierto, en el primer post hay un archivo subido.

Editado

Mira en la celda K7 selecciona de la lista desplegable un turno, te dara error porque busca "1 Mañana", ahora escribe en esa celda por ejemplo el numero 3, veras como lo busca y no te da error.

 

publicado

Bueno parece que ya lo he conseguido, o eso creo porque no me da tiempo a probar mas, mañana seguiré haciendo pruebas por si da algún fallo.

Como veo que hay quien se ha bajado el archivo lo comento y pongo el archivo para que no tengan que hacer pruebas, y por si quieren pegarle un vistazo aquellos que saben de que va el tema, por si hay alguna otra forma de hacerlo mejor.

 

 

Lista con dos columnas - PRUEBAS 8.xlsm

publicado

amigo @JuanP, la explicación no la entendi mucho, luego de revisar y revisar, pues note que es UNA FORMULA que tienes que llama a esa funcion, pues NO habias dicho nada y andaba loco.

NO entiendo cual es la idea, simplemente saber si por algún motivo alguien coloco un turno que no existe?, si es asi, revisa el anexo, NO es necesaria la formula, simplemente en el mismo evento CHANGE de la hoja realizas la validación luego del cambio y das el mensaje.

y en tu funcion de busqueda, buscas en TODAS las hojas, lo cual NO es lógico, pues es una perdida de tiempo, la acomode para evitar eso

 

Suerte

Lista con dos columnas - PRUEBAS 8.xlsm

publicado

Hola bigpetroman, como es el único modulo que hay con la formula pensé que se vería, y al estar puesta en la celda con un nombre personal se vería.

 

La idea es buscar en los turnos que hay si el que he introducido existe.

Y buscar en todas las hojas, a no ser que metiese mal el dato, la idea es que busque a partir de una determinada hoja, porque igual puede llevar 10 hojas con turnos, cada hoja para un grupo, pero estoy pensando que en lugar de buscar en esas hojas hasta que encuentre el turno, que cuando se seleccione el grupo solo busque en la hoja que corresponde a ese grupo, por lo que el Array que has puesto en el módulo mBuscarT se tendría que cambiar o quitar, para que solo busque en una hoja, no?

publicado

Vale bigpetroman, como te he comentado se adapta mas a resolver el problema, aunque tendría que cambiar un poco la forma de obtener los datos de otras hojas, pero igual tengo que cambiar un poco la forma de trabajar, asi que puedo aprovechar para ponerlo como el ejemplo que has puesto, que me gusta mas al ejemplo que he puesto en el otro archivo porque elimino algunos pasos.

Gracias.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.