Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greetings!
I am working in a good IT company under the quality management team. May I ask how can I automatically sort an array of records using macros based on categories and heirarchy of scores? Then generate a separate sheet for it as well? Here is a simple example of a record array found in sheet1 named as "DATA": A B C PARTICIPANT CATEGORY POINTS 1 Malaysia W 87,000 2 Indonesia X 12,000 3 Singapore Y 98,000 4 Thailand Z 15,000 5 Hong-Kong Y 58,000 6 Japan W 108,000 7 Russia X 33,000 8 China Z 72,000 I simply need to automatically generate two more sheets: Sheet 2 as "GroupsWX" which will contain all entries having categories 'W' and 'X' and Sheet 3 as "GroupsYZ" which will contain all entries having categories 'Y' and 'Z'. These two computer-generated sheets will display Columns A and C in descending order; without having the need to separate 'W' from 'X' or 'Y' from 'Z'. Thank you very much and God Bless to you, your family, and your company =)\ Regards, Mr. IT |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello Mr IT
This should do what you want, in terms of splitting the data into two sheets. The sort assumes you start putting data in Range A1 and the data is presented in a structured manner. Take care Marcus Sub CopytoSheet() Dim RngCell As Range Dim MyList() As Variant Dim res As Variant Dim lw As Long Dim X As Range Dim ws As Worksheet lw = Range("B" & Rows.Count).End(xlUp).Row MyList() = Array("W", "X") Set X = Range("B2:B" & lw) For Each RngCell In X res = Application.Match(RngCell.Value, MyList, 0) If IsError(res) Then RngCell.EntireRow.Copy Sheets("Sheet3"). _ Range("A65536").End(xlUp).Offset(1, 0) Else RngCell.EntireRow.Copy Sheets("Sheet2"). _ Range("A65536").End(xlUp).Offset(1, 0) End If Next RngCell 'Sort the ranges For Each ws In ThisWorkbook.Worksheets If ws.Name = "Sheet2" Or ws.Name = "Sheet3" Then With ws.Range("A1").CurrentRegion .Sort Key1:=.Cells(2, "A"), Order1:=xlDescending, Header:=xlYes End With End If Next End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Excel - Sorting for Duplicate Records | Excel Worksheet Functions | |||
Sorting records with a macro | Excel Programming | |||
In Excel, sorting columns automatically by clicking column title | Excel Discussion (Misc queries) | |||
automatically delete records w/duplicate address in excel | Excel Discussion (Misc queries) | |||
Sorting Records | Excel Discussion (Misc queries) |