Quantcast
Channel: Excel Help Forum - Excel Programming / VBA / Macros
Viewing all articles
Browse latest Browse all 50199

Copy/Paste Loop function?

$
0
0
Hi I am completely new to the world of VBA programming and I am finding it a bit daunting to say the least. I am reading through the various help / tutorial books and am getting totally lost.
I have recently been asked to try and automate an excel template that processes data from a data logger. The data logger data is all on sheet1 (Data) and I am need to copy certain columns of data over to the various tabs for manipulation based and a stage number in column A.
For example I want to copy all rows of columns A:G , Q, and AG:AH on sheet1(Data) that have a value in column A that corresponds to the value entered on A1:H1 on sheet4(Consolidation and Pre Shear) and paste them on sheet4(Consolidation and Pre Shear) starting on row 11.
Currently the macro is taking way too long. There must be a way to speed up the process.. maybe a loop function?

Any help would be appreciated.

:confused:

Code:

Sub Consol()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

  'Copy cells of cols A through AD from rows containing specified value in
  'col A of Raw data sheet to cols A through AD of Consolidation sheet
 
  Dim DestSheet        As Worksheet
  Set DestSheet = Worksheets("Consolidation & Pre Shear")
  Dim SourceSheet As Worksheet
  Set SourceSheet = Worksheets("Data")
 
  Dim sRow      As Long    'row index on source worksheet
  Dim dRow      As Long    'row index on destination worksheet
  Dim sCount    As Long
  sCount = 0
  dRow = 10

  For sRow = 23 To SourceSheet.Range("a65536").End(xlUp).Row
    'use pattern matching to find vaule in B1 of actviesheet anywhere in cell
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("B1") Then
        sCount = sCount + 1
        dRow = dRow + 1
                  'copy cols A:Am
        SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")

       
    End If
   
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("c1") Then
        sCount = sCount + 1
        dRow = dRow + 1
                  'copy cols A:Am
        SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If
   
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("D1") Then
        sCount = sCount + 1
        dRow = dRow + 1
                'copy cols A:Am
              SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If
   
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("E1") Then
        sCount = sCount + 1
        dRow = dRow + 1
            'copy cols A:Am
              SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If
   
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("F1") Then
        sCount = sCount + 1
        dRow = dRow + 1
            'copy cols A:Am
              SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If
   
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("G1") Then
        sCount = sCount + 1
        dRow = dRow + 1
          'copy cols A:Am
              SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If

    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("H1") Then
        sCount = sCount + 1
        dRow = dRow + 1
          'copy cols A:Am
              SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If
 
    If SourceSheet.Cells(sRow, "a") Like DestSheet.Range("J1") Then
        sCount = sCount + 1
        dRow = dRow + 1
          'copy cols A:Am
              SourceSheet.Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
        SourceSheet.Cells(sRow, "b").Copy Destination:=DestSheet.Cells(dRow, "b")
        SourceSheet.Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "c")
        SourceSheet.Cells(sRow, "d").Copy Destination:=DestSheet.Cells(dRow, "d")
        SourceSheet.Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "e")
        SourceSheet.Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "f")
        SourceSheet.Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "g")
        SourceSheet.Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "h")
        SourceSheet.Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "i")
        SourceSheet.Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "j")
    End If
  Next sRow
 
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = True
  MsgBox sCount & " Rows copied", vbInformation, "Transfer Done"
 

End Sub


Viewing all articles
Browse latest Browse all 50199

Trending Articles