Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 11-02-2012, 04:04 PM
Lawmuse Lawmuse is offline Find and Prompt the user to Replace Windows 7 32bit Find and Prompt the user to Replace Office 2010 32bit
Novice
Find and Prompt the user to Replace
 
Join Date: Nov 2012
Posts: 4
Lawmuse is on a distinguished road
Default Find and Prompt the user to Replace

I'm new to vba, but have cobbled together some ideas from the forum for code to search a document for specific words and prompt the user to replace with a different word in case the first word was mistaken. For example, I write about statutes very often but sometimes type the word statue by mistake. Spell check obviously won't catch this, so I have a list of words and replacements that I often, but not always mistype.



I want to go through the document and find the uncommon word, like statue, then while I can see where the found text is on screen, I want to ask the user if he wants to replace this instance with statute instead. If so, replace it and continue the search. If not, continue searching for others until the end of the document.
Code:
Sub PromptReplace()
Dim Rng As Range, i As Long
Dim strFnd As String, strRpl As String
Dim fnd As String, rpl As String, choice As Integer
'find string
strFnd = "tot;tow;trail;contact;delivery;fist;form;latter;diffused;singed;sing;asset;tortuous;emotion;owning;statue;conversion"
'replace string in same order as strFnd
strRpl = "to;two;trial;contract;deliver;first;from;later;defused;signed;sign;assert;tortious;motion;owing;statute;conversation"
Selection.HomeKey Unit:=wdStory
For Each Rng In ActiveDocument.StoryRanges
    Set Rng = ActiveDocument.Range
    For i = 0 To UBound(Split(strFnd, ";"))
        fnd = Split(strFnd, ";")(i)
        rpl = Split(strRpl, ";")(i)
        With Rng.Find
            .ClearFormatting
            .Text = fnd
            .Replacement.ClearFormatting
            .Forward = True
            .Wrap = wdFindStop
            .Execute
        End With
        While Rng.Find.Found
            choice = MsgBox("Replace " + fnd + " with " + rpl + "?", _
                vbYesNoCancel + vbDefaultButton1, "Replace")
            If choice = vbYes Then
                Rng.Text = rpl  
                Rng.Collapse wdCollapseEnd 
            ElseIf choice = vbCancel Then
                GoTo endit
            Else
                Rng.Collapse wdCollapseEnd
            End If
            Rng.Find.Execute
        Wend
    Next i
Next Rng
endit:
Set Rng = Nothing
End Sub
This does most of what I want except I can't see the found text when the MsgBox pops up, so I can't tell the context in which I used the word. I'm also not sure that it is continue to search if I select No in response to the prompt. It also didn't find text in footnotes even though I was trying to loop through all storyRanges in the active document.


I would appreciate any comments about this code or possible suggestions for different ways to do this. Thanks.
Reply With Quote
 

Tags
code

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Find and Prompt the user to Replace Find, Replace Ajay Shahane Word VBA 4 05-16-2012 04:07 AM
Find and Prompt the user to Replace Bad view when using Find and Find & Replace - Word places found string on top line paulkaye Word 4 12-06-2011 11:05 PM
Find and Prompt the user to Replace Is there a way to use "find/replace" to find italics words? slayda Word 3 09-14-2011 02:16 PM
Find and Prompt the user to Replace Help with find and replace or query and replace shabbaranks Excel 4 03-19-2011 08:38 AM
User Name Prompt Appears When Opening Documents galleherjazz Office 0 07-30-2009 08:15 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 05:13 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft