hi everyone,
it's my first approach to VBA, so please be patient :-)
But back to business.
The below code shows error 9 on line:
worksheets(idx).activate
Could you please have a look and advise how to solve this issue?
P.S. there are definately some other mistakes, but first things first...Code:Public Function UpdateRiskFigures() Dim idx As Integer Dim startDate As Integer Dim Dates() As Integer Dim count As Integer Dim Cpties() As String Dim FGRNames() As String Dim idy As Integer ReDim Cpties(0 To count) Do While Not IsEmpty(Range("FGROverview").Offset(0, count)) count = count + 1 Loop count = count - 1 ReDim Cpties(0 To count) ' returns counterparties' column For idy = 0 To count Cpties(idy) = Range("FGROverview").Offset(0, idy) Next idy ReDim Dates(startDate To count) count = count + 1 Dim FGRNames_Report As Range ' defines column C in report's tabs as a dynamic array Set FGRNames_Report = Range("C21").Offset(count, 0) count = count + 1 For idx = startDate To UBound(Dates) 'enters FX forward, IRS and MM figures into template table Select Case IsNumeric(idx) Case True Worksheets(idx).Activate count = count + 1 Select Case Worksheets(idx).Range(FGRNames_Report).Value Case "Foreign Exchange Forward" Do Until Range("C21").Offset(count, 0) = "Interest RateSwap" Or "Money Market" If Range("C21").Offset(count, 0) = Worksheets("Overview").Range(Cpties(idy)) Then _ Worksheets("Overview").Range(Cpties(idy)).Offset(Dates(idx - 1), 0) = Range("C21").Offset(count, 1) Loop Case "Interest RateSwap" Do Until Range("C21").Offset(count, 0) = "Money Market" If Range("C21").Offset(count, 0) = Worksheets("Overview").Range(Cpties(idy)) Then _ Worksheets("Overview").Range(Cpties(idy)).Offset(Dates(idx), 0) = Range("C21").Offset(count, 1) Loop Case "Money Market" Do Until Range("C21").Offset(count, 0) = "" If Range("C21").Offset(count, 0) = Worksheets("Overview").Range(Cpties(idy)) Then _ Worksheets("Overview").Range(Cpties(idy)).Offset(Dates(idx - 2), 0) = Range("C21").Offset(count, 1) Loop End Select Case Else MsgBox "Report not compatible!" End Select Next idx Dim Cell As Range 'divides input by 1000000 Worksheets("Overview").Range("D10:AD78").Select For Each Cell In Range("D10:AD78") Cell.Value = Cell.Value / 1000000 Next End Function
huge thanks in advance!




Reply With Quote