I found two different examples of code that I think will help do what I want, but I cannot figure out how to get them together. Examples are below. I am running Excel 2007.
I want to prompt the user to browse to a folder then prompt for what text to find and what text to replace with.
Example Browse to folder "C:\Formulas", then prompt "Find what?", prompt "Replace with what?", prompt "Replace all instances?"
My biggest and probably the simplest problem is activating the Browse To function from within the sub.
Thanks in advance for any help.
Regards,
-Ronnie
Change all text in single .txt file code
Browse to folder function
I want to prompt the user to browse to a folder then prompt for what text to find and what text to replace with.
Example Browse to folder "C:\Formulas", then prompt "Find what?", prompt "Replace with what?", prompt "Replace all instances?"
My biggest and probably the simplest problem is activating the Browse To function from within the sub.
Thanks in advance for any help.
Regards,
-Ronnie
Change all text in single .txt file code
Code:
Sub Edit_Text_File(SourceFile As String, _
sText As String, rText As String)
Dim TargetFile As String, tLine As String, tString As String
Dim p As Integer, i As Long, F1 As Integer, F2 As Integer
TargetFile = "RESULT.TMP"
If Dir(SourceFile) = "" Then Exit Sub
If Dir(TargetFile) <> "" Then
On Error Resume Next
Kill TargetFile
On Error GoTo 0
If Dir(TargetFile) <> "" Then
MsgBox TargetFile & _
" already open, close and delete / rename the file and try again.", _
vbCritical
Exit Sub
End If
End If
F1 = FreeFile
Open SourceFile For Input As F1
F2 = FreeFile
Open TargetFile For Output As F2
i = 1 ' line counter
Application.StatusBar = "Reading data from " & _
TargetFile & " ..."
While Not EOF(F1)
If i Mod 100 = 0 Then Application.StatusBar = _
"Reading line #" & i & " in " & _
TargetFile & " ..."
Line Input #F1, tLine
If sText <> "" Then
ReplaceTextInString tLine, sText, rText
End If
Print #F2, tLine
i = i + 1
Wend
Application.StatusBar = "Closing files ..."
Close F1
Close F2
Kill SourceFile ' delete original file
Name TargetFile As SourceFile ' rename temporary file
Application.StatusBar = False
End Sub
Private Sub ReplaceTextInString(SourceString As String, _
SearchString As String, ReplaceString As String)
Dim p As Integer, NewString As String
Do
p = InStr(p + 1, UCase(SourceString), UCase(SearchString))
If p > 0 Then ' replace SearchString with ReplaceString
NewString = ""
If p > 1 Then NewString = Mid(SourceString, 1, p - 1)
NewString = NewString + ReplaceString
NewString = NewString + Mid(SourceString, _
p + Len(SearchString), Len(SourceString))
p = p + Len(ReplaceString) - 1
SourceString = NewString
End If
If p >= Len(NewString) Then p = 0
Loop Until p = 0
End Sub
Sub Test_Edit_Text_File()
For Each txtFile In ThisWorkbook.path
ReplaceTextInFile ThisWorkbook.path & _
".txt", "In = 8", "In = 10"
' replaces all (8) with (10)
End Sub
Browse to folder function
Code:
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Dim sInitDir As String
sInitDir = CurDir ' Store initial directory
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With