I'm fairly new to this (started yesterday), so maybe someone has some suggestions. I have created a macro which updates a download sheet with new columns and formulas for monthly values, while leaving the yearly and static values unchanged. The code executes its intended function, but takes almost 30 minutes to cycle through loop through when Stock = 25
Sub New_monthly()
Dim i As Integer
Dim Measure As Integer
Dim Count As Integer
Dim Stock As Integer
Dim Monthend As Long
Stock = Application.WorksheetFunction.CountIf(Range("AP1:AP50"), ">0")
Monthend = Range("AS1").Value
For i = 0 To Stock - 1
' Copy old values and move them over one space
Range("B54:B115").Offset(i * 115, 0).Select
Selection.Insert Shift:=xlToRight
' Enter new values
Cells(108 + i * 115, 2).Value = Monthend
Cells(109 + i * 115, 2).Formula = "=BDH(" & Cells(100 + i * 115, 1).Address & "," & Cells(109 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Cells(110 + i * 115, 2).Formula = "=BDH(" & Cells(100 + i * 115, 1).Address & "," & Cells(110 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Cells(111 + i * 115, 2).Formula = "=BDH(" & Cells(100 + i * 115, 1).Address & "," & Cells(111 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Cells(112 + i * 115, 2).Formula = "=BDH(" & Cells(112 + i * 115, 1).Address & "," & Cells(111 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Cells(113 + i * 115, 2).Formula = "=BDH(" & Cells(100 + i * 115, 1).Address & "," & Cells(113 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Cells(114 + i * 115, 2).Formula = "=BDH(" & Cells(100 + i * 115, 1).Address & "," & Cells(114 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Cells(115 + i * 115, 2).Formula = "=BDH(" & Cells(100 + i * 115, 1).Address & "," & Cells(115 + i * 115, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
For Measure = 0 To 5
Cells(54 + i * 115 + Measure * 9, 3).Value = Monthend
For f = 0 To 7
Cells(55 + i * 115 + Measure * 9 + f, 3).Formula = "=BDH(" & Cells(19 + i * 115 + f, 1).Address & "," & Cells(54 + i * 115 + Measure * 9, 1).Address & ",$AS$1,$AS$1,""DAYS=C"")"
Next f
Cells(57 + i * 115 + Measure * 9, 3).Formula = "=AVERAGE(" & Cells(58 + i * 115 + Measure * 9, 3).Address & ":" & Cells(62 + i * 115 + Measure * 9, 3).Address & ")"
Next Measure
Next i
End Sub