Link to home
Start Free TrialLog in
Avatar of ca1358

asked on

Categorize and Sort Excel VBA

Is there any way to have  “mouse” categorize at the top and date sorted ,
then “Dog”, then ”cat”
and when a new line is add, when Column B is entered, this would categorize it again and date ordered?

Dog      10/25/2010
cat      8/19/2010
mouse      8/16/2010
Dog      11/1/2010
mouse      12/1/2010
Dog      8/16/2010
cat      7/1/2010
mouse      11/8/2010
Dog      11/8/2010
cat      10/1/2010
Avatar of TommySzalapski
Flag of United States of America image

Does mouse have to be at the top? You could just sort by column B then by column A.
Avatar of ca1358


Yes order would have to be Mouse, Dog, Cat
Just sort it descending then.
Add this code to the worksheet to make it automatic.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
  Range("A:B").SortSpecial Key1:=Range("A1"), Order1:=xlDescending, Key2:=Range("B1"), Order2:=xlAscending
End If
End Sub

Open in new window

Have a helper column that stores 1,2 or 3 based on the column containing Mouse, Dog or Cat. Now sort as you want... based on the helper column and dates.
Avatar of TommySzalapski
Flag of United States of America image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
gbanik, that was also for your benefit. Custom lists are really cool. They work for sorting and fill down.
Avatar of ca1358


I just realize it would be descending but it would not always be the case.  They could be mix up, so how do I define the list once sorted?   So that mouse, cat, dog.
You just need to define a custom list. Which version of Excel are you using?
2007/2010 from the link I posted:
1.Click the Microsoft Office Button , and then click Excel Options.
2.Click the Popular category, and then under Top options for working with Excel, click Edit Custom Lists.
3.In the Custom Lists box, click NEW LIST, and then type the entries in the List entries box, beginning with the first entry.
Press ENTER after each entry.

4.When the list is complete, click Add.
The items in the list that you selected are added to the Custom lists box.

5.Click OK twice.
http:#a34086942 Is the best answer. Custom lists work really well for sorting.
This question has been classified as abandoned and is being closed as part of the Cleanup Program.  See my comment at the end of the question for more details.