hi
do u think there is a way of improving this code
Sub FUND_OWNERSHIP()
Dim i As Long, LR As Long
Dim AR As Long
Dim dAveragePrep As Double
Dim rng As Range
Dim ang As Long
Application.ScreenUpdating = False
On Error Resume Next
Set ms = Workbooks("Book4.xlsx").Sheets("Allocation")
With Worksheets("Allocation")
LR = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
For i = 1 To LR
If IsDate(.Cells(i, 1)) Then
.Cells(i, 1).Copy
MyDate = ms.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial(xlPasteValues)
MyDate.NumberFormat = "dd/mm/yyyy"
End If
If UCase$(.Cells(i, 30).Value) = "FUND OWNERSHIP %" Then
.Cells(i, "AD").Offset(1).Resize(4).Copy
MyData = Format(ms.Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial(Transpose:=True), Percent)
End If
Next i
End With
Dim ws As Worksheet: Set ws = Workbooks("Book4.xlsx").Sheets("Allocation")
With ws
Set rng = .Range(.Range("B2"), .Range("B" & Rows.Count).End(xlUp))
dAveragePrep = WorksheetFunction.Average(rng)
ang = .Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("B" & ang) = dAveragePrep
End With
With ws
Set rng = .Range(.Range("C2"), .Range("C" & Rows.Count).End(xlUp))
dAveragePrep = WorksheetFunction.Average(rng)
ang = .Range("C" & Rows.Count).End(xlUp).Row + 1
.Range("C" & ang) = dAveragePrep
End With
With ws
Set rng = .Range(.Range("D2"), .Range("D" & Rows.Count).End(xlUp))
dAveragePrep = WorksheetFunction.Average(rng)
ang = .Range("D" & Rows.Count).End(xlUp).Row + 1
.Range("D" & ang) = dAveragePrep
End With
With ws
Set rng = .Range(.Range("E2"), .Range("E" & Rows.Count).End(xlUp))
dAveragePrep = WorksheetFunction.Average(rng)
ang = .Range("E" & Rows.Count).End(xlUp).Row + 1
.Range("E" & ang) = dAveragePrep
End With
ms.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = "average"
Application.CutCopyMode = 0
Application.ScreenUpdating = True
End Sub
what its doing is looking for column ad or fund ownership copying and pasting the 4 line of figures under that column header
Bookmarks