I am new to making macros and have basically no experience with VBA. However, I have managed to cobble together the code below.
The code is supposed to load data from a worksheet (the name of which I enter on the first active sheet, then run the macro via a linked button) into the first empty row of the active sheet.
What I need for it to do is basically the compilation code, where it is handles all the copying and pasting for me. I need it to repeat the code for every worksheet in the workbook, continuously loading the data into the next blank row until it has processed all sheets. Currently, as mentioned, I load each worksheet by entering the worksheet name into a specific cell on the active sheet and hit a linked button which runs the macro.
Can any one help me modify this code?
Sub LoadData()
Dim RawSheet, ReportSheet As Worksheet
Dim ReportRow, BlankCount, i As Integer
Dim RawName As String
Dim NegativeNumber, Average As Double
RawName = Cells(1, 8)
Set RawSheet = Worksheets(RawName)
Set ReportSheet = ActiveSheet
For i = 9 To 1000
If ReportSheet.Cells(i, 5) = "" Then
ReportRow = i
Exit For
End If
Next i
BlankCount = 0
Mode = ""
For i = 1 To 1000
If (RawSheet.Cells(i, 1) = "") Then
If BlankCount > 10 Then
Exit For
Else
BlankCount = BlankCount + 1
End If
Else
BlankCount = 0
If RawSheet.Cells(i, 1) = "Series Name" Then
ReportSheet.Cells(ReportRow, 5) = RawSheet.Cells(i, 2)
ElseIf RawSheet.Cells(i, 1) = "Series Date" Then
ReportSheet.Cells(ReportRow, 7) = RawSheet.Cells(i, 2)
ElseIf RawSheet.Cells(i, 1) = "Weight" Then
ReportSheet.Cells(ReportRow, 8) = RawSheet.Cells(i, 2)
ElseIf RawSheet.Cells(i, 3) = "Temperature" Then
ReportSheet.Cells(ReportRow, 9) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "Heart Rate" Then
ReportSheet.Cells(ReportRow, 10) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "LVAW;d" Then
ReportSheet.Cells(ReportRow, 11) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "LVAW;s" Then
ReportSheet.Cells(ReportRow, 14) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "LVPW;d" Then
ReportSheet.Cells(ReportRow, 13) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "LVPW;s" Then
ReportSheet.Cells(ReportRow, 16) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "LV Mass Cor" Then
ReportSheet.Cells(ReportRow, 17) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "Diameter;d" Then
ReportSheet.Cells(ReportRow, 12) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "Diameter;s" Then
ReportSheet.Cells(ReportRow, 15) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "LA" Then
ReportSheet.Cells(ReportRow, 18) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "Ejection Fraction" Then
ReportSheet.Cells(ReportRow, 19) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "Fractional Shortening" Then
ReportSheet.Cells(ReportRow, 20) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "V;d (LV Trace)" Then
ReportSheet.Cells(ReportRow, 21) = RawSheet.Cells(i, 4)
ElseIf RawSheet.Cells(i, 1) = "V;s (LV Trace)" Then
ReportSheet.Cells(ReportRow, 22) = RawSheet.Cells(i, 4)
ElseIf RawSheet.Cells(i, 3) = "Stroke Volume" Then
ReportSheet.Cells(ReportRow, 23) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 3) = "Cardiac Output" Then
ReportSheet.Cells(ReportRow, 24) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "LV MPI IV" Then
ReportSheet.Cells(ReportRow, 27) = RawSheet.Cells(i, 4)
ElseIf RawSheet.Cells(i, 1) = "MV E" Then
ReportSheet.Cells(ReportRow, 28) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "MV A" Then
ReportSheet.Cells(ReportRow, 29) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "MV E/A" Then
ReportSheet.Cells(ReportRow, 30) = RawSheet.Cells(i, 4)
ElseIf RawSheet.Cells(i, 1) = "MV Decel" Then
ReportSheet.Cells(ReportRow, 31) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "IVRT" Then
ReportSheet.Cells(ReportRow, 32) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "IVCT" Then
ReportSheet.Cells(ReportRow, 33) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "S WAVE" Then
ReportSheet.Cells(ReportRow, 34) = RawSheet.Cells(i, 5)
ElseIf RawSheet.Cells(i, 1) = "E'" Then
NegativeNumber = RawSheet.Cells(i, 5)
ReportSheet.Cells(ReportRow, 35) = -NegativeNumber
ElseIf RawSheet.Cells(i, 1) = "A'" Then
NegativeNumber = RawSheet.Cells(i, 5)
ReportSheet.Cells(ReportRow, 36) = -NegativeNumber
ElseIf RawSheet.Cells(i, 1) = "E'/A'" Then
ReportSheet.Cells(ReportRow, 37) = RawSheet.Cells(i, 4)
ElseIf RawSheet.Cells(i, 1) = "MV E/E'" Then
NegativeNumber = RawSheet.Cells(i, 4)
ReportSheet.Cells(ReportRow, 38) = -NegativeNumber
ElseIf RawSheet.Cells(i, 1) = "AET" Then
ReportSheet.Cells(ReportRow, 39) = RawSheet.Cells(i, 5)
End If
End If
Next i
End Sub
i? If Yes then it seems like you'd be missing values?