ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel macro to sort columns, one row at a time (https://www.excelbanter.com/excel-programming/376556-excel-macro-sort-columns-one-row-time.html)

vincent

Excel macro to sort columns, one row at a time
 
Hi folks

I use macros using the record feature of Excel but dont know vis basic.
I think i need some kind of simple for-loop to systematically go row
by row and sort my columns in ascending order.

It would look something like this.

For Row = 1 to 2000, Step 1
Sort Row Code (see below cutout of actual code for doing just one
row)
Next


I dont know how to write this code to make it increment row by row.
Any help is greatly appreciated!

Vincent

Range("DW2:FR2").Select

Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal


Susan

Excel macro to sort columns, one row at a time
 
vincent - i'm working on it!
:)
just might take me a little bit (no guru here).
didn't want you to think nobody was answering! i'm a relative newbie
myself so it takes me a while to write code..............
maybe some guru will take pity on you & answer you while i'm working on
it!
ha ha
susan


vincent wrote:
Hi folks

I use macros using the record feature of Excel but dont know vis basic.
I think i need some kind of simple for-loop to systematically go row
by row and sort my columns in ascending order.

It would look something like this.

For Row = 1 to 2000, Step 1
Sort Row Code (see below cutout of actual code for doing just one
row)
Next


I dont know how to write this code to make it increment row by row.
Any help is greatly appreciated!

Vincent

Range("DW2:FR2").Select

Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal



Susan

Excel macro to sort columns, one row at a time
 
ok, here you go.......
worked for me...
xxxxxxxxxxxxxxxx
Option Explicit

Sub sortrow()
Dim MyRng As Range
Dim row As Range
Dim wks As Worksheet
Dim Sheet1 As Worksheet

Set Sheet1 = ActiveWorkbook.Worksheets(1)
Set MyRng = Sheet1.Range("DW2:FR2000")

Sheet1.Range("DW2").Select
For Each row In MyRng.Rows
On Error Resume Next
Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
ActiveCell.Offset(1, 0).Select
Next row
End Sub
xxxxxxxxxxxxxxxxxxxx
you have to copy & paste this code into a module.
hope it works for you!
susan




vincent wrote:
Hi folks

I use macros using the record feature of Excel but dont know vis basic.
I think i need some kind of simple for-loop to systematically go row
by row and sort my columns in ascending order.

It would look something like this.

For Row = 1 to 2000, Step 1
Sort Row Code (see below cutout of actual code for doing just one
row)
Next


I dont know how to write this code to make it increment row by row.
Any help is greatly appreciated!

Vincent

Range("DW2:FR2").Select

Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal



Susan

Excel macro to sort columns, one row at a time
 
remember when i said i'm not a guru?
it's not working exactly right........ offsets, etc., but is not
sorting anything
except the 1st row.
still working on it.
<sheepishly
susan

Susan wrote:
ok, here you go.......
worked for me...
xxxxxxxxxxxxxxxx
Option Explicit

Sub sortrow()
Dim MyRng As Range
Dim row As Range
Dim wks As Worksheet
Dim Sheet1 As Worksheet

Set Sheet1 = ActiveWorkbook.Worksheets(1)
Set MyRng = Sheet1.Range("DW2:FR2000")

Sheet1.Range("DW2").Select
For Each row In MyRng.Rows
On Error Resume Next
Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
ActiveCell.Offset(1, 0).Select
Next row
End Sub
xxxxxxxxxxxxxxxxxxxx
you have to copy & paste this code into a module.
hope it works for you!
susan




vincent wrote:
Hi folks

I use macros using the record feature of Excel but dont know vis basic.
I think i need some kind of simple for-loop to systematically go row
by row and sort my columns in ascending order.

It would look something like this.

For Row = 1 to 2000, Step 1
Sort Row Code (see below cutout of actual code for doing just one
row)
Next


I dont know how to write this code to make it increment row by row.
Any help is greatly appreciated!

Vincent

Range("DW2:FR2").Select

Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal



Susan

Excel macro to sort columns, one row at a time
 
ok, do you hate me yet?
this one works, i promise.........
:)
susan
xxxxxxxxxxxxxxxxxxxxx
Option Explicit

Sub sortrow()
Dim MyRng As Range
Dim row As Range
Dim wks As Worksheet
Dim Sheet1 As Worksheet
Dim aa As Range

Set Sheet1 = ActiveWorkbook.Worksheets(1)
Set MyRng = Sheet1.Range("DW2:FR2000")

Sheet1.Range("DW2").Select
For Each row In MyRng.Rows
On Error Resume Next
Set aa = ActiveCell
If ActiveCell < Empty Then
row.Select
Selection.Sort Key1:=aa, Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False,
Orientation:=xlLeftToRight
ActiveCell.Offset(1, 0).Select
End If
Next row
Sheet1.Range("DW2").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxx


Susan wrote:
remember when i said i'm not a guru?
it's not working exactly right........ offsets, etc., but is not
sorting anything
except the 1st row.
still working on it.
<sheepishly
susan

Susan wrote:
ok, here you go.......
worked for me...
xxxxxxxxxxxxxxxx
Option Explicit

Sub sortrow()
Dim MyRng As Range
Dim row As Range
Dim wks As Worksheet
Dim Sheet1 As Worksheet

Set Sheet1 = ActiveWorkbook.Worksheets(1)
Set MyRng = Sheet1.Range("DW2:FR2000")

Sheet1.Range("DW2").Select
For Each row In MyRng.Rows
On Error Resume Next
Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
ActiveCell.Offset(1, 0).Select
Next row
End Sub
xxxxxxxxxxxxxxxxxxxx
you have to copy & paste this code into a module.
hope it works for you!
susan




vincent wrote:
Hi folks

I use macros using the record feature of Excel but dont know vis basic.
I think i need some kind of simple for-loop to systematically go row
by row and sort my columns in ascending order.

It would look something like this.

For Row = 1 to 2000, Step 1
Sort Row Code (see below cutout of actual code for doing just one
row)
Next


I dont know how to write this code to make it increment row by row.
Any help is greatly appreciated!

Vincent

Range("DW2:FR2").Select

Selection.Sort Key1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal



vincent

Excel macro to sort columns, one row at a time
 
This worked GREAT! Thanks so MUCH!

On Nov 2, 11:32 am, "Susan" wrote:
ok, do you hate me yet?
thisoneworks, i promise.........
:)
susan
xxxxxxxxxxxxxxxxxxxxx
Option Explicit

Sub sortrow()
Dim MyRng As Range
DimrowAs Range
Dim wks As Worksheet
Dim Sheet1 As Worksheet
Dim aa As Range

Set Sheet1 = ActiveWorkbook.Worksheets(1)
Set MyRng = Sheet1.Range("DW2:FR2000")

Sheet1.Range("DW2").Select
For EachrowIn MyRng.Rows
On Error Resume Next
Set aa = ActiveCell
If ActiveCell < Empty Then
row.Select
Selection.SortKey1:=aa, Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False,
Orientation:=xlLeftToRight
ActiveCell.Offset(1, 0).Select
End If
Nextrow
Sheet1.Range("DW2").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxx



Susan wrote:
remember when i said i'm not a guru?
it's not working exactly right........ offsets, etc., but is not
sorting anything
except the 1strow.
still working on it.
<sheepishly
susan


Susan wrote:
ok, here you go.......
worked for me...
xxxxxxxxxxxxxxxx
Option Explicit


Sub sortrow()
Dim MyRng As Range
DimrowAs Range
Dim wks As Worksheet
Dim Sheet1 As Worksheet


Set Sheet1 = ActiveWorkbook.Worksheets(1)
Set MyRng = Sheet1.Range("DW2:FR2000")


Sheet1.Range("DW2").Select
For EachrowIn MyRng.Rows
On Error Resume Next
Selection.SortKey1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
ActiveCell.Offset(1, 0).Select
Nextrow
End Sub
xxxxxxxxxxxxxxxxxxxx
you have to copy & paste this code into a module.
hope it works for you!
susan


vincent wrote:
Hi folks


I use macros using the record feature ofExcelbut dont know vis basic.
I think i need some kind of simple for-loop to systematically gorow
byrowandsortmy columns in ascending order.


It would look something like this.


ForRow= 1 to 2000, Step 1
SortRowCode (see below cutout of actual code for doing justone
row)
Next


I dont know how to write this code to make it incrementrowbyrow.
Any help is greatly appreciated!


Vincent


Range("DW2:FR2").Select


Selection.SortKey1:=Range("DW2"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal- Hide quoted text -- Show quoted text -




All times are GMT +1. The time now is 09:49 PM.

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