current worksheet correct syntax

cthompson

Board Regular
Hi Everyone,

I am trying to create a button that will sort a specific area on a worksheet, there are approximately 140 identical tabs (worksheets) and I wanted to have a button invoke a macro to sort the same area on the current active worksheet.

When i use the macro recorder it always inserts the sheet that i created it on, but i want to modify the VBA to reference whatever sheet is currently being viewed. The button exist on all 140 sheets.

Below is the attempt to change the syntax to work with the current sheet, not just the one that I was using to record the macro.

Thanks again for the help.
Chris

Code:
Sub Macrotest()
'
' Macrotest Macro
'
Dim ssheet
ssheet = ActiveWorkbook.ActiveSheet()
'
    Range("B126:G166").Select
    ActiveWorkbook.Worksheets("ssheet").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("ssheet").Sort.SortFields.Add2 Key:=Range( _
        "D126:D166"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("ssheet").Sort
        .SetRange Range("B126:G166")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 
Last edited by a moderator:

Fluff

MrExcel MVP, Moderator
How about
Code:
Sub Macrotest()
    '
    ' Macrotest Macro
    '
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add2 Key:=Range("D126:D166"), SortOn:=xlSortOnValues, Order:=xlAscending, _
            DataOption:=xlSortNormal
        .SetRange Range("B126:G166")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 

Some videos you may like

This Week's Hot Topics

Top