ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Help with a loop please. (https://www.excelbanter.com/excel-programming/419653-help-loop-please.html)

ryguy7272

Help with a loop please.
 
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy

JLGWhiz

Help with a loop please.
 
For Each sh In ThisWorkbook.Sheets

sh.Cells.Select

sh.Columns("D:D").Select

you need to qualify all of the range objects with the sh. prefix so VBA
knows to go to other that the active sheet.


"ryguy7272" wrote:

For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy


Bernard Liengme

Help with a loop please.
 
Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy




ryguy7272

Help with a loop please.
 
Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy





ryguy7272

Help with a loop please.
 
Run-time error '1004':
Select method of Range class failed

....guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy





ryguy7272

Help with a loop please.
 
I made a little progress. I eliminated the error, but all changes are made
to one single sheet, so I literally get 'Next Quarter' 10 times, in a cell in
one sheet and 'Current Quarter' 10 times in the same cell in the same sheet!!

Application.DisplayAlerts = False
Dim sh As Worksheet

For Each sh In ThisWorkbook.Sheets
If sh.Name Like "RVP - Q1*" Then
'If InStr(1, sh.Name, "*Q1*") Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

ActiveSheet.Select
Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
End If
Next sh

For Each sh In ThisWorkbook.Sheets
If sh.Name Like "RVP - Q4*" Then
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

ActiveSheet.Select
Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Current Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Current
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Current
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Current
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Current Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh


ActiveWorkbook.Save
ActiveWorkbook.Close

Application.DisplayAlerts = True

There is something wrong with the logic of the loop because it doesn't
evaluate the names of the sheets, and it doesn't move to the next sheet after
it does the find/replace on the first sheet that it lands on. Can someone
please point out my error?

Thanks so much,
Ryan---


--
RyGuy


"ryguy7272" wrote:

Run-time error '1004':
Select method of Range class failed

...guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy




JLGWhiz

Help with a loop please.
 
Range("D:D")
Columns("D")
Columns(4)

"ryguy7272" wrote:

Run-time error '1004':
Select method of Range class failed

...guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy




ryguy7272

Help with a loop please.
 
Thanks. Unfortunately, it doesn't move from one sheet to another sheet in
ThisWorkbook.Sheets

What can I do?

Thanks,
Ryan---

--
RyGuy


"JLGWhiz" wrote:

Range("D:D")
Columns("D")
Columns(4)

"ryguy7272" wrote:

Run-time error '1004':
Select method of Range class failed

...guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy




JLGWhiz

Help with a loop please.
 
Copy this and paste it in the module. Fix any line wraps (they should be red
in the code module if they wrapped). Comment out your old code. Then try it.

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

With Sh.Columns(4)
.Replace What:="Total Display", _
Replacement:="Total Display - Next Quarter", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Replace What:="Class 1", Replacement:="Class 1 - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:= False, ReplaceFormat:=False
.Replace What:="Class 2", Replacement:="Class 2 - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End With

End If
Next sh


"ryguy7272" wrote:

I made a little progress. I eliminated the error, but all changes are made
to one single sheet, so I literally get 'Next Quarter' 10 times, in a cell in
one sheet and 'Current Quarter' 10 times in the same cell in the same sheet!!

Application.DisplayAlerts = False
Dim sh As Worksheet

For Each sh In ThisWorkbook.Sheets
If sh.Name Like "RVP - Q1*" Then
'If InStr(1, sh.Name, "*Q1*") Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

ActiveSheet.Select
Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
End If
Next sh

For Each sh In ThisWorkbook.Sheets
If sh.Name Like "RVP - Q4*" Then
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

ActiveSheet.Select
Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Current Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Current
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Current
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Current
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Current Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh


ActiveWorkbook.Save
ActiveWorkbook.Close

Application.DisplayAlerts = True

There is something wrong with the logic of the loop because it doesn't
evaluate the names of the sheets, and it doesn't move to the next sheet after
it does the find/replace on the first sheet that it lands on. Can someone
please point out my error?

Thanks so much,
Ryan---


--
RyGuy


"ryguy7272" wrote:

Run-time error '1004':
Select method of Range class failed

...guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy




JLGWhiz

Help with a loop please.
 
In the locals window it shows that it does change sheets. You won't see the
sheets change because the code does not use select. Check to see if the
changes were made, if noit then make sure your criteria is correct in the
If...Then statement for the worksheet name including the spaces between RVP
the dash and the Q1.

You have another built in problem, Ryan. The words you are replacing are
repeatded in the different statements, and the code is doing exactly what it
is instructed to do. When it sees Total Display, it replaces it with Total
Display - Next Quarter, then later when it sees Total, it replacest that with
Total - Next Quarter so that the first replacement ends up looking like
"Total - Next Quarter Display - Next Quarter" because it replaced the Total
that had already been changed. You need LookAt:=xlWhole.

I ran this code with the changes and it worked ok for me with three
worksheets. So if you still have a problem, it has to be the sheet name not
registering because of structural differences.

Sub dk()
Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
With sh.Columns(4)
.Replace What:="Total Display", _
Replacement:="Total Display - Next Quarter", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Replace What:="Class 1", Replacement:="Class 1 - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Class 2", Replacement:="Class 2 - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End With

End If
Next sh

End Sub

"ryguy7272" wrote:

Thanks. Unfortunately, it doesn't move from one sheet to another sheet in
ThisWorkbook.Sheets

What can I do?

Thanks,
Ryan---

--
RyGuy


"JLGWhiz" wrote:

Range("D:D")
Columns("D")
Columns(4)

"ryguy7272" wrote:

Run-time error '1004':
Select method of Range class failed

...guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy




ryguy7272

Help with a loop please.
 
This did exactly what I wanted it to do. I am so happy now. Yes, you are
right JLGWhiz, the Total and Total Display was screwing me up. I didn't even
realize it before, because I was focusing on the looping issue. I've never
used the 'LookAt:=xlWhole' object before. Thanks for pointing that out!
Thanks for everything!! I can move on with my project now!!

Kind Regards,
Ryan--

--
RyGuy


"JLGWhiz" wrote:

In the locals window it shows that it does change sheets. You won't see the
sheets change because the code does not use select. Check to see if the
changes were made, if noit then make sure your criteria is correct in the
If...Then statement for the worksheet name including the spaces between RVP
the dash and the Q1.

You have another built in problem, Ryan. The words you are replacing are
repeatded in the different statements, and the code is doing exactly what it
is instructed to do. When it sees Total Display, it replaces it with Total
Display - Next Quarter, then later when it sees Total, it replacest that with
Total - Next Quarter so that the first replacement ends up looking like
"Total - Next Quarter Display - Next Quarter" because it replaced the Total
that had already been changed. You need LookAt:=xlWhole.

I ran this code with the changes and it worked ok for me with three
worksheets. So if you still have a problem, it has to be the sheet name not
registering because of structural differences.

Sub dk()
Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
With sh.Columns(4)
.Replace What:="Total Display", _
Replacement:="Total Display - Next Quarter", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Replace What:="Class 1", Replacement:="Class 1 - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Class 2", Replacement:="Class 2 - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Search", Replacement:="Search - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End With

End If
Next sh

End Sub

"ryguy7272" wrote:

Thanks. Unfortunately, it doesn't move from one sheet to another sheet in
ThisWorkbook.Sheets

What can I do?

Thanks,
Ryan---

--
RyGuy


"JLGWhiz" wrote:

Range("D:D")
Columns("D")
Columns(4)

"ryguy7272" wrote:

Run-time error '1004':
Select method of Range class failed

...guess that would be helpful is debugging this thing...

--
RyGuy


"ryguy7272" wrote:

Thanks for the info. JLGWhiz. That makes sense, but it still doesn't work.
Now it errors on this line:
sh.Columns("D:D").Select

Any thoughts?


Thanks,
Ryan---

--
RyGuy


"Bernard Liengme" wrote:

Here is my test sub

Sub tryme()
For Each ws In Worksheets
If ws.Name Like "temp*" Then
ws.Range("A1") = "X"
End If
Next ws
End Sub

If I used Range("A1")="X" without referencing the ws varaible, the sub put X
in A1 of the active worksheet and no others. This. of course, is exacly
whyat the code would mean.

You need something like

Dim sh As Worksheet
For Each sh In Sheets
If sh.Name Like "RVP - Q1*" Then
with sh
.Cells.Select
.Selection.Copy
,,,,
next with
next sh


best wsihes
--
Bernard V Liengme
Microsoft Excel MVP
http://people.stfx.ca/bliengme
remove caps from email

"ryguy7272" wrote in message
...
For some reason, all changes occur in one single sheet. I used F8 to move
through the code and still didn't see why it's not moving from one sheet
to
another sheet. Can someone point out my error?

Dim sh As Worksheet
For Each sh In Sheets

If sh.Name Like "RVP - Q1*" Then

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Columns("D:D").Select
Selection.Replace What:="Total Display", Replacement:= _
"Total Display - Next Quarter", LookAt:=xlPart,
SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="Class 1", Replacement:="Class 1 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Class 2", Replacement:="Class 2 - Next
Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Search", Replacement:="Search - Next Quarter",
_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False
Selection.Replace What:="Total", Replacement:="Total - Next Quarter", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:= _
False, ReplaceFormat:=False

End If
Next sh

Thanks,
Ryan---

--
RyGuy





All times are GMT +1. The time now is 12:02 AM.

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