Option Explicit


Sub xyz()


Dim wb As Workbook

Dim ws As Worksheet

Dim ws1 As Worksheet

Dim ws2 As Worksheet

Dim ws3 As Worksheet



Set wb = ThisWorkbook

Set ws = wb.Worksheets("A")

Set ws1 = wb.Worksheets("input")

Set ws3 = wb.Worksheets("Output")

Set ws2 = wb.Worksheets("Z")




ws.Activate

Dim c As Long

Dim l As Long


c = ws.Cells(1, Columns.Count).End(xlToLeft).Column

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



ws.Range(Cells(1, 1), Cells(1, c)).Copy

ws3.Activate

ws3.Range("A1").Select

ws3.Range("A1").PasteSpecial xlPasteValuesAndNumberFormats


ws1.Activate

Dim ADV1 As Long

Dim ADV2 As Long


ADV1 = ws1.Cells(1, Columns.Count).End(xlToLeft).Column

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



ws1.Activate

Dim GWS1 As Long

Dim GWS2 As Long


GWS1 = ws1.Cells(2, Columns.Count).End(xlToLeft).Column

GWS2 = ws1.Cells(Rows.Count, 2).End(xlUp).Row



ws3.Activate

Dim c3 As Long

Dim l3 As Long


c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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




'Looping"


Dim x As Long

Dim z As Long

Dim xx As Long

Dim xx1 As Long


Dim zz As Long



ws.Activate


For x = 2 To l

    ws.Activate

   

   '--------Check ADV or GWS==============

    If ws.Range("C" & x).Value = "ADV" Or ws.Range("C" & x).Value = "GWS" Then

        If ws.Range("F" & x).Value < 999999 And ws.Range("F" & x).Value > 0 Then

            ws.Range(Cells(x, 1), Cells(x, c)).Copy

            ws3.Activate

            ws3.Range("A" & l3 + 1).Select

            ws3.Range("A" & l3 + 1).PasteSpecial xlPasteValuesAndNumberFormats

            

            

        

            If ws.Range("C" & x).Value = "ADV" Then

            For xx = 2 To ADV2

                    ws3.Activate

                    c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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

                    ws3.Range("A" & l3).EntireRow.Copy

                    ws3.Range("A" & l3 + 1).Select

                    ws3.Range("A" & l3 + 1).PasteSpecial xlPasteAll

                    ws3.Range("A" & l3 + 1).Value = "Child"

                    ws3.Range("C" & l3 + 1).Value = ws1.Range("A" & xx) '----AWS value looping

                    c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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

                    Next xx

            Else

                     For xx = 2 To GWS2

                    ws3.Activate

                    c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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

                    ws3.Range("A" & l3).EntireRow.Copy

                    ws3.Range("A" & l3 + 1).Select

                    ws3.Range("A" & l3 + 1).PasteSpecial xlPasteAll

                    ws3.Range("A" & l3 + 1).Value = "Child"

                    ws3.Range("C" & l3 + 1).Value = ws1.Range("B" & xx) '----GWS value looping

                    c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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

                    Next xx

            End If

            

           


                   

        

    

        

        

      

Else

ws.Range(Cells(x, 1), Cells(x, c)).Copy

            ws3.Activate

            ws3.Range("A" & l3 + 1).Select

            ws3.Range("A" & l3 + 1).PasteSpecial xlPasteValuesAndNumberFormats

            


    

    ws2.Activate

    Dim x1 As Long

    Dim z1 As Long

    Dim x3 As Long

    

    

x1 = ws2.Cells(Rows.Count, 6).End(xlUp).Row

z1 = ws2.Cells(1, Columns.Count).End(xlToLeft).Column

    

c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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


 

    Dim xy As Long

    

    For xy = 2 To x1

        If ws2.Range("F" & xy).Value = ws.Range("F" & x).Value Then

            If ws2.Range("C" & xy).Value = ws.Range("C" & x).Value Then

        


        

          Do Until ws2.Range("A" & xy + 1).Value <> "Child"

            If ws2.Range("N" & xy + 1).Value = 1 Then

            

                 If ws.Range("C" & x).Value = "ADV" Then

                 For x3 = 2 To ADV2

                    ws2.Range("A" & xy + 1).EntireRow.Copy

                    ws3.Activate

                    ws3.Range("A" & l3 + 1).Select

                    ws3.Range("A" & l3 + 1).PasteSpecial xlPasteValuesAndNumberFormats

                    ws3.Activate

                    c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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

                    ws3.Range("A" & l3).Value = "Child"

                    ws3.Range("C" & l3).Value = ws1.Range("A" & x3)

                    'ws3.Range("A" & l3).EntireRow.Copy

                    'ws3.Range("A" & l3 + 1).Select

                    'ws3.Range("A" & l3 + 1).PasteSpecial xlPasteAll

                

                Next x3

                 

                 Else

                 

                    For x3 = 2 To GWS2

                    ws2.Range("A" & xy + 1).EntireRow.Copy

                    ws3.Activate

                    ws3.Range("A" & l3 + 1).Select

                    ws3.Range("A" & l3 + 1).PasteSpecial xlPasteValuesAndNumberFormats

                    ws3.Activate

                    c3 = ws3.Cells(1, Columns.Count).End(xlToLeft).Column

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

                    ws3.Range("A" & l3).Value = "Child"

                    ws3.Range("C" & l3).Value = ws1.Range("B" & x3)

                    'ws3.Range("A" & l3).EntireRow.Copy

                    'ws3.Range("A" & l3 + 1).Select

                    'ws3.Range("A" & l3 + 1).PasteSpecial xlPasteAll

                Next x3

                 

                 

                 End If

                 

            


      

                

                

      

        

        


    

        

        

            

            Else

            End If

            

            

            xy = xy + 1

            Loop

        Else

        End If

        

        Else

        End If

    Next xy

        End If

        Else

    End If

    

Next x







MsgBox "Testing"




End Sub



Reactions

Post a Comment

0 Comments