Buscar todas las coincidencias de texto en rango de otro libro cerrado

02/12/2006 - 21:10 por Brel | Informe spam
Hola grupo,
antes que nada permitirme que indique a Hector que ya funcionó su última
propuesta ya que por problemas de viajes laborales no lo he podido hacer.
Y ahora, al tajo...
Se trata, en resumen , de lo que hace un 'BuscarV' pero para cuando -pueden
existir más coincidencias, el tipico siguiente de un formulario-, bajo estos
preceptos:
Texto a buscar situado en Libro 'Dpto'. Hoja 'Especial' -tributo a Hector
siguiendo sus recomendaciones para que nadie lo vea-.Celda 'B81'
(por si a alguien le sirve el resultado de este se muestra en celda B1 que
tiene la siguiente formula:
=SI($B$81="";"";SI(ESNUMERO(COINCIDIR("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;0));BUSCARV("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;1;0);0))
Detalle: Quise traerme los datos del libro 'Tablas' por codigo sin pasarlos
a celdas de esta hoja 'Especial' y se eternizaba, o no di con el codigo
correcto, claro. Lo digo porque luego vuelco los datos a otras celdas si
estoy conforme con las modificaciones, y quiero volver a guardarlos en
'Tablas', pero tambien estoy atascado en eso que dejo para cuando tenga este
tema resuelto. Cierro parentesis)

Claro, cuando hay más coincidencias esto no sirve (tampoco puedo hacer un
formulario de la base porque Excel se queja de demasiados datos)
La base -aunque esta claro en la formula descrita- es: Libro 'Tablas'.Hoja
'B'. Rango 'B2:B5000' (o podriamos decir 'B:B')
[Ambos ficheros estan en la misma ruta]
Con esta formula se cuantas coincidencias hay:
=SUMA(SI(ESERROR(ENCONTRAR(B81;'D:\[Tablas.xls]B'!$B$3:$B$5000));0;1))
[la formula es matricial, terminar con control+mayusculas+enter]

Lo que quisiera es que me pusiera en el libro 'Dpto'.Hoja 'Especial'.Rango
'B84:Bxx' donde estan estas coincidencias:
si son 2, que B84=Fila 2600 y B85=Fila 3001, por ejemplo...
De forma que con un click de un boton de comando 'sig' del formulario
'Localizador' -es desde donde hago todo- pudiera traerme los datos de la
siguiente coincidencia y este no estuviera habilitado cuando no hubiera
coincidencias o estuvieramos en la ultima. [el tipico 'siguiente' de un
formulario]

Detalle: el libro 'Tablas' esta cerrado y con contraseñas
apertura/escritura -sobra decir que son conocidas por mi.

Perdon por el ladrillo, a veces por intentar explicar uno se lia, y seguro
me he dejado mas de un detalle interesante/necesario para poder darme ideas.
Gracias de cualquier forma.
Brel
 

Leer las respuestas

#1 Héctor Miguel
03/12/2006 - 01:19 | Informe spam
hola, Brel !

[en resumen]... si realmente va a ser preferible/necesario/ineludible/... que 'el otro' libro permanezca cerrado...
de acuerdo con el ultimo 'detalle' que comentas en esta consulta: -> '... cerrado y con contrase#as apertura/escritura ...'
[me temo que]... 'tendras que' mantener 'ese' archivo... d e s p r o t e g i d o [o abrirlo 'tras bambalinas'] por que ???
1) hasta la fecha [o hasta donde se]...
-> NO EXISTE ningun proveedor de acceso a bases de datos [como leer de libros de excel CERRADOS]...
que 'logre entrar' a bases de datos ENCRIPTADAS de excel :-(
2) las sugerencias que he visto -generalmente- van en el sentido de [y siempre y cuando lo necesites ->por codigo<-]...
-> usar el modelo de objetos de excel...
-> abrir una [nueva] instancia de excel ->CreateObject("Excel.Application")<-
-> abrir el libro, proveyendo password/s e indicando el modo de 'solo lectura'
-> 'tomar' los datos... cerrar el libro [sin guardar los cambios]... y 'terminar' la instancia en la que se abrio el libro 'cerrado' ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
... de lo que hace un 'BuscarV' pero para cuando -pueden existir mas coincidencias, el tipico siguiente de un formulario- ...
Texto a buscar situado en Libro 'Dpto'. Hoja 'Especial'Celda 'B81'
(por si a alguien le sirve el resultado de este se muestra en celda B1 que tiene la siguiente formula:
=SI($B$81="";"";SI(ESNUMERO(COINCIDIR("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;0));BUSCARV("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;1;0);0))
Detalle: Quise traerme los datos del libro 'Tablas' por codigo sin pasarlos a celdas de esta hoja 'Especial' y se eternizaba
o no di con el codigo correcto, claro. Lo digo porque luego vuelco los datos a otras celdas si estoy conforme con las modificaciones
y quiero volver a guardarlos en 'Tablas', pero tambien estoy atascado en eso que dejo para cuando tenga este tema resuelto...)
... cuando hay mas coincidencias esto no sirve (tampoco puedo hacer un formulario de la base porque Excel se queja de demasiados datos)
La base -aunque esta claro en la formula descrita- es: Libro 'Tablas'.Hoja 'B'. Rango 'B2:B5000' (o podriamos decir 'B:B')
[Ambos ficheros estan en la misma ruta]
Con esta formula se cuantas coincidencias hay: =SUMA(SI(ESERROR(ENCONTRAR(B81;'D:\[Tablas.xls]B'!$B$3:$B$5000));0;1))
[la formula es matricial, terminar con control+mayusculas+enter]
Lo que quisiera es que me pusiera en el libro 'Dpto'.Hoja 'Especial'.Rango 'B84:Bxx' donde estan estas coincidencias:
si son 2, que B84=Fila 2600 y B85=Fila 3001, por ejemplo...
De forma que con un click de un boton de comando 'sig' del formulario 'Localizador' -es desde donde hago todo-
pudiera traerme los datos de la siguiente coincidencia y este no estuviera habilitado cuando no hubiera coincidencias
o estuvieramos en la ultima. [el tipico 'siguiente' de un formulario]
Detalle: el libro 'Tablas' esta cerrado y con contrase#as apertura/escritura -sobra decir que son conocidas por mi.
Perdon por el ladrillo, a veces por intentar explicar uno se lia
y seguro me he dejado mas de un detalle interesante/necesario para poder darme ideas.

Preguntas similares