Microsoft KB Archive/142112

= XL: Sample Macro to Sort List Based on Custom Sort Order =

Article ID: 142112

Article Last Modified on 10/11/2006

-

APPLIES TO


 * Microsoft Excel 97 Standard Edition
 * Microsoft Excel 95 Standard Edition
 * Microsoft Excel 5.0 Standard Edition
 * Microsoft Excel 5.0c
 * Microsoft Excel 5.0 for Macintosh
 * Microsoft Excel 5.0a for Macintosh
 * Microsoft Excel 98 for Macintosh

-



This article was previously published under Q142112





SUMMARY
In Microsoft Excel, you can create your own custom sort lists and you can use these lists to specify sort orders when you sort a list of information. This article describes the procedures for creating a custom sort list and includes a sample Microsoft Visual Basic for Applications macro that uses this custom list to sort a range of cells according to the custom sort order.



MORE INFORMATION
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. To create a custom sort list to use later with the sample macro:   In a new worksheet, type the following data:      A1: red A2: blue A3: green A4: yellow A5: pink  On the Tools menu, click Options (or Preferences if you are using Excel for the Macintosh), and in the Options (or Preferences) dialog box click the Custom Lists tab. In the Import list from cells box, type A1:A5, and then click Import.

You should now have a custom sort list based on the list in step 1. Click OK.  Type the following data in a new worksheet. (This data will be the data that is sorted by the sample macro.)      A1: pink A2: blue A3: green A4: blue A5: yellow A6: pink A7: red A8: blue A9: red </li>  In a new module sheet, type the following macro code: Sub Custom_Sort Range("A1").Sort Key1:=Range("A1"), Order1:= _ xlAscending, Header:=xlGuess, OrderCustom:=6, _ MatchCase:=False, Orientation:= xlTopToBottom End Sub NOTE: The number for the "OrderCustom" argument is the position of your custom list in the list from the Custom Lists tab of the Options dialog box. The number you use may be different from the one used in this example. To find out what number you should use, click Options on the Tools menu, and click the Custom Lists tab. By default, there are four default sort lists in Microsoft Excel. Their values for the "OrderCustom" argument would be 2, 3, 4, and 5, respectively. Therefore, the first custom sort list would be 6. If you have only the custom sort list created in steps 1 through 3 above, this is the value you would use for the "OrderCustom" argument. Use this value because the number 1 item in the list is reserved for the "New List" item. </li>  Switch to the worksheet where you entered the value in step 4, and then run the Custom_Sort macro.

The list should be sorted according to the custom sort list you created in steps 1-3, and your data should resemble the following: <pre class="fixed_text">     A1: red A2: red A3: blue A4: blue A5: blue A6: green A7: yellow A8: pink A9: pink </li></ol>

For additional information about determining the position for a custom sort list, please click the article number below to view the article in the Microsoft Knowledge Base:

134913 XL: GetCustomListNum Returns Unexpected List Number

<div class="references_section">