Excel - Buscar dentro de documentos de Word

 
Vista:
sin imagen de perfil

Buscar dentro de documentos de Word

Publicado por JONATHAN GUTIERREZ (89 intervenciones) el 17/01/2009 20:32:23
Saludos a todos
Necesito ayuda, quisiera saber el código para una macro que me busque en una carpeta especifica (digamos c:oficios) en todos los documentos de Word y me ponga los nombres de los archivos que contienen dicha palabra en su interior, sería fantastico que salieran vinculados en una lista

debo aclarar que se trata de una hoja de excel, en la columna A tengo como 15 renglones con las palabras a buscar.

Desde ya muchas gracias, esperando su apoyo quedo en espera

Jonathan Gutierrez
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
Imágen de perfil de JuanC

RE:Buscar dentro de documentos de Word

Publicado por JuanC (1237 intervenciones) el 17/01/2009 21:32:31
Option Explicit

'//By JuanC - Ene. 2008

Sub SearchWordsInDoc()
Dim wDoc As Object
Dim wApp As Object
Dim fs As Variant
Dim lCount&, i&, sText$
Dim sFullName$, lOff&

Set fs = Application.FileSearch

Set wApp = GetWord
If wApp Is Nothing Then GoTo Fin

Application.ScreenUpdating = False

sText = "julio" '//Texto a buscar

Set fs = Application.FileSearch
With fs
.LookIn = "c:windowsescritorio" '//Carpeta de búsqueda
.SearchSubFolders = True
.Filename = "*.doc"
If .Execute(SortBy:=msoSortByLastModified, SortOrder:=msoSortOrderAscending, AlwaysAccurate:=True) > 0 Then
lCount = .FoundFiles.Count
For i = 1 To lCount
sFullName = .FoundFiles(i)
Set wDoc = wApp.Documents.Open(sFullName)
If Not wDoc Is Nothing Then
If FindText(wDoc, sText) Then
[A1].Offset(lOff).Hyperlinks.Add Anchor:=[A1].Offset(lOff), Address:=wDoc.FullName, TextToDisplay:=Mid(sFullName, InStrRev(sFullName, "") + 1)
lOff = lOff + 1
End If
wDoc.Close False
End If
Next
End If
End With

wApp.Quit

Fin:
Application.ScreenUpdating = True

Set fs = Nothing
Set wApp = Nothing
Set wDoc = Nothing
End Sub

Private Function GetWord() As Object
On Error GoTo Create
Set GetWord = GetObject(, "Word.Application")
Exit Function
Create:
Set GetWord = CreateObject("Word.Application")
End Function

Private Function FindText(ByVal Doc As Object, ByVal sText As String) As Boolean
On Error Resume Next
With Doc.Content.Find
.ClearFormatting
If .Execute(FindText:=sText) Then
FindText = True
Else
FindText = False
End If
End With
End Function

Saludos desde Baires, JuanC
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
sin imagen de perfil

RE:Buscar dentro de documentos de Word

Publicado por JONATHAN GUTIERREZ (89 intervenciones) el 19/01/2009 16:58:28
Gracias, por contestar, solo tengo un problema, en Excel 2007 me marca un error que dice que el objeto no permite esa acción y en Excel 2003 corre pero no hace nada.

pregunto ¿Debo crear algun tipo de formulario? ¿Se guarda como una formula personalizada? ¿Qué estoy haciendo mal?

Muchas Gracias nuevamente por tu respuesta

Atte. Jonathan
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
Imágen de perfil de JuanC

RE:Buscar dentro de documentos de Word

Publicado por JuanC (1237 intervenciones) el 19/01/2009 22:06:00
lo que te pasé es una macro y debe manejarse como tal
podría convertirse en función, pero si no puedes hacerla andar como está no creo que puedas convertirla a función...
y si no tienes el conocimiento elemental de VBA no podrás hacer mucho
yo sólo te dí una base como para que lo termines a tu gusto, suponiendo que sabes algo de VBA / macros
si no es así, pues habrá que empezar a leer un poco!

Saludos desde Baires, JuanC
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
sin imagen de perfil

RE:Buscar dentro de documentos de Word

Publicado por JONATHAN GUTIERREZ (89 intervenciones) el 20/01/2009 01:29:53
Gracias nuevamente por responder, si conozco de VBA, aunque reconozco que no mucho, ya resolví el problema, lo que sucede es que yo puse unos archivos en word en el escritorio con la palabra "julio" como dice el codigo de tu macro, soloi que en la ruta faltaba la diagonal invertida y por eso no me funcionaba, por el momento me ha sacado de apuros, voy a tratar de crear un formulario para mejorarla, muchas gracias nuevamente.
Saludos desde Mexico
Jonathan Gutierrez
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:Buscar dentro de documentos de Word

Publicado por Santiago (193 intervenciones) el 29/01/2009 06:10:52
Te adjunto el archivo en http://scuestam.tripod.com/buscar_archivos.xls

Un saludo desde Ambato, Ecuador
SCM
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