ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Macro to group sheet by certain letters at the end (https://www.excelbanter.com/excel-discussion-misc-queries/207792-macro-group-sheet-certain-letters-end.html)

bioyyy

Macro to group sheet by certain letters at the end
 
Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



Sheeloo[_3_]

Macro to group sheet by certain letters at the end
 
Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



bioyyy

Macro to group sheet by certain letters at the end
 
Sheeloo:

Thanks for your help. It works great.



"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



bioyyy

Macro to group sheet by certain letters at the end
 
Sheeloo,

I have a questions. It works fine if I put it in the module 1. However, when
I put it in the macro toolbar, I got an error in this line:

For Each ws in Worksheets (it highlight ws in blue color).

Any suggestions. Thanks,


"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



bioyyy

Macro to group sheet by certain letters at the end
 
Sheelo:

I forgot, the error is WS (variable is not defined). Thanks

"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



Sheeloo[_3_]

Macro to group sheet by certain letters at the end
 
replace
For Each ws In Worksheets
with
For Each ws In ActiveWorkbook.Worksheets

and
befo=Worksheets(1)
with
befo=ActiveWorkbook.Worksheets(1)

I have not tested it but this should work. You basically need to pass the
activeworkbook when invoking from toolbar...


"bioyyy" wrote:

Sheelo:

I forgot, the error is WS (variable is not defined). Thanks

"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



bioyyy

Macro to group sheet by certain letters at the end
 
Sheelo:

I try but still got an compile error: variable not defined for ws. Thanks,

"Sheeloo" wrote:

replace
For Each ws In Worksheets
with
For Each ws In ActiveWorkbook.Worksheets

and
befo=Worksheets(1)
with
befo=ActiveWorkbook.Worksheets(1)

I have not tested it but this should work. You basically need to pass the
activeworkbook when invoking from toolbar...


"bioyyy" wrote:

Sheelo:

I forgot, the error is WS (variable is not defined). Thanks

"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



bioyyy

Macro to group sheet by certain letters at the end
 
Sheelo:

I fix, I just added this line:

Dim ws As Worksheet

BTW, thanks for all your help.



"Sheeloo" wrote:

replace
For Each ws In Worksheets
with
For Each ws In ActiveWorkbook.Worksheets

and
befo=Worksheets(1)
with
befo=ActiveWorkbook.Worksheets(1)

I have not tested it but this should work. You basically need to pass the
activeworkbook when invoking from toolbar...


"bioyyy" wrote:

Sheelo:

I forgot, the error is WS (variable is not defined). Thanks

"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!



Sheeloo[_3_]

Macro to group sheet by certain letters at the end
 
How are you assigning to the macro toolbar?
I put it in my personal.xls and attached the macro to a button. It worked
fine without any modification.
Do you have option Explicit set?

Try the following;

Sub movesheets()
'added declaration
Dim ws As Worksheet
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next
End Sub


"bioyyy" wrote:

Sheelo:

I fix, I just added this line:

Dim ws As Worksheet

BTW, thanks for all your help.



"Sheeloo" wrote:

replace
For Each ws In Worksheets
with
For Each ws In ActiveWorkbook.Worksheets

and
befo=Worksheets(1)
with
befo=ActiveWorkbook.Worksheets(1)

I have not tested it but this should work. You basically need to pass the
activeworkbook when invoking from toolbar...


"bioyyy" wrote:

Sheelo:

I forgot, the error is WS (variable is not defined). Thanks

"Sheeloo" wrote:

Use the macro
Sub movesheets()
For Each ws In Worksheets
If (Right(ws.Name, 2) = "IS") Then
ws.Move _
befo=Worksheets(1)
End If
Next

If case is not important then change ws.Name to UCase(ws.name) in the macro

"bioyyy" wrote:

Hi:

I'd like you to help me with grouping worksheets. if the sheets contain
letter of "IS" at the end of the tab name, group them together.

For example, abc_IS, test1_IS, test2-IS.

So, If the sheets contain IS at the end of the tab name, group them
together, and move them first. Thanks for your help!




All times are GMT +1. The time now is 10:06 PM.

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