ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Sort column without referencing sheet name (https://www.excelbanter.com/excel-programming/434455-sort-column-without-referencing-sheet-name.html)

KellyInCali

Sort column without referencing sheet name
 
I am using a macro to reformat a txt file which was exported from a
proprietary program and opened with Excel. The sort works fine, but I
recorded the macro to get the code and when it sorts by column A, the
recorded code references the specific worksheet name which was automatically
named for the txt file name. Problem is that subsequent txt files will
always have a different name. I just need the wording to make it for
whatever the current sheet is.

TIA,
Kelly


The recorded code came out like this:
Columns("A:F").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Clear
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Add
Key:=Range( _
"A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("QSYSPRT732957").Sort
.SetRange Range("A1:F300")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Jacob Skaria

Sort column without referencing sheet name
 
Replace

Worksheets("QSYSPRT732957")

with

ActiveSheet

If this post helps click Yes
---------------
Jacob Skaria


"KellyinCali" wrote:

I am using a macro to reformat a txt file which was exported from a
proprietary program and opened with Excel. The sort works fine, but I
recorded the macro to get the code and when it sorts by column A, the
recorded code references the specific worksheet name which was automatically
named for the txt file name. Problem is that subsequent txt files will
always have a different name. I just need the wording to make it for
whatever the current sheet is.

TIA,
Kelly


The recorded code came out like this:
Columns("A:F").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Clear
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Add
Key:=Range( _
"A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("QSYSPRT732957").Sort
.SetRange Range("A1:F300")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


KellyInCali

Sort column without referencing sheet name
 
Would this work?

Cells.Select
Selection.Sort Key1:=Range("A1"), SortOn:=xlSortOnValues,
Order:=xlAscending, Header:=xlNo, MatchCase:=False, Orientation:=xlTopToBottom



"KellyinCali" wrote:

I am using a macro to reformat a txt file which was exported from a
proprietary program and opened with Excel. The sort works fine, but I
recorded the macro to get the code and when it sorts by column A, the
recorded code references the specific worksheet name which was automatically
named for the txt file name. Problem is that subsequent txt files will
always have a different name. I just need the wording to make it for
whatever the current sheet is.

TIA,
Kelly


The recorded code came out like this:
Columns("A:F").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Clear
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Add
Key:=Range( _
"A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("QSYSPRT732957").Sort
.SetRange Range("A1:F300")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


KellyInCali

Sort column without referencing sheet name
 
Worked... of course! I knew it would be incredibly simple I just didn't know
the syntax. Thanks for indulging my laziness!!

Thanks Jacob!



"Jacob Skaria" wrote:

Replace

Worksheets("QSYSPRT732957")

with

ActiveSheet

If this post helps click Yes
---------------
Jacob Skaria


"KellyinCali" wrote:

I am using a macro to reformat a txt file which was exported from a
proprietary program and opened with Excel. The sort works fine, but I
recorded the macro to get the code and when it sorts by column A, the
recorded code references the specific worksheet name which was automatically
named for the txt file name. Problem is that subsequent txt files will
always have a different name. I just need the wording to make it for
whatever the current sheet is.

TIA,
Kelly


The recorded code came out like this:
Columns("A:F").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Clear
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Add
Key:=Range( _
"A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("QSYSPRT732957").Sort
.SetRange Range("A1:F300")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Jacob Skaria

Sort column without referencing sheet name
 
Try..

Cells.Sort Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlNo, Orientation:=xlTopToBottom

The Sort method expects the below (all of them are optional)
expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header,
OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2,
DataOption3)


If this post helps click Yes
---------------
Jacob Skaria


"KellyinCali" wrote:

Would this work?

Cells.Select
Selection.Sort Key1:=Range("A1"), SortOn:=xlSortOnValues,
Order:=xlAscending, Header:=xlNo, MatchCase:=False, Orientation:=xlTopToBottom



"KellyinCali" wrote:

I am using a macro to reformat a txt file which was exported from a
proprietary program and opened with Excel. The sort works fine, but I
recorded the macro to get the code and when it sorts by column A, the
recorded code references the specific worksheet name which was automatically
named for the txt file name. Problem is that subsequent txt files will
always have a different name. I just need the wording to make it for
whatever the current sheet is.

TIA,
Kelly


The recorded code came out like this:
Columns("A:F").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Clear
ActiveWorkbook.Worksheets("QSYSPRT732957").Sort.So rtFields.Add
Key:=Range( _
"A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("QSYSPRT732957").Sort
.SetRange Range("A1:F300")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With



All times are GMT +1. The time now is 03:06 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com