Macro para buscar datos en diferentes tipos de archivos

Antes que nada te agradezco de antemano el tomarte el tiempo para leer mi consulta, espero me puedas ayudar, no soy un experto en programación de visual basic de excel pero no estoy muy perdido, habiendo aclarado esto te hago la siguiente consulta :

Tengo excel 2003, un Userform con un textbox en el cual el usuario puede ingresar un valor y después al presionar un Command Button este haga una búsqueda del texto escrito en el textbox en una ruta en especifico (por ejemplo C : \Information) y que si encuentra la información en uno o mas archivos haga los siguiente en el mismo userform :

"Esto para mera información al usuario"
1-Que en un textbox me diga en cuantos archivos se encontró (1,2,3 etc)
2-Que en un textbox me diga en cuantos archivos reviso dentro de la ruta establecida posteriormente (por ejemplo C:\Information)

3-Que en un Listbox me liste el nombre de los archivos que encontró el texto ingresado por el usuario en el textbox, y que si selecciono un archivo en este listbox y después presiono un Command Button la información encontrada se muestre en otro Listbox mas grande para poder visualizarla mejor

4-En caso contrario de que no encuentre la información dada en el texbox por el usuario, me diga que no se encontró la información
Me gustaría mucho que esta macro no se limitara a un tipo de archivo, por ejemplo que solo buscara en archivos (.txt) si no que tuviera la opción de buscar en varios tipos de archivos (.xls, .doc, .pdf, etc ) cabe recalcar que la información que se tiene que buscar están en archivos en formato word

Para facilitar mas la cosas, te anexo el link de mi archivo para que lo puedas descargar y te des una idea mejor, mi Userform cuenta con un Multi page, en la Page 2 ("Find a failure mode") esta todo lo mencionado arriba.

h t t p s : / / m e g a . C o . N z / # ! L 5 J y B b 5 D ! Y E L j J p A C M D c B 8 0 6 Z j s u r O P 9 l u 9 h z T F T P d M q H y Z 7 _ 2 m 4

Nota : puse varios espacios en el link ya que de lo contrario no me dejaba publicar mi pregunta, en excel puedes poner el link y eliminar los espacios en blanco

2 respuestas

Respuesta
1

El archivo tiene un botón chinnCookBox

En nada se me parece alo que me cuentas

¿Es ese el archivo?

Claro, es ese archivo, por favor ve al editor de visual basic (alt + f11) y hay un userform que contiene un multipage, por favor selecciona la page 2 y ahi viene lo que te comento, la.pestana se llama (find a failure)

Saludos

veo en yws()

MisArchivos = ".txt"

eso selecciona solo archivos .txt

Dices que la información esta en formato word, pero solo usas txt

¿?

Si quieres todo tipo de archivo puedes usar "*.*"

o usar "*.Doc*" si quieres usar formato Word

Pero, si el archivo lo vas abrir con excel te va a fallar algunos tipos no compatibles

En mi version no tengo FileSearch, deberías usar Dir

Me puedes dar un ejemplo de como usar dir ?

Dim MiArchivo, MiRuta, Mi nombre
' Devuelve "WIN.INI" (en Microsoft Windows) si existe.
MiArchivo = Dir("C:\WINDOWS\WIN.INI")
' devuelve el nombre de archivo con la extensión especificada. Si hay más de un *.ini
' el archivo existe, devuelve el primer archivo que se encuentra.
MiArchivo = Dir("C:\WINDOWS\*.INI")
' Utiliza otra vez el comando Dir, sin argumentos, para devolver el
' siguiente archivo *.INI situado en el mismo directorio
MiArchivo = Dir
' Devuelve el primer archivo *.TXT que tenga el atributo de oculto.
MiArchivo = Dir("*.TXT", vbHidden)
' Muestra los nombres en C:\ que representan directorios.
MiRuta = "c:\" ' Establece la ruta.
Mi nombre = Dir(MiRuta, vbDirectory) ' Recupera la primera entrada.
Do While MiNombre <> "" ' Inicia el bucle.
' Ignora el directorio actual y el que lo abarca.
If MiNombre <> "." And MiNombre <> ".." Then
' Realiza una comparación a nivel de bit para asegurarse de que MiNombre es un directorio.
If (GetAttr(MiRuta & MiNombre) And vbDirectory) = vbDirectory Then
Debug.Print MiNombre ' Muestra la entrada
End If ' solamente si representa un directorio.
End If
MiNombre = Dir ' Obtiene siguiente entrada.
Loop

Respuesta

Muy buenos días. Espero estés de maravilla!
Lamentablemente mis conocimientos no bastan para poder solucionar tu problema. Mil disculpas.
Bendiciones!
Lucas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas