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:
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