ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Alphabetize Columns (https://www.excelbanter.com/excel-programming/425241-alphabetize-columns.html)

[email protected]

Alphabetize Columns
 
I'm looking to put columns in alphabetical order based upon their
content in a given row. This works, but it seems to be rather
inefficient. Is there a better way of doing this?

Sub AlphaColumns()
rw = 1
cStart = 1
cEnd = 10

For i = cStart To cEnd
For j = i To cEnd
If UCase(Cells(rw, i).Value) UCase(Cells(rw, j).Value) Then
Cells(1, i).EntireColumn.Select
Selection.Cut
Cells(1, j + 1).EntireColumn.Select
Selection.Insert Shift:=xlToRight
i = Application.WorksheetFunction.Max(cStart, i - 1)
End If
Next j
Next i

End Sub



joel

Alphabetize Columns
 
Sub AlphaColumns()

rw = 1
cStart = 1
cEnd = 10

Set SortRange = Range(Cells(rw, cStart), Cells(rw, cEnd))

SortRange.Sort _
Key1:=Cells(rw, cStart), _
Order1:=xlAscending, _
header:=xlNo, _
Orientation:=xlLeftToRight
End Sub

" wrote:

I'm looking to put columns in alphabetical order based upon their
content in a given row. This works, but it seems to be rather
inefficient. Is there a better way of doing this?

Sub AlphaColumns()
rw = 1
cStart = 1
cEnd = 10

For i = cStart To cEnd
For j = i To cEnd
If UCase(Cells(rw, i).Value) UCase(Cells(rw, j).Value) Then
Cells(1, i).EntireColumn.Select
Selection.Cut
Cells(1, j + 1).EntireColumn.Select
Selection.Insert Shift:=xlToRight
i = Application.WorksheetFunction.Max(cStart, i - 1)
End If
Next j
Next i

End Sub




Jim Cone[_2_]

Alphabetize Columns
 
Cells.Sort Key1:=Rows(rw), Order1:=xlAscending, Orientation:=xlLeftToRight
--
Jim Cone
Portland, Oregon USA






wrote in message
I'm looking to put columns in alphabetical order based upon their
content in a given row. This works, but it seems to be rather
inefficient. Is there a better way of doing this?

Sub AlphaColumns()
rw = 1
cStart = 1
cEnd = 10
For i = cStart To cEnd
For j = i To cEnd
If UCase(Cells(rw, i).Value) UCase(Cells(rw, j).Value) Then
Cells(1, i).EntireColumn.Select
Selection.Cut
Cells(1, j + 1).EntireColumn.Select
Selection.Insert Shift:=xlToRight
i = Application.WorksheetFunction.Max(cStart, i - 1)
End If
Next j
Next i
End Sub




All times are GMT +1. The time now is 12:28 PM.

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