Программа на языке VBA
' Объявление переменных и констант
Const StrNomer = 7 'количество строк для заголовка таблицы
Dim Nomer As Long 'номер очередной строки таблицы (потребительское общество)
Dim SP As Long
Dim SF As Long
Dim TP As Long
Dim TF As Long
Dim IP As Long
Dim EF As Long
Dim ItogSP As Long
Dim ItogSF As Long
Dim ItogTP As Long
Dim ItogTF As Long
Dim ItogIP As Long
Dim ItogEF As Long
Dim StrName1 As String
Dim StrName2 As String
'Процедура инициализации формы
Private Sub UserForm_Initialize()
Worksheets(«Отчет»).Activate
MesTextBox.SetFocus
End Sub
'Процедура считывания заголовочных данных и вывода их в ячейки электронной таблицы Private Sub CommandButton3_Click()
'Ввод данных для новой отчетной таблицы
With ActiveSheet
Range(«E3»).Value = MesTextBox.Text
Range(«G3»).Value = YearTextBox.Text
End With
ActiveWorkbook.SaveAs ("Отклонение фактического уровня издержек обращения от плана за " + MesTextBox.Text + «месяц. xls»)
Nomer = 1
ItogSP = 0
ItogSF = 0
ItogTP = 0
ItogTF = 0
ItogIP = 0
ItogEF = 0
End Sub
' Процедура обработки данных по видам деятельности
Private Sub CommandButton2_Click()
StrName1 = Trim(Str(StrNomer + Nomer))
With ActiveSheet
Range("A" + StrName1).Value = Nomer
Range("B" + StrName1).Value = POTextBox.Text
SP = Val(SPTextBox.Text)
Range("C" + StrName1).Value = SP
ItogSP = ItogSP + SP
SF = Val(SFTextBox.Text)
Range("D" + StrName1).Value = SF
ItogSF = ItogSF + SF
TP = Val(TPTextBox.Text)
Range("E" + StrName1).Value = TP
ItogTP = ItogTP + TP
TF = Val(TFTextBox.Text)
Range("F" + StrName1).Value = TF
ItogTF = ItogTF + TF
IP = Val(IPTextBox.Text)
Range("G" + StrName1).Value = IP
ItogIP = ItogIP + IP
EF = Val(EFTextBox.Text)
Range("H" + StrName1).Value = EF
ItogEF = ItogEF + EF
Range("I" + StrName1).Value = EF – IP
'Выполнение автозаполнения с текущей строки таблицы на следующую строку
StrName2 = Trim(Str(StrNomer + Nomer + 1))
Set Range1 =.Range("A" + StrName1 +":I" + StrName1)
Set Range2 =.Range("A" + StrName1 +":I" + StrName2)
Range1.AutoFill Destination:=Range2
Range("A" + StrName2 +":I" + StrName2).ClearContents
End With
'Очистка полей формы для ввода очередных данных
POTextBox.Text = ""
SPTextBox.Text = ""
SFTextBox.Text = ""
TPTextBox.Text = ""
TFTextBox.Text = ""
IPTextBox.Text = ""
EFTextBox.Text = ""
POTextBox.SetFocus
Nomer = Nomer + 1
End Sub
'Закрытие формы, подведение итогов и вывод фамилии экономиста
Private Sub CommandButton1_Click()
UserForm1.Hide
StrName1 = Trim(Str(StrNomer + Nomer))
With ActiveSheet
Range("A" + StrName1).Value = «Итого:»
Range("C" + StrName1).Value = ItogSP
Range("D" + StrName1).Value = ItogSF
Range("E" + StrName1).Value = ItogTP
Range("F" + StrName1).Value = ItogTF
Range("G" + StrName1).Value = ItogIP
Range("H" + StrName1).Value = ItogEF
Range("I" + StrName1).Value = ItogEF – ItogIP
StrName2 = Trim(Str(StrNomer + Nomer + 2))
Range("A" + StrName2).Value = «Экономист:»
Range("G" + StrName2).Value = FIOTextBox.Text
End With
End Sub
Дата добавления: 2016-04-14; просмотров: 590;