DRRK/docs/vba/Module5.bas

86 lines
2.9 KiB
QBasic

Attribute VB_Name = "Module5"
Sub Button5_Click()
Dim varArrayList() As Variant
Dim strSelected As String
Set cwb = ActiveWorkbook
Set summarySheet = cwb.Worksheets("SUMMARY")
Set secinfoSheet = cwb.Worksheets("SECURITIES INFO")
Set dataSheet = cwb.Worksheets("INPUTS")
Set fundingSheet = cwb.Worksheets("FUNDING")
Set controlSheet = cwb.Worksheets("control")
local_date_format = controlSheet.Range("DT_FORM_EX").NumberFormat
sum_lr = summarySheet.Cells(summarySheet.Rows.Count, 1).End(xlUp).Row - 2
varArrayList = summarySheet.Range("a15:a" & sum_lr).Value
'varArrayList = Array("Sel1", "Sel2", "Sel3")
strSelected = SelectionBoxSingle(varArrayList, "Выберите бумагу, по которой был начислен купон")
End Sub
Public Function SelectionBoxSingle(List As Variant, Optional Prompt As String, Optional Title As String) As String
Dim varReturnList As Variant
varReturnList = SelectionBoxMulti(List:=List, Prompt:=Prompt, SelectionType:=fmMultiSelectSingle, Title:=Title)
If Not IsEmpty(varReturnList) Then
If Not Len(Join(varReturnList, "")) = 0 Then
SelectionBoxSingle = varReturnList(UBound(varReturnList))
End If
End If
End Function
Public Function SelectionBoxMulti(List As Variant, Optional Prompt As String, Optional SelectionType As MSForms.fmMultiSelect = fmMultiSelectMulti, Optional Title As String) As Variant
Dim SelectedValues() As Variant
With FormSelectionBox
If Len(Title) > 0 Then .Caption = Title
.FillList List
.Prompt = Prompt
.ListBox.MultiSelect = SelectionType
.Show
If Not .IsCancelled Then
Dim i As Integer, j As Integer
With .ListBox
For i = 0 To .ListCount - 1
If .Selected(i) Then
ReDim Preserve SelectedValues(j)
SelectedValues(j) = .List(i)
j = j + 1
End If
Next i
End With
SelectionBoxMulti = SelectedValues
End If
End With
Unload FormSelectionBox
End Function
Sub Refresh_list()
Attribute Refresh_list.VB_ProcData.VB_Invoke_Func = " \n14"
Set cwb = ActiveWorkbook
Set summarySheet = cwb.Worksheets("SUMMARY")
sum_lr = summarySheet.Cells(summarySheet.Rows.Count, 1).End(xlUp).Row - 2
sum_fr = summarySheet.Range("SUM_F_ROW").Row
summarySheet.Rows(sum_fr & ":" & sum_lr).AutoFilter
summarySheet.AutoFilter.Sort.SortFields.Clear
summarySheet.AutoFilter.Sort.SortFields.Add Key:= _
Range("H14:H" & sum_lr), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
:=xlSortNormal
With summarySheet.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.AutoFilter
End Sub