Private Sub CommandButton1_Click()
'Start timer
sngStart = Timer
'Script weergave uit (niet zichtbaar voor gebruiker)
Application.ScreenUpdating = False
Dim objDataControl As BLP_DATA_CTRLLib.BlpData
Set objDataControl = New BlpData
BStart = Range("F13").Value
BEnd = Range("F14").Value
' Set up the securities/fields in an array
arrayFields = Array("LAST_PRICE")
lka = Range("B26")
If IsEmpty(lka) Then
nr_comp = 1
Else
nr_comp = Range(Range("B27"), Range("B27").End(xlDown)).Rows.Count
End If
'Bepaald grote van array
Dim arraySecurities() As String
ReDim arraySecurities(nr_comp)
'Leading Fund
Range("B1") = Range("B26").Value
Range("B1").Replace What:="Equity", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("B1").Replace What:="equity", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("B1").Replace What:="EQUITY", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
tiu = Range("B1").Value
tiu = tiu & " equity"
arraySecurities(0) = tiu
'Peers (per peer wordt data binnen gehaald)
With Range("B27")
i = 1
Do While i <= nr_comp
arraySecurities(i) = .Cells(i, 1).Value
i = i + 1
Loop
End With
'D/M/Y
objDataControl.GetHistoricalData arraySecurities, 1, "Last Price", _
CDate(BStart), _
CDate(BEnd), _
BarSize:=1, _
BarFields:=arrayFields, _
Results:=vtresult
'TimeLag
Dim iDavid() As String
ReDim iDavid(nr_comp)
a = 0
Do While a < nr_comp + 1
base = vtresult(0, a, 0, 1) * 1.005
i = 0
Do While vtresult(i, a, 0, 1) <= base
t = vtresult(i, a, 0, 1)
If (i <= 15) Then
iGo = i
Else
iGo = 3333
Exit Do
End If
i = i + 1
Loop
iDavid(a) = iGo
a = a + 1
Loop
Dim FindMaxInMultiDimArray()
k = 0
z = 0
Dim vtresult(k, z, 0, 1) As Variant 'supply the x. It is the highest first dimension
Dim max As Integer, arr() As Integer
Dim g As Long, j As Byte, k As Long
For k = 0 To UBound(mult, 1)
For a = 0 To 1
If k = 0 Then
ReDim arr(0 To k)
Else
ReDim Preserve arr(0 To k)
End If
arr(k) = vtresult(i, z, 0, 1)
k = k + 1
Next 'j
z = z + 1
Next 'i
max = WorksheetFunction.max(arr)
For k = 0 To nr_comp
Range("A1").Offset(k, 0).Value = max
Next k
For k = 0 To nr_comp
Range("D26").Offset(k, 0).Value = iDavid(k)
Next k
'### Stop Timer
sngEnd = Timer
sngElapsed = Format(sngEnd - sngStart, "Fixed")
'Tijdsmelding aantal seconden proces snelheid
Range("F8").Value = sngElapsed & " seconden"
Application.CutCopyMode = False
Range("A1").Select
Application.Calculation = xlAutomatic
End Sub