ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Macro to run on selected sheets (https://www.excelbanter.com/excel-discussion-misc-queries/260764-macro-run-selected-sheets.html)

terilad

Macro to run on selected sheets
 
I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark

ozgrid.com

Macro to run on selected sheets
 
Try;

Sub ClearStockCards()
Dim ws As Worksheet

For Each ws In Worksheets
Select Case UCase(ws.Name)
Case "SHEET101", "SHEET102", "SHEET103"
'Do nothing
Case Else
ws.Range("A7:A36,B8:B36,D3").ClearContents
End Select
Next ws
End Sub



--
Regards
Dave Hawley
www.ozgrid.com
"terilad" wrote in message
...
I have a macro that I want to run on 100 of my 103 worksheets, is there a
way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark



Mike H

Macro to run on selected sheets
 
Hi,

Try this.

Change this line
S = "Sheet1,Sheet2,Sheet3"
To the name of the sheets you DON'T want the code to run on

Sub ClearStockCards()
Dim Ws As Worksheet
S = "Sheet1,Sheet2,Sheet3"
V = Split(S, ",")
For Each Ws In ThisWorkbook.Worksheets
If IsError(Application.Match(Ws.Name, V, 0)) Then
Ws.Range("D3,A7:A36,B8:B36").ClearContents
End If
Next Ws
End Sub
--
Mike

When competing hypotheses are otherwise equal, adopt the hypothesis that
introduces the fewest assumptions while still sufficiently answering the
question.


"terilad" wrote:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
Hi,

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Any ideas?

Many thanks

Mark

"ozgrid.com" wrote:

Try;

Sub ClearStockCards()
Dim ws As Worksheet

For Each ws In Worksheets
Select Case UCase(ws.Name)
Case "SHEET101", "SHEET102", "SHEET103"
'Do nothing
Case Else
ws.Range("A7:A36,B8:B36,D3").ClearContents
End Select
Next ws
End Sub



--
Regards
Dave Hawley
www.ozgrid.com
"terilad" wrote in message
...
I have a macro that I want to run on 100 of my 103 worksheets, is there a
way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark



Stefi

Macro to run on selected sheets
 
If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
They are the last 100

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


Stefi

Macro to run on selected sheets
 
If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
Hi Stefi,

No Joy.

Here's my code.

Sub MyMacroToClear()
For wi = 5 To 7
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub
Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Thanks

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


Stefi

Macro to run on selected sheets
 
Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
Hi Stefi,

I am running the macro on a smaller workbook for testing before placing into
the proper one as I dont want data deleted that I have on the full workbook,
so I am trying this on 3 sheets on a test workbook.

Cells that are merged are A11:F11, but these are merged on worksheets I dont
want the macro to run on.

The error line is: Range("A7:A36,B8:B36").ClearContents

Many thanks for your help.

Mark

"Stefi" wrote:

Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


Stefi

Macro to run on selected sheets
 
For testing:
If your tabs are in this order:
Sheet1 Sheet2 Sheet3 Sheet4

and merged cells are on Sheet1 then

Sub test()
For wi = 2 To 4
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub

Loop For wi = 2 To 4
shall work on
Sheet2 Sheet3 Sheet4

The index number of a sheet (in the above example wi) is specified by its
position in the tab series and not by the number in sheet name: if your tab
series is, e.g.

Master Detail1 Detail2 Detail3

then
Worksheets(1).name: Master
Worksheets(2).name: Detail1
Worksheets(3).name: Detail2
Worksheets(4).name: Detail3

Loop For wi = 2 To 4
shall work on
Detail1 Detail2 Detail3

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Hi Stefi,

I am running the macro on a smaller workbook for testing before placing into
the proper one as I dont want data deleted that I have on the full workbook,
so I am trying this on 3 sheets on a test workbook.

Cells that are merged are A11:F11, but these are merged on worksheets I dont
want the macro to run on.

The error line is: Range("A7:A36,B8:B36").ClearContents

Many thanks for your help.

Mark

"Stefi" wrote:

Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
Many thanks, I have noticed that all my sheet numbers are all mixed up, I had
to rename 10 of them in my test, is there a way to do this quick for 103
sheets.

Many thanks


Mark

"Stefi" wrote:

For testing:
If your tabs are in this order:
Sheet1 Sheet2 Sheet3 Sheet4

and merged cells are on Sheet1 then

Sub test()
For wi = 2 To 4
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub

Loop For wi = 2 To 4
shall work on
Sheet2 Sheet3 Sheet4

The index number of a sheet (in the above example wi) is specified by its
position in the tab series and not by the number in sheet name: if your tab
series is, e.g.

Master Detail1 Detail2 Detail3

then
Worksheets(1).name: Master
Worksheets(2).name: Detail1
Worksheets(3).name: Detail2
Worksheets(4).name: Detail3

Loop For wi = 2 To 4
shall work on
Detail1 Detail2 Detail3

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Hi Stefi,

I am running the macro on a smaller workbook for testing before placing into
the proper one as I dont want data deleted that I have on the full workbook,
so I am trying this on 3 sheets on a test workbook.

Cells that are merged are A11:F11, but these are merged on worksheets I dont
want the macro to run on.

The error line is: Range("A7:A36,B8:B36").ClearContents

Many thanks for your help.

Mark

"Stefi" wrote:

Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


Dave Peterson

Macro to run on selected sheets
 
First, it's never a good idea to multipost the same question to different
newsgroups. And it's not a good idea to start a new thread without some
indication in the old thread.

Option Explicit
Sub ReconcileStockCard()

Dim wks As Worksheet

For Each wks In ActiveWorkbook.Worksheets
Select Case LCase(wks.Name)
'names of the sheets to skip
Case Is = "sheet9", "sheet13", "sheet33"
'do nothing
Case Else
With wks
.Range("a7:a36,b8:b36,d3,d7:d36").value = ""
End With
End Select
Next wks
End Sub

I changed the range back to what you used in the other thread. Change it if you
need to.

terilad wrote:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


--

Dave Peterson

Stefi

Macro to run on selected sheets
 
Once again:

Name of the worksheet is neutral in this case, its position number in the
series of tabs which is important.

if your series of tabs is, e.g.

Abrakadabra, Sheet1, Sheet2,

then worksheet(1) shall be Abrakadabra,
worksheet(2) shall be Sheet1,
worksheet(3) shall be Sheet2.

But if you change the order of tabs, e.g. like below

Sheet1, Sheet2, Abrakadabra

then worksheet(1) shall be Sheet1,
worksheet(2) shall be Sheet2,
worksheet(3) shall be Abrakadabra.

You need not to change any sheet name, you only have to group the 3 sheets
you dont't want to run the macro on in the first 3 position of your series of
tabs, e.g. if names of these 3 sheets are Merged1, Merged2, Merged3, then
your series of tabs must look like this:

Merged1, Merged2, Merged3, Unmerged1, Unmerged2, ... , Unmerged100

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Many thanks, I have noticed that all my sheet numbers are all mixed up, I had
to rename 10 of them in my test, is there a way to do this quick for 103
sheets.

Many thanks


Mark

"Stefi" wrote:

For testing:
If your tabs are in this order:
Sheet1 Sheet2 Sheet3 Sheet4

and merged cells are on Sheet1 then

Sub test()
For wi = 2 To 4
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub

Loop For wi = 2 To 4
shall work on
Sheet2 Sheet3 Sheet4

The index number of a sheet (in the above example wi) is specified by its
position in the tab series and not by the number in sheet name: if your tab
series is, e.g.

Master Detail1 Detail2 Detail3

then
Worksheets(1).name: Master
Worksheets(2).name: Detail1
Worksheets(3).name: Detail2
Worksheets(4).name: Detail3

Loop For wi = 2 To 4
shall work on
Detail1 Detail2 Detail3

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Hi Stefi,

I am running the macro on a smaller workbook for testing before placing into
the proper one as I dont want data deleted that I have on the full workbook,
so I am trying this on 3 sheets on a test workbook.

Cells that are merged are A11:F11, but these are merged on worksheets I dont
want the macro to run on.

The error line is: Range("A7:A36,B8:B36").ClearContents

Many thanks for your help.

Mark

"Stefi" wrote:

Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


terilad

Macro to run on selected sheets
 
I only reposted this as I posted the wrong code initialy and the thread was
getting realy confused and difficult to put the issue across, thanks for your
input Dave.

Regards

Mark

"Dave Peterson" wrote:

First, it's never a good idea to multipost the same question to different
newsgroups. And it's not a good idea to start a new thread without some
indication in the old thread.

Option Explicit
Sub ReconcileStockCard()

Dim wks As Worksheet

For Each wks In ActiveWorkbook.Worksheets
Select Case LCase(wks.Name)
'names of the sheets to skip
Case Is = "sheet9", "sheet13", "sheet33"
'do nothing
Case Else
With wks
.Range("a7:a36,b8:b36,d3,d7:d36").value = ""
End With
End Select
Next wks
End Sub

I changed the range back to what you used in the other thread. Change it if you
need to.

terilad wrote:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


--

Dave Peterson
.


terilad

Macro to run on selected sheets
 
Stefi,

I think through time the tabs have been moved around, thus the first 3 sheet
tabs which i wish to exclude are named but have the default Sheet4, Sheet7
and Sheet101 in the sheet number in VBA, I renamed these and the code worked,
can I rename all sheets quickly with vba or is this not possible?

Mark

"Stefi" wrote:

Once again:

Name of the worksheet is neutral in this case, its position number in the
series of tabs which is important.

if your series of tabs is, e.g.

Abrakadabra, Sheet1, Sheet2,

then worksheet(1) shall be Abrakadabra,
worksheet(2) shall be Sheet1,
worksheet(3) shall be Sheet2.

But if you change the order of tabs, e.g. like below

Sheet1, Sheet2, Abrakadabra

then worksheet(1) shall be Sheet1,
worksheet(2) shall be Sheet2,
worksheet(3) shall be Abrakadabra.

You need not to change any sheet name, you only have to group the 3 sheets
you dont't want to run the macro on in the first 3 position of your series of
tabs, e.g. if names of these 3 sheets are Merged1, Merged2, Merged3, then
your series of tabs must look like this:

Merged1, Merged2, Merged3, Unmerged1, Unmerged2, ... , Unmerged100

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Many thanks, I have noticed that all my sheet numbers are all mixed up, I had
to rename 10 of them in my test, is there a way to do this quick for 103
sheets.

Many thanks


Mark

"Stefi" wrote:

For testing:
If your tabs are in this order:
Sheet1 Sheet2 Sheet3 Sheet4

and merged cells are on Sheet1 then

Sub test()
For wi = 2 To 4
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub

Loop For wi = 2 To 4
shall work on
Sheet2 Sheet3 Sheet4

The index number of a sheet (in the above example wi) is specified by its
position in the tab series and not by the number in sheet name: if your tab
series is, e.g.

Master Detail1 Detail2 Detail3

then
Worksheets(1).name: Master
Worksheets(2).name: Detail1
Worksheets(3).name: Detail2
Worksheets(4).name: Detail3

Loop For wi = 2 To 4
shall work on
Detail1 Detail2 Detail3

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Hi Stefi,

I am running the macro on a smaller workbook for testing before placing into
the proper one as I dont want data deleted that I have on the full workbook,
so I am trying this on 3 sheets on a test workbook.

Cells that are merged are A11:F11, but these are merged on worksheets I dont
want the macro to run on.

The error line is: Range("A7:A36,B8:B36").ClearContents

Many thanks for your help.

Mark

"Stefi" wrote:

Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark


Stefi

Macro to run on selected sheets
 
If your tab order is
Sheet4, Sheet7, Sheet101, other sheets
then this sub shall work only on sheets Sheet4, Sheet7, Sheet101 and you
don't need to change any sheet names.
Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub

But if you insist on changing a lot of sheet names via a macro, you can do
that if you can specify the old names and the new names assigned to them,
either by a rule or a lookup array or range.

E.g. if old names are in range("A2:A5") and new names in range("B2:B5")
respectively then this sub renames sheets the name of which is found in
range("A2:A5") :


Sub rentest()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
wsnamerow = ""
On Error Resume Next
wsnamerow = Range("A1:A5").Find(ws.Name, Range("A1"), xlValues).Row
On Error GoTo 0
If wsnamerow < "" Then ws.Name = Range("B" & wsnamerow)
Next ws
End Sub

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Stefi,

I think through time the tabs have been moved around, thus the first 3 sheet
tabs which i wish to exclude are named but have the default Sheet4, Sheet7
and Sheet101 in the sheet number in VBA, I renamed these and the code worked,
can I rename all sheets quickly with vba or is this not possible?

Mark

"Stefi" wrote:

Once again:

Name of the worksheet is neutral in this case, its position number in the
series of tabs which is important.

if your series of tabs is, e.g.

Abrakadabra, Sheet1, Sheet2,

then worksheet(1) shall be Abrakadabra,
worksheet(2) shall be Sheet1,
worksheet(3) shall be Sheet2.

But if you change the order of tabs, e.g. like below

Sheet1, Sheet2, Abrakadabra

then worksheet(1) shall be Sheet1,
worksheet(2) shall be Sheet2,
worksheet(3) shall be Abrakadabra.

You need not to change any sheet name, you only have to group the 3 sheets
you dont't want to run the macro on in the first 3 position of your series of
tabs, e.g. if names of these 3 sheets are Merged1, Merged2, Merged3, then
your series of tabs must look like this:

Merged1, Merged2, Merged3, Unmerged1, Unmerged2, ... , Unmerged100

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Many thanks, I have noticed that all my sheet numbers are all mixed up, I had
to rename 10 of them in my test, is there a way to do this quick for 103
sheets.

Many thanks


Mark

"Stefi" wrote:

For testing:
If your tabs are in this order:
Sheet1 Sheet2 Sheet3 Sheet4

and merged cells are on Sheet1 then

Sub test()
For wi = 2 To 4
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub

Loop For wi = 2 To 4
shall work on
Sheet2 Sheet3 Sheet4

The index number of a sheet (in the above example wi) is specified by its
position in the tab series and not by the number in sheet name: if your tab
series is, e.g.

Master Detail1 Detail2 Detail3

then
Worksheets(1).name: Master
Worksheets(2).name: Detail1
Worksheets(3).name: Detail2
Worksheets(4).name: Detail3

Loop For wi = 2 To 4
shall work on
Detail1 Detail2 Detail3

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

Hi Stefi,

I am running the macro on a smaller workbook for testing before placing into
the proper one as I dont want data deleted that I have on the full workbook,
so I am trying this on 3 sheets on a test workbook.

Cells that are merged are A11:F11, but these are merged on worksheets I dont
want the macro to run on.

The error line is: Range("A7:A36,B8:B36").ClearContents

Many thanks for your help.

Mark

"Stefi" wrote:

Which sheets do you want to run the macro on? You wrote that they are the
last 100 while your macro run on sheets 5,6,7 (3 sheets). Which is true?

Which cells are merged?

Which line causes the error? (Which line is highlighted in yellow while
debugging?

--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I cant get this code to work it has error run time error cant change part of
a merged cell, the merged cells are on the sheets I dont want to run the
macro, when I unmerge the cells it runs the macro on the sheets that I dont
want it to run on.

Mark

"Stefi" wrote:

If your code doesn't work, please post it next time!

For the last 100 sheets:

Sub test()
For wi = 4 To 103
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

tried editing but not working for me, trying to run macro on sheets I dont
want it to.

Mark

"Stefi" wrote:

If the 100 worksheets are the first 100 ones in the order of the worksheet
tabs, then

Sub test()
For wi = 1 To 100
Worksheets(wi).Select
Call ClearStockCards
Next wi
End Sub


--
Regards!
Stefi



€˛terilad€¯ ezt Ć*rta:

I have a macro that I want to run on 100 of my 103 worksheets, is there a way
this can be done.

My code is:

Sub ClearStockCards()
Range("A7:A36,B8:B36").ClearContents
Range("D3").ClearContents
End Sub

Many thanks

Mark



All times are GMT +1. The time now is 05:50 AM.

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