Necesito una macros para buscar un texto dentro de un archivo de WORD 2010

Tengo este pequeño codigo pero no puedo ejecutarlo :

Sub Busca_e_Informa()
[A:A].ClearContents
With Application.FileSearch
.NewSearch
.LookIn = "C:\Users\almacen\Desktop\BLOC DEL DIA\word"
.Filename = "A*; Z*"
.SearchSubFolders = False
.TextOrProperty = "saga"
.FileType = msoFileTypeWordDocuments
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Range("A" & i) = .FoundFiles(i)
Next i
Else
MsgBox "No se encontró ningún archivo."
End If
End With
End Sub

me sale el objeto no admite esta accion: "With Application.FileSearch"

1 respuesta

Respuesta

Es porque en estas nuevas versiones ya no se utiliza FileSearch sino esta otra:

With CreateObject("scripting.filesystemobject")

Sdos.

Elsa

http://aplicaexcel.galeon.com/manual_500Macros.htm 

gracias elsa :

me preguntaba si podrías ayudarme ,mi problema es el siguiente

lo que pasa es que tengo varios documentos de word  dentro de ellos esta escrito el nombre y apellido de solo 1 persona y como ese documento tengo varios de diferente personas , estoy buscando una macros que me lea el documento de word internamente y busque el nombre y apellido que le ponga en la macros 

Solo intenté responder a tu problema sobre la instrucción que ya en estas nuevas versiones de Excel no se utiliza sino que fue cambiada por la nueva.

No tengo mucho tiempo estos días para las consultas ... si con el ejemplo adjunto no puedes avanzar debieras dejar una nueva consulta ya con el código que te dejo actualizado para que otros completen la tarea ( o yo misma cuando me desocupe).

Sub BuscoArchivos()
'x Elsamatilde
Dim Archi        'guarda el nombre de cada archivo encontrado
Dim Dire  As String      'guarda el directorio a revisar
[A:A].ClearContents
Dire = "C:\Users\almacen\Desktop\BLOC DEL DIA\word"
'se crea la referencia al objeto Filesystem
With CreateObject("scripting.filesystemobject")
    With .GetFolder(Dire)
    'se recorre el conjunto de archivos encontrados
    For Each Archi In .Files
    If Split(Archi.Name, ".")(1) = "docx" Then
        MsgBox Archi.Name 'ver nota
    End If
    Next
    End With
End With
End Sub

Lo que hace la macro es devolver en un MsgBox el nombre de los docs encontrados en la carpeta... esa instrucción debes cambiarla por la de la búsqueda de tu texto. Seguramente tendrás que abrirl el doc  y todo lo que sigue.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas