ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Find and replace macro (https://www.excelbanter.com/excel-discussion-misc-queries/216130-find-replace-macro.html)

edeaston

Find and replace macro
 
Hi,

I am preparing a template document for use within my organisation which will
be used to populate a monthly report.

The template has formula references to multiple Excel files that are
produced in monthly downloads from our systems.

I want to create a macro so that the user can enter the location of the
existing file in one cell (A2), the location of the new file in another cell
(B2) and then run a macro which does a find and replace of all instances of
A2 with B2. As part of the macro I also want it to update A2 with the data
from B2 and clear out the data in B2.
There are multiple links that will be updated so it would good to work out a
way that can update multiple links (e.g. A2 with B2, A3 with B3, A4 with B4
etc) in one go.

Could one of you good people help me out?

Thanks

Ed

Gary''s Student

Find and replace macro
 
Consider:

Sub suby()
Dim s As String, t As String, rr As Range
s = Range("A2").Value
t = Range("B2").Value
Set rr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormu las)
For Each r In rr
r.Formula = Replace(r.Formula, s, t)
Next
Range("A2").Value = Range("B2").Value
Range("B2").Clear
End Sub
--
Gary''s Student - gsnu200825

edeaston

Find and replace macro
 
Hi,

That seems to do the job nicely. The one small problem I have is that once I
run the macro I cant undo any changes made (ctrl+z) - is that standard for
macros or could we add / change some code to allow undo to work again?

Thanks

Ed

"Gary''s Student" wrote:

Consider:

Sub suby()
Dim s As String, t As String, rr As Range
s = Range("A2").Value
t = Range("B2").Value
Set rr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormu las)
For Each r In rr
r.Formula = Replace(r.Formula, s, t)
Next
Range("A2").Value = Range("B2").Value
Range("B2").Clear
End Sub
--
Gary''s Student - gsnu200825


Gary''s Student

Find and replace macro
 
Undo will not work.
--
Gary''s Student - gsnu200825


"edeaston" wrote:

Hi,

That seems to do the job nicely. The one small problem I have is that once I
run the macro I cant undo any changes made (ctrl+z) - is that standard for
macros or could we add / change some code to allow undo to work again?

Thanks

Ed

"Gary''s Student" wrote:

Consider:

Sub suby()
Dim s As String, t As String, rr As Range
s = Range("A2").Value
t = Range("B2").Value
Set rr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormu las)
For Each r In rr
r.Formula = Replace(r.Formula, s, t)
Next
Range("A2").Value = Range("B2").Value
Range("B2").Clear
End Sub
--
Gary''s Student - gsnu200825



All times are GMT +1. The time now is 11:03 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com