+ Reply to Thread
Results 1 to 47 of 47

compare 2 columns and shift columns down or up until the line matches

Hybrid View

  1. #1
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    compare 2 columns and shift columns down or up until the line matches

    Hi everyone.

    I have attached a file with operator numbers in columns A and B. I am looking for some VB code which compares A to B and shifts down column B a number of times until the values match. Also, likewise compare B to A so that it matches. If any values do not match then just a blank cell needs to be inserted in either column A or column B to shift the cells down until they match.

    I hope I have explained that and the attached file helps.

    Thanks


    Ps - I have amended the attached file to make it clearer hopefully what I am looking for

    test.xlsx
    Attached Files Attached Files
    Last edited by BryanRobson; 06-28-2023 at 04:21 AM.

  2. #2
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    test.xlsx

    This attachment hopefully explains better what the end result is I am looking for if anyone can help

    Thanks

  3. #3
    Forum Guru
    Join Date
    08-28-2014
    Location
    USA
    MS-Off Ver
    Excel 365 version 2501
    Posts
    19,034

    Re: compare 2 columns and shift columns down or up until the line matches

    Here is a three step formula based process.
    1. Produce a list of unique values using the array formula**: =INDIRECT(TEXT(MIN(IF((A$2:B$16<>"")*(COUNTIF(D$1:D1,A$2:B$16)=0),ROW(A$2:B$16)*100+COLUMN(A$2:B$16),6553601)),"R0C00"),0)+0
    2. Sort the unique list smallest to greatest using: =SMALL(D$2:D$22,ROWS(F$2:F2))
    3. Display the result using: =IF(ISNUMBER(MATCH($F2,A$2:A$16,0)),$F2,"")
    **Array formulas are not entered in the same way as 'standard' formulas. Instead of pressing just ENTER, you first hold down CTRL and SHIFT, and only then press ENTER. If you've done it correctly, you'll notice Excel puts curly brackets {} around the formula (though do not attempt to manually insert these yourself).
    Note that as you are using the 365 version it may not be necessary to activate the formula for #1 using CSE.
    Let us know if you have any questions.
    Attached Files Attached Files
    Consider taking the time to add to the reputation of everybody that has taken the time to respond to your query.

  4. #4
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    new example.xlsm

    Hi. Thanks for the reply. I have added a new file as an example with sensitive data deleted out but hopefully this will give you more of an idea of what I would like. So, basically, the data in both the tabs need to be
    side by side so you would have columns A to E from 'Today' then a blank column in F then columns A to E from 'Yesterday'. Then I need to compare column B to H, C to I and D to J. And the rows (cells) moving down
    until the numbers match. Or leave a blank line and shift down cells until either B = H or C = I

    Thanks
    Last edited by AliGW; 08-05-2023 at 03:57 AM. Reason: Please do NOT quote unnecessarily!

  5. #5
    Forum Expert
    Join Date
    11-24-2013
    Location
    Paris, France
    MS-Off Ver
    Excel 2003 / 2010
    Posts
    9,831

    Question Re: compare 2 columns and shift columns down or up until the line matches


    Hi,

    why the initial post attachment does not well reflect your need ?‼

    Acting like this means you are enough confident to fit yourself any VBA procedure a helper may share
    or you do not ever care to waste helpers time !

    I already have a procedure well working with your post #2 attachment but are you able to fit it to your real workbook ?

  6. #6
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi. I was trying to provide an example of the file / data without providing the full file due to sensitive data in it. I was hoping I would then be able to provide the logic in the solution to the three columns.

    So, the data in Today and Yesterday need to go into a new tab. The data from Today columns A to E first then a blank column in column F. Then the data from Yesterday columns A to E copied into the new tab in columns G to K.

    I need to compare column B to H, then C to I and D to J. the rows (cells) moving down until either the 3 columns match or if C = I and D = J . it is possible that C=I and D=J but B does not equal H and these can all stay lined up on the same row.

    You may get details on the left hand side but not the right and I would just like blank cells from column G onwards (moving down the cells probably). Likewise, there may be records from columns G to J which dont match up to columns B to D. In this case I would like the data in columns on the left hand side moving down so there is just a blank line as the data doesnt match.

    I dont know if this is possible in VBA but if anyone can provide something that would be great.

    Regards

    new example.xlsm
    Last edited by AliGW; 08-05-2023 at 03:58 AM. Reason: Please do NOT quote unnecessarily!

  7. #7
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Wink Re: compare 2 columns and shift columns down or up until the line matches

    BryanRobson,

    try
    Sub test()
        Dim a, b, e, x(1), w, s As String, dic As Object
        Dim i As Long, ii As Long, iii As Long, n As Long, t As Long
        Application.ScreenUpdating = False
        Set dic = CreateObject("Scripting.Dictionary")
        If Not [isref(results!a1)] Then Sheets.Add(Sheets(1)).Name = "results"
        With Sheets("results")
            .UsedRange.Clear
            Sheets("today").[a1].CurrentRegion.EntireColumn.Copy .[a1]
            Sheets("yesterday").[a1].CurrentRegion.EntireColumn.Copy .[f1]
            a = Intersect(.UsedRange.Offset(1), .Columns("a:i")).Value
            For ii = 1 To UBound(a, 2) Step 5
                For i = 1 To UBound(a, 1)
                    If a(i, ii) <> "" Then
                        s = ""
                        For iii = ii + 1 To ii + 3
                            s = s & Chr(2) & a(i, iii)
                        Next
                        If Not dic.exists(s) Then
                            ReDim w(1 To 2)
                        Else
                            w = dic(s)
                        End If
                        w(IIf(ii = 1, 1, 2)) = w(IIf(ii = 1, 1, 2)) & _
                        IIf(w(IIf(ii = 1, 1, 2)) <> "", ",", "") & i
                        dic(s) = w
                    End If
                Next
            Next
            ReDim b(1 To UBound(a, 1) * 2, 1 To UBound(a, 2)): n = 1
            For Each e In dic
                x(0) = Split(dic(e)(1), ",")
                x(1) = Split(dic(e)(2), ",")
                t = UBound(x(0))
                If t < UBound(x(1)) Then t = UBound(x(1))
                If UBound(x(0)) > -1 Then
                    For i = 0 To UBound(x(0))
                        For ii = 1 To 4
                            b(n, ii) = a(x(0)(i), ii)
                        Next
                    Next
                End If
                If UBound(x(1)) > -1 Then
                    For i = 0 To UBound(x(1))
                        For ii = 6 To UBound(a, 2)
                            b(n + i, ii) = a(x(1)(i), ii)
                        Next
                    Next
                End If
                n = n + t + 1
            Next
            With .[a2].Resize(n, UBound(b, 2))
                .NumberFormat = "@"
                .Value = b
                .Columns("a:d").Borders.Weight = 2
                .Columns("f:i").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub
    Attached Files Attached Files
    Last edited by jindon; 08-05-2023 at 04:29 AM.

  8. #8
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    I have tried your code first. On initial inspection, it seems to be doing what I tried to explain. I have attached a new file with updated data.

    On the results tab, on line 7107, this should appear on the right hand side on line 2757 on the right hand side because even though B <> G, C does equal H. If you can have a look at this and see what it is doing it that would be much appreciated.

    Regards

    new example.xlsm
    Attached Files Attached Files
    Last edited by AliGW; 08-28-2023 at 03:14 AM. Reason: Please do NOT quote unnecessarily!

  9. #9
    Forum Expert
    Join Date
    11-24-2013
    Location
    Paris, France
    MS-Off Ver
    Excel 2003 / 2010
    Posts
    9,831

    Arrow Re: compare 2 columns and shift columns down or up until the line matches


    As it's a new requirement so in order to no waste time attach at least the exact expected result according to your last attachment …

    Unclear : compare only 2 columns side by side or 3 ?!
    Last edited by Marc L; 07-25-2023 at 11:13 AM.

  10. #10
    Forum Expert
    Join Date
    11-24-2013
    Location
    Paris, France
    MS-Off Ver
    Excel 2003 / 2010
    Posts
    9,831

    Cool Try this ...


    According to the post #6 attachment a starter VBA demonstration using only columns C & D as keys :

    PHP Code: 
    Sub Demo1()
        
    Dim C%, V(1 To 2), W(1 To 2), L&(1 To 2), S$(), K%, R&
        For 
    1 To 2
        With Sheets
    (C).[A1].CurrentRegion.Resize(Sheets(C).[A1].CurrentRegion.Rows.Count 1).Columns
            V
    (C) = .Value
            W
    (C) = .Parent.Evaluate(.Item(3).Address "&"" ""&" & .Item(4).Address)
        
    End With
            L
    (C) = 2
        Next
            
    If UBound(V(1), 2) <> UBound(V(2), 2Then Beep: Exit Sub
            ReDim S
    (1 To UBound(V(1)) + UBound(V(2)), 1 To 1 UBound(V(1), 2) * 2)
            
    UBound(V(1), 2) + 1
            
    For 1 To UBound(V(1), 2):  S(1C) = V(1)(1C):  S(1C) = V(2)(1C):  Next
            R 
    1
        With Application
        
    Do
            
    1
         
    If W(1)(L(1), 1) = W(2)(L(2), 1Then
            W
    (1)(L(1), 1) = Empty:  W(2)(L(2), 1) = Empty
            For 
    1 To UBound(V(1), 2):  S(RC) = V(1)(L(1), C):  S(RC) = V(2)(L(2), C):  Next
            L
    (1) = L(1) + 1
            L
    (2) = L(2) + 1
         
    ElseIf IsError(.Match(W(1)(L(1), 1), W(2), 0)) Then
            W
    (1)(L(1), 1) = Empty
            For 
    1 To UBound(V(1), 2):  S(RC) = V(1)(L(1), C):  Next
            L
    (1) = L(1) + 1
         
    Else
            
    W(2)(L(2), 1) = Empty
            For 
    1 To UBound(V(2), 2):  S(RC) = V(2)(L(2), C):  Next
            L
    (2) = L(2) + 1
         End 
    If
        
    Loop While L(1) < UBound(V(1)) Or L(2) < UBound(V(2))
           .
    ScreenUpdating False
            
    If Sheets.Count 2 Then Sheets(3).UsedRange.Clear: .Goto Sheets(3).[A1], True Else Sheets.Add(, Sheets(2)).Name "Mixed"
            
    With [A1].Resize(RUBound(S2)):  .NumberFormat " @ ":  .Value2 S:  End With
            Range
    (Replace("B2:B#,D2:E#,H2:H#,J2:K#""#"R)).Columns.AutoFit
           
    .ScreenUpdating True
        End With
    End Sub 
    ► Do you like it ? ► So thanks to click on bottom left star icon « Add Reputation » !
    Last edited by Marc L; 07-25-2023 at 01:37 PM.

  11. #11
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: Try this ...

    @Marc L

    Thanks very much. I'll try it over the weekend hopefully. your post says it uses columns C and D as keys, are you able to highlight in the code where it does this please?

    Thanks
    Last edited by AliGW; 08-04-2023 at 04:44 AM. Reason: Please do NOT quote unnecessarily!

  12. #12
    Forum Expert
    Join Date
    11-24-2013
    Location
    Paris, France
    MS-Off Ver
    Excel 2003 / 2010
    Posts
    9,831

    Arrow Re: Try this ...


    Quote Originally Posted by BryanRobson View Post
    your post says it uses columns C and D as keys, are you able to highlight in the code where it does this please?
    Yes 'cause impossible mission to produce your expected result as it is when comparing 3 columns
    so the reason why comparing only 2 columns to get the same result …

    I used arrays to compare data but the classic beginner formula way is fast enough, easier to understand and maintain if you prefer …

    In my post #8 VBA demonstration columns are compared within the Do Loop section, W(1) versus W(2) …
    Last edited by Marc L; 08-04-2023 at 04:31 AM.

  13. #13
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: Try this ...

    Quote Originally Posted by Marc L View Post

    According to the post #6 attachment a starter VBA demonstration using only columns C & D as keys :

    PHP Code: 
    Sub Demo1()
        
    Dim C%, V(1 To 2), W(1 To 2), L&(1 To 2), S$(), K%, R&
        For 
    1 To 2
        With Sheets
    (C).[A1].CurrentRegion.Resize(Sheets(C).[A1].CurrentRegion.Rows.Count 1).Columns
            V
    (C) = .Value
            W
    (C) = .Parent.Evaluate(.Item(3).Address "&"" ""&" & .Item(4).Address)
        
    End With
            L
    (C) = 2
        Next
            
    If UBound(V(1), 2) <> UBound(V(2), 2Then Beep: Exit Sub
            ReDim S
    (1 To UBound(V(1)) + UBound(V(2)), 1 To 1 UBound(V(1), 2) * 2)
            
    UBound(V(1), 2) + 1
            
    For 1 To UBound(V(1), 2):  S(1C) = V(1)(1C):  S(1C) = V(2)(1C):  Next
            R 
    1
        With Application
        
    Do
            
    1
         
    If W(1)(L(1), 1) = W(2)(L(2), 1Then
            W
    (1)(L(1), 1) = Empty:  W(2)(L(2), 1) = Empty
            For 
    1 To UBound(V(1), 2):  S(RC) = V(1)(L(1), C):  S(RC) = V(2)(L(2), C):  Next
            L
    (1) = L(1) + 1
            L
    (2) = L(2) + 1
         
    ElseIf IsError(.Match(W(1)(L(1), 1), W(2), 0)) Then
            W
    (1)(L(1), 1) = Empty
            For 
    1 To UBound(V(1), 2):  S(RC) = V(1)(L(1), C):  Next
            L
    (1) = L(1) + 1
         
    Else
            
    W(2)(L(2), 1) = Empty
            For 
    1 To UBound(V(2), 2):  S(RC) = V(2)(L(2), C):  Next
            L
    (2) = L(2) + 1
         End 
    If
        
    Loop While L(1) < UBound(V(1)) Or L(2) < UBound(V(2))
           .
    ScreenUpdating False
            
    If Sheets.Count 2 Then Sheets(3).UsedRange.Clear: .Goto Sheets(3).[A1], True Else Sheets.Add(, Sheets(2)).Name "Mixed"
            
    With [A1].Resize(RUBound(S2)):  .NumberFormat " @ ":  .Value2 S:  End With
            Range
    (Replace("B2:B#,D2:E#,H2:H#,J2:K#""#"R)).Columns.AutoFit
           
    .ScreenUpdating True
        End With
    End Sub 
    ► Do you like it ? ► So thanks to click on bottom left star icon « Add Reputation » !
    Hi Marc L.

    I just want to explore your code as its taking a while to process the data as the files are quite large. Just to re-iterate, in the attached file, I want to compare column D to column K and move down the data in column A to F or the data in column H to L so that the lines match up based on what is in column D and K. if there is a value in column D but no match in column K then the data from column H to L needs to be moved down so that the next sequence matches/lines up. Likewise, if there is a value in column K but no match in column D, then the data from column A to F needs to be moved down so that the next sequence matches/lines up. I don't want to lose any lines/deleted. plus there may be sometimes no number in columns D and K but I also want to keep those and not lose the lines

    Regards

    compare.xlsx
    Last edited by BryanRobson; 06-10-2024 at 07:36 AM.

  14. #14
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    example.xlsx

    Hiya. Sorry for the late reply. I was working on a full blown example file (attached).

    So, in the attached file, we have one download file in 'yesterday' tab and another in 'today' tab.

    columns A, B and C are compared to F, G and H. any differences between any of those columns are dealt with. So, for example, of you look in the reslts tab,
    line 733 has the data n the right hand side moved down to align the data. and the error line is highlighted in yellow. Line 961 is the other way around.

    There are some rows where only 1 column is different eg lines 2292 and 2293.

    Hope that help.

    Thanks

  15. #15
    Forum Expert
    Join Date
    10-06-2008
    Location
    Canada
    MS-Off Ver
    2007 / 2013
    Posts
    5,700

    Re: compare 2 columns and shift columns down or up until the line matches

    I have NOT checked any of your attachments.
    On my machine with 2900+ rows of data in Column A and slightly under 600 rows of data in Column B it takes just over 2 seconds to run. So certainly not a "speedster"
    All data rows are sonsecutive, without empty cells before starting.
    It moves the data cells in Column B down to be on the same row as the data in Column A.
    No error checking in this suggestion.
    If you want to try it, change references where required.
    It's an old one that I had still hanging around so not the most sophisticated.
    Sub Move_To_Same_Value_Row()
    Dim i As Long, ii As Long, lr As Long, msg1 As String
    If Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row).SpecialCells(2).Count <> Cells(Rows.Count, 2).End(xlUp).Row Then MsgBox "Delete Empties First.": Exit Sub
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False
        For i = 1 To lr
            If Cells(i, 2).Value <> Cells(i, 2).Offset(, -1).Value Then
                ii = Columns(1).Find(Cells(i, 2).Value, , , 1).Row
                    Cells(i, 2).Resize(ii - i).Insert Shift:=xlDown
                i = ii
            End If
        Next i
        Range(Cells(Cells(Rows.Count, 1).End(xlUp).Offset(1).Row, 1), Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 1)).EntireRow.Delete
    Application.ScreenUpdating = True
    End Sub
    The inherent weakness of the liberal society: a too rosy view of humanity.

  16. #16
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    @jolivanes

    Hi. Thanks for the reply. I'll try the code this weekend hopefully.

    if your code compares column A to column B, I actually need it to compare columns A to F, B to G and C to H.
    Last edited by AliGW; 08-04-2023 at 04:44 AM. Reason: Please do NOT quote unnecessarily!

  17. #17
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Quote Originally Posted by jolivanes View Post
    I have NOT checked any of your attachments.
    On my machine with 2900+ rows of data in Column A and slightly under 600 rows of data in Column B it takes just over 2 seconds to run. So certainly not a "speedster"
    All data rows are sonsecutive, without empty cells before starting.
    It moves the data cells in Column B down to be on the same row as the data in Column A.
    No error checking in this suggestion.
    If you want to try it, change references where required.
    It's an old one that I had still hanging around so not the most sophisticated.
    Sub Move_To_Same_Value_Row()
    Dim i As Long, ii As Long, lr As Long, msg1 As String
    If Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row).SpecialCells(2).Count <> Cells(Rows.Count, 2).End(xlUp).Row Then MsgBox "Delete Empties First.": Exit Sub
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False
        For i = 1 To lr
            If Cells(i, 2).Value <> Cells(i, 2).Offset(, -1).Value Then
                ii = Columns(1).Find(Cells(i, 2).Value, , , 1).Row
                    Cells(i, 2).Resize(ii - i).Insert Shift:=xlDown
                i = ii
            End If
        Next i
        Range(Cells(Cells(Rows.Count, 1).End(xlUp).Offset(1).Row, 1), Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 1)).EntireRow.Delete
    Application.ScreenUpdating = True
    End Sub
    Hi jolivanes.

    I just want to explore your code as its taking a while to process the data as the files are quite large. Just to re-iterate, in the attached file, I want to compare column D to column K and move down the data in column A to F or the data in column H to L so that the lines match up based on what is in column D and K. if there is a value in column D but no match in column K then the data from column H to L needs to be moved down so that the next sequence matches/lines up. Likewise, if there is a value in column K but no match in column D, then the data from column A to F needs to be moved down so that the next sequence matches/lines up. I don't want to lose any lines/deleted. plus there may be sometimes no number in columns D and K but I also want to keep those and not lose the lines


    Regards

    compare.xlsx
    Last edited by BryanRobson; 06-10-2024 at 07:37 AM.

  18. #18
    Forum Expert
    Join Date
    10-06-2008
    Location
    Canada
    MS-Off Ver
    2007 / 2013
    Posts
    5,700

    Re: compare 2 columns and shift columns down or up until the line matches

    Re Post #12.
    I am sure you can change a 1 (Column A) to a 2 (Column B) or a 3 (Column C) or a 4 or what ever number is required to represent the Columns.
    If you are not sure, let us know.

  19. #19
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    try change
                        s = ""
                        For iii = ii + 1 To ii + 3
                            s = s & Chr(2) & a(i, iii)
                        Next
    to
                        s = ""
                        For iii = ii To ii + 3
                            If iii <> ii + 1 Then s = s & Chr(2) & a(i, iii)
                        Next

  20. #20
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    Thanks vey much. that has resolved that problem. I will continue to work with other live files to check results with me doing it the manual way.

    Regards
    Last edited by AliGW; 08-19-2023 at 07:26 AM. Reason: Please do NOT quote unnecessarily! Use the QUICK REPLY button instead.

  21. #21
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Quote Originally Posted by jindon View Post
    try change
                        s = ""
                        For iii = ii + 1 To ii + 3
                            s = s & Chr(2) & a(i, iii)
                        Next
    to
                        s = ""
                        For iii = ii To ii + 3
                            If iii <> ii + 1 Then s = s & Chr(2) & a(i, iii)
                        Next
    Hi Jindon

    I was wondering if you can provide amended code to cater for my new file to compare columns D and K?

    Thanks very much.

  22. #22
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    The input files format have recently changed. So an extra column has been inserted into todays file and yesterdays file. Column B and I. I want the data in those
    columns to be retained but for the purpose of your code it will throw the columns out.

    Can you please amend your code to cater for the new data in column B and I ?

    Thanks very much.

    Regards

    example.xlsx
    Attached Files Attached Files
    Last edited by BryanRobson; 08-19-2023 at 08:21 AM.

  23. #23
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    Oops, sorry missed this post.

    For the latest attachment.
    Sub test2()
        Dim a, b, e, x(1), w, s As String, dic As Object
        Dim i As Long, ii As Long, iii As Long, n As Long, t As Long
        Application.ScreenUpdating = False
        Set dic = CreateObject("Scripting.Dictionary")
        With Sheets("table1")
            a = Intersect(.Columns("a:m"), .UsedRange)
            For ii = 1 To UBound(a, 2) Step 7
                For i = 2 To UBound(a, 1)
                    If a(i, ii) <> "" Then
                        s = ""
                        For iii = ii To ii + 4
                            If (iii <> ii + 1) * (iii <> ii + 3) Then s = s & Chr(2) & a(i, iii)
                        Next
                        If Not dic.exists(s) Then
                            ReDim w(1 To 2)
                        Else
                            w = dic(s)
                        End If
                        w(IIf(ii = 1, 1, 2)) = w(IIf(ii = 1, 1, 2)) & _
                        IIf(w(IIf(ii = 1, 1, 2)) <> "", ",", "") & i
                        dic(s) = w
                    End If
                Next
            Next
            ReDim b(1 To UBound(a, 1) * 2, 1 To UBound(a, 2)): n = 1
            For Each e In dic
                x(0) = Split(dic(e)(1), ",")
                x(1) = Split(dic(e)(2), ",")
                t = UBound(x(0))
                If t < UBound(x(1)) Then t = UBound(x(1))
                If UBound(x(0)) > -1 Then
                    For i = 0 To UBound(x(0))
                        For ii = 1 To 5
                            b(n, ii) = a(x(0)(i), ii)
                        Next
                    Next
                End If
                If UBound(x(1)) > -1 Then
                    For i = 0 To UBound(x(1))
                        For ii = 6 To UBound(a, 2)
                            b(n + i, ii) = a(x(1)(i), ii)
                        Next
                    Next
                End If
                n = n + t + 1
            Next
            With .[a2].Resize(n, UBound(b, 2))
                .NumberFormat = "@"
                .Value = b
                .Columns("a:f").Borders.Weight = 2
                .Columns("g:m").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub

  24. #24
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    Many thanks for your reply. Much appreciated. Please have a look at the attached file.

    from line 7106 there are some oddities. there are 4 rows of random dates in column F. I am not sure what they are?
    Also, there are 4 records from column H. 10020 has a matching record as 058498 has a record somewhere on the left hand side and right hand side. So they need to be matched up in the right place in the file.

    1974, 7052, 7388 are only on the right hand side of the file, so there is no match for them but they just need to go in the file in the correct sequence with blanks on the left hand side as there is no match.

    Regards

    example.xlsx
    Last edited by AliGW; 08-28-2023 at 03:13 AM. Reason: Please do NOT quote unnecessarily! Use the QUICK REPLY button instead.

  25. #25
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    Try change to
    Sub test2()
        Dim a, b, e, x, w, s(1) As String, dic As Object
        Dim i As Long, ii As Long, iii As Long, iv, n As Long, t As Long
        Application.ScreenUpdating = False
        Set dic = CreateObject("Scripting.Dictionary")
        With Sheets("results")
            a = Intersect(.Columns("a:m"), .UsedRange)
            For i = 2 To UBound(a, 1)
                If a(i, 8) <> "" Then
                    s(0) = "": s(1) = ""
                    For ii = 9 To 12
                        If (ii <> 9) * (ii <> 10) Then s(0) = s(0) & Chr(2) & a(i, ii)
                        If (ii <> 9) * (ii <> 11) Then s(1) = s(1) & Chr(2) & a(i, ii)
                    Next
                    dic(s(0)) = dic(s(0)) & IIf(dic(s(0)) <> "", ",", "") & i
                    dic(s(1)) = dic(s(1)) & IIf(dic(s(1)) <> "", ",", "") & i
                End If
            Next
            ReDim b(1 To UBound(a, 1) * 2, 1 To UBound(a, 2))
            For i = 2 To UBound(a, 1)
                If a(i, 1) <> "" Then
                    s(0) = "": s(1) = "": n = n + 1
                    For ii = 1 To 7
                        b(n, ii) = a(i, ii)
                        If (ii > 1) * (ii < 6) Then
                            If (ii <> 2) * (ii <> 3) Then s(0) = s(0) & Chr(2) & a(i, ii)
                            If (ii <> 2) * (ii <> 4) Then s(1) = s(1) & Chr(2) & a(i, ii)
                        End If
                    Next
                    For ii = 0 To 1
                        If dic.exists(s(ii)) Then
                            x = Split(dic(s(ii)), ",")
                            For iii = 0 To UBound(x)
                                t = 0
                                If a(x(iii), 8) <> "z" Then
                                    For iv = 8 To UBound(a, 2)
                                        b(n + t, iv) = a(x(iii), iv)
                                    Next
                                    a(x(iii), 8) = "z": t = t + 1
                                End If
                            Next
                            If dic.exists(s(0)) Then dic.Remove s(0)
                            If dic.exists(s(1)) Then dic.Remove s(1)
                        End If
                    Next
                    n = n + t - 1
                End If
            Next
            If dic.Count Then
                For Each e In dic
                    x = Split(dic(e), ",")
                    For i = 0 To UBound(x)
                        If a(x(i), 8) <> "z" Then
                            n = n + 1
                            For ii = 8 To UBound(a, 2)
                                b(n, ii) = a(x(i), ii)
                            Next
                            a(x(i), 8) = "z"
                        End If
                    Next
                Next
            End If
            With .[a2].Resize(n, UBound(b, 2))
                .Resize(UBound(a, 1)).ClearContents
                .NumberFormat = "@"
                .Value = b
                .Columns("a:f").Borders.Weight = 2
                .Columns("g:m").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub
    Last edited by jindon; 08-29-2023 at 04:50 AM.

  26. #26
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    Many thanks for your reply and amended code.

    10020 is now resolved and 7388. 7052 has 4 on the left and 3 only on the right. there is one missing on the right hand side. 1974 is missing. 1974 should be ion the right hand side with blank cells on the left hand side.

    You are nearly there I would say.

    Regards
    Attached Files Attached Files
    Last edited by BryanRobson; 08-28-2023 at 08:02 AM.

  27. #27
    Forum Moderator AliGW's Avatar
    Join Date
    08-10-2013
    Location
    Retired in Ipswich, Suffolk, but grew up in Sawley, Derbyshire (both in England)
    MS-Off Ver
    MS 365 Subscription Insider Beta Channel v. 2504 (Windows 11 Home 24H2 64-bit)
    Posts
    91,061

    Re: compare 2 columns and shift columns down or up until the line matches

    @BryanRobson

    Administrative Note re. Forum Guideline #2:

    Please don't quote whole posts, especially when you are responding to the one immediately preceding your own - it's just clutter and rarely necessary.

    If you are responding out of sequence, it is usually enough just to mention the helper's user name (e.g @AliGW).

    If you do need to quote, limit the quoted section just to the section to which you wish to draw your helper's attention or a direct question to which you wish to respond.

    For normal conversational replies, try using the QUICK REPLY box below or the REPLY button instead of REPLY WITH QUOTE.
    Ali


    Enthusiastic self-taught user of MS Excel who's always learning!
    Don't forget to say "thank you" in your thread to anyone who has offered you help. It's a universal courtesy.
    You can reward them by clicking on * Add Reputation below their user name on the left, if you wish.

    NB:
    as a Moderator, I never accept friendship requests.
    Forum Rules (updated August 2023): please read them here.

  28. #28
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    Code in #23 has been modified, so try the code again.

  29. #29
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103
    Ok great. I'm just going out for the day
    so I'll have a look later.

    Have a good day
    Last edited by AliGW; 08-28-2023 at 08:41 AM. Reason: Please do NOT quote unnecessarily! Use the QUICK REPLY button instead.

  30. #30
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Quote Originally Posted by jindon View Post
    Code in #23 has been modified, so try the code again.
    Hi. I have tried the code. The only thing now is a record for 7052 is not lining up. 059978 is on its own on the right even though it has a matching record on the left, where D = K.
    if it helps at all you can add extra columns n, o and p where N is C-J, O is D-K and p is EXACT(E,L) etc.

    please see attached output if it helps.

    Regards

    results1.xlsx

  31. #31
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    Of course, it doesn't match to any row in the left side.

  32. #32
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    I have just checked and 7052 / 059978 is on the right and the left

    Regards
    Last edited by AliGW; 08-29-2023 at 04:09 AM. Reason: Please do NOT quote unnecessarily! Use the QUICK REPLY button instead.

  33. #33
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    You have

    7052 - Races Service Station In col.A but no 7052 - Malthurst - Races (365)

    If you want to match these 2, change one of them to match.

  34. #34
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    I see. I understand. The matching just needs to be column D = column K.

    Regards

  35. #35
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    So you want to ignore the match between col.A with col.H.

    Code in #23 has been modified.

  36. #36
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hiya Jindon.

    yes ignore A=H. the only comparison I need is D=K. So, if your latest amendment deals with that I will use some other data to compare automated results with manual results leading to using the automated results from now on.

    Regards

  37. #37
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    After extensive testing, I can now confirm that it is working perfectly. Many thanks for your help.

  38. #38
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Quote Originally Posted by jindon View Post
    So you want to ignore the match between col.A with col.H.

    Code in #23 has been modified.
    Hi @Jindon.

    I hope you are well and you are still on here.

    I was hoping you can have a look at my latest file. 0013 is on yesterday and today. The only thing which has changed is column E on both sheets. But when I run the script, when it compares column E with column L on the results tab the details are only appearing on the right hand side. It needs to appear on the left hand side on the same line as the number in column D and column K match.

    Is it possible you can have a look at this please?

    Many thanksresults.xlsm

  39. #39
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    Column reference was wrong, I guess...
    Sub test2()
        Dim a, b, e, x, s(1) As String, dic As Object
        Dim i As Long, ii As Long, iii As Long, iv As Long, n As Long, t As Long
        Application.ScreenUpdating = False
        Set dic = CreateObject("Scripting.Dictionary")
        With Sheets("results")
            .UsedRange.Offset(1).Resize(, 13).ClearContents
            Sheets("today").[a1].CurrentRegion.Resize(, 6).Copy .[a1]
            Sheets("yesterday").[a1].CurrentRegion.Resize(, 6).Copy .[h1]
            a = Intersect(.Columns("a:m"), .UsedRange)
            For i = 2 To UBound(a, 1)
                If a(i, 8) <> "" Then
                    s(0) = Join(Array(a(i, 9), a(i, 11)), Chr(2))
                    s(1) = Join(Array(a(i, 10), a(i, 11)), Chr(2))
                    dic(s(0)) = dic(s(0)) & IIf(dic(s(0)) <> "", ",", "") & i
                    dic(s(1)) = dic(s(1)) & IIf(dic(s(1)) <> "", ",", "") & i
                End If
            Next
            ReDim b(1 To UBound(a, 1) * 2, 1 To UBound(a, 2))
            For i = 2 To UBound(a, 1)
                If a(i, 1) <> "" Then
                    n = n + 1: s(0) = Join(Array(a(i, 2), a(i, 4)), Chr(2))
                    s(1) = Join(Array(a(i, 3), a(i, 4)), Chr(2))
                    For ii = 1 To 6
                        b(n, ii) = a(i, ii)
                    Next
                    For ii = 0 To 1
                        If dic.exists(s(ii)) Then
                            x = Split(dic(s(ii)), ","): t = 0
                            For iii = 0 To UBound(x)
                                If a(x(iii), 8) <> "z" Then
                                    For iv = 8 To UBound(a, 2)
                                        b(n + t, iv) = a(x(iii), iv)
                                    Next
                                    a(x(iii), 8) = "z": t = t + 1
                                End If
                            Next
                            If dic.exists(s(0)) Then dic.Remove s(0)
                            If dic.exists(s(1)) Then dic.Remove s(1)
                        End If
                    Next
                    n = n + t - IIf(t, 1, 0)
                End If
            Next
            If dic.Count Then
                For Each e In dic
                    x = Split(dic(e), ",")
                    For i = 0 To UBound(x)
                        If a(x(i), 8) <> "z" Then
                            n = n + 1
                            For ii = 8 To UBound(a, 2)
                                b(n, ii) = a(x(i), ii)
                            Next
                            a(x(i), 8) = "z"
                        End If
                    Next
                Next
            End If
            With .[a2].Resize(n, UBound(b, 2))
                .Resize(UBound(a, 1)).ClearContents
                .NumberFormat = "@"
                .Value = b
                .Columns("a:f").Borders.Weight = 2
                .Columns("g:m").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub

  40. #40
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Absolutely perfect Jindon. many thanks

  41. #41
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Hi Jindon.

    I hope you are well. I may have explained what I want by complicating it too much. I just want to check, that based on the last sample file I provided, that the code just compares column D with column K. So if the numbers match it lines the rows up. if they do not match it inserts a blank line until then next data matches. ignore comparing the other columns. Basically if D=K they match despite whatever the data in the other columns are.

    Regards
    Bryan

  42. #42
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    Line up the row where D=K
    Sub test3()
        Dim a, i As Long, ii As Long, iii As Long, w
        Application.ScreenUpdating = False
        With Sheets("results")
            .AutoFilterMode = False
            .UsedRange.Offset(1).Resize(, 13).ClearContents
            Sheets("today").[a1].CurrentRegion.Resize(, 6).Copy .[a1]
            Sheets("yesterday").[a1].CurrentRegion.Resize(, 6).Copy .[h1]
            a = Intersect(.Columns("a:m"), .UsedRange)
            With CreateObject("Scripting.Dictionary")
                For ii = 1 To UBound(a, 2) Step 7
                    For i = 2 To UBound(a, 1)
                        If a(i, ii + 3) <> "" Then
                            If Not .exists(a(i, ii + 3)) Then
                                ReDim w(1 To UBound(a, 2))
                            Else
                                w = .Item(a(i, ii + 3))
                            End If
                            For iii = 1 To 6
                                w(iii + IIf(ii = 1, 0, 7)) = a(i, iii + IIf(ii = 1, 0, 7))
                            Next
                            .Item(a(i, ii + 3)) = w
                        End If
                    Next
                Next
                a = Application.Index(.items, 0, 0)
            End With
            With .[a2].Resize(UBound(a, 1), UBound(a, 2))
                .CurrentRegion.Offset(1).ClearContents
                .NumberFormat = "@"
                .Value = a
                .Columns("a:f").Borders.Weight = 2
                .Columns("g:m").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub

  43. #43
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Quote Originally Posted by jindon View Post
    Line up the row where D=K
    Sub test3()
        Dim a, i As Long, ii As Long, iii As Long, w
        Application.ScreenUpdating = False
        With Sheets("results")
            .AutoFilterMode = False
            .UsedRange.Offset(1).Resize(, 13).ClearContents
            Sheets("today").[a1].CurrentRegion.Resize(, 6).Copy .[a1]
            Sheets("yesterday").[a1].CurrentRegion.Resize(, 6).Copy .[h1]
            a = Intersect(.Columns("a:m"), .UsedRange)
            With CreateObject("Scripting.Dictionary")
                For ii = 1 To UBound(a, 2) Step 7
                    For i = 2 To UBound(a, 1)
                        If a(i, ii + 3) <> "" Then
                            If Not .exists(a(i, ii + 3)) Then
                                ReDim w(1 To UBound(a, 2))
                            Else
                                w = .Item(a(i, ii + 3))
                            End If
                            For iii = 1 To 6
                                w(iii + IIf(ii = 1, 0, 7)) = a(i, iii + IIf(ii = 1, 0, 7))
                            Next
                            .Item(a(i, ii + 3)) = w
                        End If
                    Next
                Next
                a = Application.Index(.items, 0, 0)
            End With
            With .[a2].Resize(UBound(a, 1), UBound(a, 2))
                .CurrentRegion.Offset(1).ClearContents
                .NumberFormat = "@"
                .Value = a
                .Columns("a:f").Borders.Weight = 2
                .Columns("g:m").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub
    Hi jindon

    I just want to explore your code as its taking a while to process the data as the files are quite large. Just to re-iterate, in the attached file, I want to compare column D to column K and move down the data in column A to F or the data in column H to L so that the lines match up based on what is in column D and K. if there is a value in column D but no match in column K then the data from column H to L needs to be moved down so that the next sequence matches/lines up. Likewise, if there is a value in column K but no match in column D, then the data from column A to F needs to be moved down so that the next sequence matches/lines up. I don't want to lose any lines/deleted. plus there may be sometimes no number in columns D and K but I also want to keep those and not lose the lines


    Regards

    compare.xlsx
    Last edited by BryanRobson; 06-10-2024 at 07:37 AM.

  44. #44
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    many thanks as always.have a good day

    Regards

  45. #45
    Forum Guru
    Join Date
    08-15-2004
    Location
    Tokyo, Japan
    MS-Off Ver
    2013 O.365
    Posts
    22,834

    Re: compare 2 columns and shift columns down or up until the line matches

    colRef is a settings of column indexes.
    Array(8, 12, 11) = 8th to 12th columns within data range, 11 is the key column index.
    this should come first as you want to move first 1 to 6 columns according to 2nd data set.
    Sub test3()
        Dim a, e, i As Long, ii As Long, iii As Long, w, s, colRef
        Application.ScreenUpdating = False
        colRef = Array(Array(8, 12, 11), Array(1, 6, 4))
        With ActiveSheet
            a = Intersect(.Columns("a:l"), .UsedRange)
            With CreateObject("Scripting.Dictionary")
                For Each e In colRef
                    For i = 2 To UBound(a, 1)
                        s = a(i, e(2))
                        If Not .exists(s) Then
                            ReDim w(1 To UBound(a, 2))
                        Else
                            w = .Item(s)
                        End If
                        For ii = e(0) To e(1)
                            w(ii) = a(i, ii)
                        Next
                        .Item(s) = w
                    Next
                Next
                a = Application.Index(.items, 0, 0)
            End With
            With .[a2].Resize(UBound(a, 1), UBound(a, 2))
                .CurrentRegion.Offset(1).ClearContents
                .NumberFormat = "@"
                .Value = a
                .Columns("a:f").Borders.Weight = 2
                .Columns("g:l").Borders.Weight = 2
                .EntireColumn.AutoFit
                .Parent.Select
            End With
        End With
        Application.ScreenUpdating = True
    End Sub

  46. #46
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Thanks very much. I will give this a try at the weekend

  47. #47
    Forum Contributor
    Join Date
    08-05-2022
    Location
    England
    MS-Off Ver
    Office 365
    Posts
    103

    Re: compare 2 columns and shift columns down or up until the line matches

    Thanks very much for the code again jindon. worked perfectly.

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. 2 Columns - Compare columns and give a percentage of number of matches
    By Dave1969 in forum Excel Formulas & Functions
    Replies: 4
    Last Post: 08-24-2020, 06:55 AM
  2. Compare Columns and Shift Cells up
    By ptmuldoon in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 02-23-2017, 07:33 PM
  3. Replies: 1
    Last Post: 09-26-2013, 12:16 PM
  4. [SOLVED] compare two columns, delete non matches in partial rows using shift up
    By acp in forum Excel Formulas & Functions
    Replies: 4
    Last Post: 05-25-2013, 09:39 AM
  5. Compare 2 other columns if first one matches
    By dclive in forum Excel Programming / VBA / Macros
    Replies: 2
    Last Post: 10-21-2011, 05:56 AM
  6. [SOLVED] counting line by line matches of 2 columns possible in excel ?
    By Medikto D in forum Excel General
    Replies: 3
    Last Post: 06-01-2006, 12:50 PM
  7. [SOLVED] I need to compare to columns and indicate the matches in another
    By IFIXPCS in forum Excel - New Users/Basics
    Replies: 1
    Last Post: 02-22-2006, 01:10 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1