For Each Sheet in Range - Sort Descending

  • Thread starter Thread starter NPell
  • Start date Start date
N

NPell

In a macro can i do something like..

Dim MySheet as Variant
MySheet = ("Sheet1", "Sheet2")
For Each Sheet in MySheet
Sort Range("A3").Descending
Next Sheet

(thats obviously not the sort code, but i didnt know the full version
of it)

I have 15 sheets, and i dont want loads of code just to sort.

Thanks.
 
Dim MySheet As Worksheet
For Each MySheet in Activeworkbook.Worksheets
Cells.Sort Key1:=Range("A3"),Order1:=xlDescending, Header:=xlGuess
Next MySheet
 
Try this idea
Sub sortallsheets()
For i = 2 To Sheets.Count 'dont do sheet 1
MsgBox Sheets(i).Name
With Sheets(i)
lastrow=.cells(rows.count,"a").end(xlup).row
..Range("a1:a" & lastrow).Sort Key1:=.Range("a1"), Order1:=xlDescending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End With
Next i
End Sub
 
Try this idea
Sub sortallsheets()
For i = 2 To Sheets.Count 'dont do sheet 1
MsgBox Sheets(i).Name
With Sheets(i)
lastrow=.cells(rows.count,"a").end(xlup).row
.Range("a1:a" & lastrow).Sort Key1:=.Range("a1"), Order1:=xlDescending,
Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
        DataOption1:=xlSortTextAsNumbers
End With
Next i
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software









- Show quoted text -

Those both look good, but its not all sheets, how would i modify it
for that?
Thanks guys for your responses so far.
 
I prefer TOP posting.

Sub sortSOMEsheets()
mysheets = Array("sheet2", "sheet3")
For Each sh In mysheets
With Sheets(sh)
lastrow = .Cells(Rows.Count, "a").End(xlUp).Row
..Range("a1:a" & lastrow).Sort Key1:=.Range("a1"), _
Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End With
Next sh
End Sub


--
Don Guillett
Microsoft MVP Excel
SalesAid Software
(e-mail address removed)
Try this idea
Sub sortallsheets()
For i = 2 To Sheets.Count 'dont do sheet 1
MsgBox Sheets(i).Name
With Sheets(i)
lastrow=.cells(rows.count,"a").end(xlup).row
.Range("a1:a" & lastrow).Sort Key1:=.Range("a1"), Order1:=xlDescending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End With
Next i
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software









- Show quoted text -

Those both look good, but its not all sheets, how would i modify it
for that?
Thanks guys for your responses so far.
 
Dim MySheet As Worksheet
For Each MySheet In ActiveWorkbook.Worksheets(Array("Sheet1", "Sheet3"))
MySheet.Rows("3:65536").Sort Key1:=MySheet.Range("A3"),
Order1:=xlDescending, Header:=xlGuess
Next MySheet


--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)

Try this idea
Sub sortallsheets()
For i = 2 To Sheets.Count 'dont do sheet 1
MsgBox Sheets(i).Name
With Sheets(i)
lastrow=.cells(rows.count,"a").end(xlup).row
.Range("a1:a" & lastrow).Sort Key1:=.Range("a1"), Order1:=xlDescending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End With
Next i
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software









- Show quoted text -

Those both look good, but its not all sheets, how would i modify it
for that?
Thanks guys for your responses so far.
 
Dim MySheet As Worksheet
For Each MySheet In ActiveWorkbook.Worksheets(Array("Sheet1", "Sheet3"))
    MySheet.Rows("3:65536").Sort Key1:=MySheet.Range("A3"),
Order1:=xlDescending, Header:=xlGuess
Next MySheet

--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)






Those both look good, but its not all sheets, how would i modify it
for that?
Thanks guys for your responses so far.- Hide quoted text -

- Show quoted text -

Don's works, thankyou. Im sure yours would too Bob, but i already have
Don's in place - and if it aint broke...
Thanks for posting guys, much appreciated.
 
I didn't test Bob's but if it works I would use HIS.

--
Don Guillett
Microsoft MVP Excel
SalesAid Software
(e-mail address removed)
Dim MySheet As Worksheet
For Each MySheet In ActiveWorkbook.Worksheets(Array("Sheet1", "Sheet3"))
MySheet.Rows("3:65536").Sort Key1:=MySheet.Range("A3"),
Order1:=xlDescending, Header:=xlGuess
Next MySheet

--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my
addy)






Those both look good, but its not all sheets, how would i modify it
for that?
Thanks guys for your responses so far.- Hide quoted text -

- Show quoted text -

Don's works, thankyou. Im sure yours would too Bob, but i already have
Don's in place - and if it aint broke...
Thanks for posting guys, much appreciated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top