+ Reply to Thread
Results 1 to 3 of 3

Sort and filter macro

  1. #1
    Registered User
    Join Date
    03-28-2006
    Posts
    43

    Sort and filter macro

    Hi

    I recorded a macro, trying to sort a column and then filter it paste to a new column.

    Does anyone find the code exceptionally long? I suspect it can be coded neater but I'm novice.


    Please Login or Register  to view this content.

  2. #2
    Ardus Petus
    Guest

    Re: Sort and filter macro

    You can deleye all lines with ActiveWindow.ScrollRow = x

    HTH
    --
    AP

    "KH_GS" <[email protected]> a écrit dans le
    message de news:[email protected]...
    >
    > Hi
    >
    > I recorded a macro, trying to sort a column and then filter it paste to
    > a new column.
    >
    > Does anyone find the code exceptionally long? I suspect it can be coded
    > neater but I'm novice.
    >
    >
    >
    > Code:
    > --------------------
    > Sub SortFilter ()
    >
    > Columns("D:D").Select
    > Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlYes, _
    > OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    > DataOption1:=xlSortNormal
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 24
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 1
    > Columns("D:D").AdvancedFilter Action:=xlFilterCopy,

    CopyToRange:=Range("F1" _
    > ), Unique:=True
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 24
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 1
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 24
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 1
    > End Sub
    >
    > --------------------
    >
    >
    > --
    > KH_GS
    > ------------------------------------------------------------------------
    > KH_GS's Profile:

    http://www.excelforum.com/member.php...o&userid=32920
    > View this thread: http://www.excelforum.com/showthread...hreadid=527968
    >




  3. #3
    Norman Jones
    Guest

    Re: Sort and filter macro

    Hi KH,

    Try, perhaps:

    '=============>>
    Sub SortFilter()

    With Columns("D:D")
    .Sort Key1:=Range("D2"), _
    Order1:=xlAscending, _
    Header:=xlYes, _
    OrderCustom:=1, _
    MatchCase:=False, _
    Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

    .AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=Range("F1"), _
    Unique:=True
    End With

    End Sub
    '<<=============


    ---
    Regards,
    Norman


    "KH_GS" <[email protected]> wrote in
    message news:[email protected]...
    >
    > Hi
    >
    > I recorded a macro, trying to sort a column and then filter it paste to
    > a new column.
    >
    > Does anyone find the code exceptionally long? I suspect it can be coded
    > neater but I'm novice.
    >
    >
    >
    > Code:
    > --------------------
    > Sub SortFilter ()
    >
    > Columns("D:D").Select
    > Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlYes, _
    > OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    > DataOption1:=xlSortNormal
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 24
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 1
    > Columns("D:D").AdvancedFilter Action:=xlFilterCopy,
    > CopyToRange:=Range("F1" _
    > ), Unique:=True
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 24
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 1
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 24
    > ActiveWindow.ScrollRow = 23
    > ActiveWindow.ScrollRow = 22
    > ActiveWindow.ScrollRow = 21
    > ActiveWindow.ScrollRow = 20
    > ActiveWindow.ScrollRow = 19
    > ActiveWindow.ScrollRow = 18
    > ActiveWindow.ScrollRow = 17
    > ActiveWindow.ScrollRow = 16
    > ActiveWindow.ScrollRow = 15
    > ActiveWindow.ScrollRow = 14
    > ActiveWindow.ScrollRow = 13
    > ActiveWindow.ScrollRow = 12
    > ActiveWindow.ScrollRow = 11
    > ActiveWindow.ScrollRow = 10
    > ActiveWindow.ScrollRow = 9
    > ActiveWindow.ScrollRow = 8
    > ActiveWindow.ScrollRow = 7
    > ActiveWindow.ScrollRow = 6
    > ActiveWindow.ScrollRow = 5
    > ActiveWindow.ScrollRow = 4
    > ActiveWindow.ScrollRow = 3
    > ActiveWindow.ScrollRow = 2
    > ActiveWindow.ScrollRow = 1
    > End Sub
    >
    > --------------------
    >
    >
    > --
    > KH_GS
    > ------------------------------------------------------------------------
    > KH_GS's Profile:
    > http://www.excelforum.com/member.php...o&userid=32920
    > View this thread: http://www.excelforum.com/showthread...hreadid=527968
    >




+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1