John,
Personally, I think the sooner you learn to use ranges vice selection, the better off you will be. Whichever you use, in my experience, just "If Selection.Find.Execute ..." works just as well as "Selection.Find.Execute followed by If Selection.Find.Found ..."
The latter for some reason is a practice of Paul's which I don't understand but also feel he will never change. To each his own. You don't need the public variable "x" at all or the two functions. Just use the form tag property:
Code:
Sub AllFolderDocs_Search()
Dim strFolder As String, strFile As String, strDocNm As String, wdDoc As Document
Dim oFrm As Uform_PauseCode
Application.ScreenUpdating = False
strDocNm = ActiveDocument.FullName
strFolder = GetFolder
If strFolder = "" Then Exit Sub
strFile = Dir(strFolder & "\*.doc*", vbNormal)
While strFile <> ""
'Change the following <> to >= to pick up from where the previous search left off:
If strFolder & "\" & strFile <> strDocNm Then
Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False)
With Selection.Find
.Text = "Dogs"
If .Execute Then
Application.ScreenUpdating = True
Set oFrm = New Uform_PauseCode
With oFrm
.Show vbModeless
Do
DoEvents
Select Case .Tag
Case Is = "Continue"
Unload oFrm
Exit Do
Case Is = "Exit"
Unload oFrm
GoTo lbl_Exit
End Select
Loop
End With
Application.ScreenUpdating = False
End If
End With
DoEvents
wdDoc.Close SaveChanges:=True
End If
strFile = Dir()
Wend
lbl_Exit:
Set oFrm = Nothing: Set wdDoc = Nothing
Application.ScreenUpdating = True
Exit Sub
End Sub
Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
lbl_Exit:
Exit Function
End Function
and:
Code:
Option Explicit
Private Sub Button1_Continue_Click()
Tag = "Continue"
lbl_Exit:
Exit Sub
End Sub
Private Sub Button2_Exit_Click()
Tag = "Exit"
lbl_Exit:
Exit Sub
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
Cancel = True
Button2_Exit_Click
End If
lbl_Exit:
Exit Sub
End Sub