ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Re posting Please help (Macro for Special Sorting) (https://www.excelbanter.com/excel-programming/440674-re-posting-please-help-macro-special-sorting.html)

K[_2_]

Re posting Please help (Macro for Special Sorting)
 
I have file names listed in column A and B like (see below)

A B……col
Jim Boot - data.xls John Wood (Record List).xlsx
Ali Khan (data).xlsm Dean Wild - system.xls
Bob Will.xlsx Jim Boot (actuals).xlsm
John Wood.xls Kam Finch.xlsx
Ali Khan (Recorded data).xls


The special thing about file names listed in column A and B is that
the first two words in those are always the first name and last name
of the person. I am looking for a macro which should sort both these
columns lists alphabatically and also the way that same name should
come in same row. so i am looking for the result something like (see
below)


A B……col
Ali Khan (data).xlsm Ali Khan (Recorded data).xls
Bob Will.xlsx
Dean Wild - system.xls
Jim Boot - data.xls Jim Boot (actuals).xlsm
John Wood.xls John Wood (Record List).xlsx
Kam Finch.xlsx


I'll be very thankful if any friend got sultion for this kind of
sorting.



Bernie Deitrick

Re posting Please help (Macro for Special Sorting)
 
Try the macro below. I have assumed that your lists start in row 1 (they
will after the sort, in any case) - and that you do not have headers. If
that is not the case, change xlNo to xlYes on the sort commands, and change
For i = 1 to j to For i = 2 to j

If your lists do not start in row 1 and you want to keep it that way, change
Columns("A:A") to

Range(Range("A3"), Cells(Rows.Count,1).End(xlUp))

for data starting in row 3.

HTH,
Bernie
MS Excel MVP


Sub Macro1()
Dim S1 As String
Dim S2 As String

Dim i As Integer
Dim j As Integer

Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo

j = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To j
S1 = Replace(Cells(i, 1).Value, ".", " ")
S1 = Left(S1, InStr(InStr(1, S1, " ") + 1, S1, " "))
S2 = Replace(Cells(i, 2).Value, ".", " ")
S2 = Left(S2, InStr(InStr(1, S2, " ") + 1, S2, " "))
If S1 < S2 Then
Cells(i, 2).Insert
j = j + 1
End If
If S1 S2 Then
Cells(i, 1).Insert
j = j + 1
End If
Next i

End Sub



"K" wrote in message
...
I have file names listed in column A and B like (see below)

A B……col
Jim Boot - data.xls John Wood (Record List).xlsx
Ali Khan (data).xlsm Dean Wild - system.xls
Bob Will.xlsx Jim Boot (actuals).xlsm
John Wood.xls Kam Finch.xlsx
Ali Khan (Recorded data).xls


The special thing about file names listed in column A and B is that
the first two words in those are always the first name and last name
of the person. I am looking for a macro which should sort both these
columns lists alphabatically and also the way that same name should
come in same row. so i am looking for the result something like (see
below)


A B……col
Ali Khan (data).xlsm Ali Khan (Recorded data).xls
Bob Will.xlsx
Dean Wild - system.xls
Jim Boot - data.xls Jim Boot (actuals).xlsm
John Wood.xls John Wood (Record List).xlsx
Kam Finch.xlsx


I'll be very thankful if any friend got sultion for this kind of
sorting.




Dennis Tucker

Re posting Please help (Macro for Special Sorting)
 
If I were doing this operation, I would just copy and paste the list in Col
B to Col A. Then sort ascending Col A.

This merges the data and like records are next to each other.

"K" wrote in message
...
I have file names listed in column A and B like (see below)

A B……col
Jim Boot - data.xls John Wood (Record List).xlsx
Ali Khan (data).xlsm Dean Wild - system.xls
Bob Will.xlsx Jim Boot (actuals).xlsm
John Wood.xls Kam Finch.xlsx
Ali Khan (Recorded data).xls


The special thing about file names listed in column A and B is that
the first two words in those are always the first name and last name
of the person. I am looking for a macro which should sort both these
columns lists alphabatically and also the way that same name should
come in same row. so i am looking for the result something like (see
below)


A B……col
Ali Khan (data).xlsm Ali Khan (Recorded data).xls
Bob Will.xlsx
Dean Wild - system.xls
Jim Boot - data.xls Jim Boot (actuals).xlsm
John Wood.xls John Wood (Record List).xlsx
Kam Finch.xlsx


I'll be very thankful if any friend got sultion for this kind of
sorting.



Bernie Deitrick

Re posting Please help (Macro for Special Sorting)
 
The change in the upper limit doesn't work, so the whole list may not get
spaced properly. Use this code instead:

Sub Macro1()
Dim S1 As String
Dim S2 As String

Dim i As Integer
Dim j As Integer

Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo

j = Cells(Rows.Count, 1).End(xlUp).Row * 2

For i = 1 To j
S1 = Replace(Cells(i, 1).Value, ".", " ")
S1 = Left(S1, InStr(InStr(1, S1, " ") + 1, S1, " "))
S2 = Replace(Cells(i, 2).Value, ".", " ")
S2 = Left(S2, InStr(InStr(1, S2, " ") + 1, S2, " "))
If S1 < "" And S2 < "" Then
If S1 < S2 Then
Cells(i, 2).Insert
End If
If S1 S2 Then
Cells(i, 1).Insert
End If
End If
Next i

End Sub



HTH,
Bernie
MS Excel MVP


"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Try the macro below. I have assumed that your lists start in row 1 (they
will after the sort, in any case) - and that you do not have headers. If
that is not the case, change xlNo to xlYes on the sort commands, and
change For i = 1 to j to For i = 2 to j

If your lists do not start in row 1 and you want to keep it that way,
change Columns("A:A") to

Range(Range("A3"), Cells(Rows.Count,1).End(xlUp))

for data starting in row 3.

HTH,
Bernie
MS Excel MVP


Sub Macro1()
Dim S1 As String
Dim S2 As String

Dim i As Integer
Dim j As Integer

Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlNo
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending,
Header:=xlNo

j = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To j
S1 = Replace(Cells(i, 1).Value, ".", " ")
S1 = Left(S1, InStr(InStr(1, S1, " ") + 1, S1, " "))
S2 = Replace(Cells(i, 2).Value, ".", " ")
S2 = Left(S2, InStr(InStr(1, S2, " ") + 1, S2, " "))
If S1 < S2 Then
Cells(i, 2).Insert
j = j + 1
End If
If S1 S2 Then
Cells(i, 1).Insert
j = j + 1
End If
Next i

End Sub



"K" wrote in message
...
I have file names listed in column A and B like (see below)

A B..col
Jim Boot - data.xls John Wood (Record List).xlsx
Ali Khan (data).xlsm Dean Wild - system.xls
Bob Will.xlsx Jim Boot (actuals).xlsm
John Wood.xls Kam Finch.xlsx
Ali Khan (Recorded data).xls


The special thing about file names listed in column A and B is that
the first two words in those are always the first name and last name
of the person. I am looking for a macro which should sort both these
columns lists alphabatically and also the way that same name should
come in same row. so i am looking for the result something like (see
below)


A B..col
Ali Khan (data).xlsm Ali Khan (Recorded data).xls
Bob Will.xlsx
Dean Wild - system.xls
Jim Boot - data.xls Jim Boot (actuals).xlsm
John Wood.xls John Wood (Record List).xlsx
Kam Finch.xlsx


I'll be very thankful if any friend got sultion for this kind of
sorting.






K[_2_]

Re posting Please help (Macro for Special Sorting)
 
On Mar 16, 2:46*pm, "Bernie Deitrick" <deitbe @ consumer dot org
wrote:
The change in the upper limit doesn't work, so the whole list may not get
spaced properly. *Use this code instead:

Sub Macro1()
* * Dim S1 As String
* * Dim S2 As String

* * Dim i As Integer
* * Dim j As Integer

* * Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo
* * Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo

* * j = Cells(Rows.Count, 1).End(xlUp).Row * 2

* * For i = 1 To j
* * * * S1 = Replace(Cells(i, 1).Value, ".", " ")
* * * * S1 = Left(S1, InStr(InStr(1, S1, " ") + 1, S1, " "))
* * * * S2 = Replace(Cells(i, 2).Value, ".", " ")
* * * * S2 = Left(S2, InStr(InStr(1, S2, " ") + 1, S2, " "))
* * * * If S1 < "" And S2 < "" Then
* * * * * * If S1 < S2 Then
* * * * * * * * Cells(i, 2).Insert
* * * * * * End If
* * * * * * If S1 S2 Then
* * * * * * * * Cells(i, 1).Insert
* * * * * * End If
* * * * End If
* * Next i

End Sub

HTH,
Bernie
MS Excel MVP

"Bernie Deitrick" <deitbe @ consumer dot org wrote in . ..



Try the macro below. I have assumed that your lists start in row 1 (they
will after the sort, in any case) - and that you do not have headers. *If
that is not the case, change xlNo to xlYes on the sort commands, and
change For i = 1 to j * to *For i = 2 to j


If your lists do not start in row 1 and you want to keep it that way,
change Columns("A:A") to


Range(Range("A3"), Cells(Rows.Count,1).End(xlUp))


for data starting in row 3.


HTH,
Bernie
MS Excel MVP


Sub Macro1()
* *Dim S1 As String
* *Dim S2 As String


* *Dim i As Integer
* *Dim j As Integer


* *Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlNo
* *Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending,
Header:=xlNo


* *j = Cells(Rows.Count, 1).End(xlUp).Row


* *For i = 1 To j
* * * *S1 = Replace(Cells(i, 1).Value, ".", " ")
* * * *S1 = Left(S1, InStr(InStr(1, S1, " ") + 1, S1, " "))
* * * *S2 = Replace(Cells(i, 2).Value, ".", " ")
* * * *S2 = Left(S2, InStr(InStr(1, S2, " ") + 1, S2, " "))
* * * *If S1 < S2 Then
* * * * * *Cells(i, 2).Insert
* * * * * *j = j + 1
* * * *End If
* * * *If S1 S2 Then
* * * * * *Cells(i, 1).Insert
* * * * * *j = j + 1
* * * *End If
* *Next i


End Sub


"K" wrote in message
....
I have file names listed in column A and B like (see below)


A * * * * * * * * * * * * * * * * B..col
Jim Boot - data.xls * * *John Wood (Record List).xlsx
Ali Khan (data).xlsm * Dean Wild - system.xls
Bob Will.xlsx * * * * * * * *Jim Boot (actuals).xlsm
John Wood.xls * * * * * *Kam Finch.xlsx
* * * * * * * * * * * * * * * * * * *Ali Khan (Recorded data).xls


The special thing about file names listed in column A and B is that
the first two words in those are always the first name and last name
of the person. *I am looking for a macro which should sort both these
columns lists alphabatically and also the way that same name should
come in same row. *so i am looking for the result something like (see
below)


A * * * * * * * * * * * * * * * * B..col
Ali Khan (data).xlsm * Ali Khan (Recorded data).xls
Bob Will.xlsx
* * * * * * * * * * * * * * * * * * Dean Wild - system.xls
Jim Boot - data.xls * * * Jim Boot (actuals).xlsm
John Wood.xls * * * * * * John Wood (Record List).xlsx
* * * * * * * * * * * * * * * * * * *Kam Finch.xlsx


I'll be very thankful if any friend got sultion for this kind of
sorting.- Hide quoted text -


- Show quoted text -


thanks lot Bernie


All times are GMT +1. The time now is 09:27 AM.

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