ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Sort Macro (https://www.excelbanter.com/excel-programming/387957-sort-macro.html)

hazel

Sort Macro
 
Hi All

Below is the code for a sort Macro works OK no problem - the question is
that on the sheet there are 20 blocks of 4 line ranges all in the same
columns. How would I incorporate them in this little macro. Ranges are as
follows C2:D5, C6:D9, C10:D13, C14:D17 as so on down to ranges C54:D57

Sub Macro8()
Sheets("Lindop").Select
Range("C2:D5").Select
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Clear
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Add
Key:=Range("D22:D25") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Lindop").Sort
.SetRange Range("C2:D5")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

--
Many thanks

hazel

FSt1

Sort Macro
 
hi Hazel,
I copied your code and pasted into a standard module and my compiler freaked
out.
turned all the code red. so i rewrote it.
try this.
Sub Sort4LinesInColumn()
Sheets("Sheet2").Select
Range("C2").Select

Do While Not IsEmpty(ActiveCell)
Range(Selection, Selection.Offset(3, 1)).Select

Selection.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveCell.Select
ActiveCell.Offset(4, 0).Activate
Loop

End Sub
I am using xp and this code sorted 4 groups of 4 lines in the same columns
...number and letters.
give it a try and post back if you have problems. do it in step mode.

Regards
FSt1

"Hazel" wrote:

Hi All

Below is the code for a sort Macro works OK no problem - the question is
that on the sheet there are 20 blocks of 4 line ranges all in the same
columns. How would I incorporate them in this little macro. Ranges are as
follows C2:D5, C6:D9, C10:D13, C14:D17 as so on down to ranges C54:D57

Sub Macro8()
Sheets("Lindop").Select
Range("C2:D5").Select
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Clear
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Add
Key:=Range("D22:D25") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Lindop").Sort
.SetRange Range("C2:D5")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

--
Many thanks

hazel


hazel

Sort Macro
 
Hi

Going to have a go now -- probably should have indicated I recorded the
macro in Excel 2007.

Will let you know how I get on.
--
Many thanks

hazel


"FSt1" wrote:

hi Hazel,
I copied your code and pasted into a standard module and my compiler freaked
out.
turned all the code red. so i rewrote it.
try this.
Sub Sort4LinesInColumn()
Sheets("Sheet2").Select
Range("C2").Select

Do While Not IsEmpty(ActiveCell)
Range(Selection, Selection.Offset(3, 1)).Select

Selection.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveCell.Select
ActiveCell.Offset(4, 0).Activate
Loop

End Sub
I am using xp and this code sorted 4 groups of 4 lines in the same columns
..number and letters.
give it a try and post back if you have problems. do it in step mode.

Regards
FSt1

"Hazel" wrote:

Hi All

Below is the code for a sort Macro works OK no problem - the question is
that on the sheet there are 20 blocks of 4 line ranges all in the same
columns. How would I incorporate them in this little macro. Ranges are as
follows C2:D5, C6:D9, C10:D13, C14:D17 as so on down to ranges C54:D57

Sub Macro8()
Sheets("Lindop").Select
Range("C2:D5").Select
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Clear
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Add
Key:=Range("D22:D25") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Lindop").Sort
.SetRange Range("C2:D5")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

--
Many thanks

hazel


hazel

Sort Macro
 
Hi

I have inserted and run your code - however it will not sort the criteria of
column D followed by column C -- again I have looked at the macro above and
there is an error in the typing that is probably why the code turned Red when
you tried have highlighted the error below. Perhaps another go at it please.

Sub Macro8()
Sheets("Lindop").Select
Range("C2:D5").Select
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Clear
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Add
'Key:=Range("D2:D5") _ <<< should be this not the line below
Key:=Range("D22:D25") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Lindop").Sort
..SetRange Range("C2:D5")
..Header = xlGuess
..MatchCase = False
..Orientation = xlTopToBottom
..SortMethod = xlPinYin
..Apply
End With
End Sub

--
Many thanks

hazel


"FSt1" wrote:

hi Hazel,
I copied your code and pasted into a standard module and my compiler freaked
out.
turned all the code red. so i rewrote it.
try this.
Sub Sort4LinesInColumn()
Sheets("Sheet2").Select
Range("C2").Select

Do While Not IsEmpty(ActiveCell)
Range(Selection, Selection.Offset(3, 1)).Select

Selection.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveCell.Select
ActiveCell.Offset(4, 0).Activate
Loop

End Sub
I am using xp and this code sorted 4 groups of 4 lines in the same columns
..number and letters.
give it a try and post back if you have problems. do it in step mode.

Regards
FSt1

"Hazel" wrote:

Hi All

Below is the code for a sort Macro works OK no problem - the question is
that on the sheet there are 20 blocks of 4 line ranges all in the same
columns. How would I incorporate them in this little macro. Ranges are as
follows C2:D5, C6:D9, C10:D13, C14:D17 as so on down to ranges C54:D57

Sub Macro8()
Sheets("Lindop").Select
Range("C2:D5").Select
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Clear
ActiveWorkbook.Worksheets("Lindop").Sort.SortField s.Add
Key:=Range("D22:D25") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Lindop").Sort
.SetRange Range("C2:D5")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

--
Many thanks

hazel



All times are GMT +1. The time now is 07:29 PM.

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