Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ргр инфа.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать

3.4.2.. Листинг процедур формы «Изменение исходных данных»

Код программы:

‘Объявляется переменная для всех Sub’

Option Explicit

Dim i As Integer

‘Кнопка выхода, скрывающая Userform1 по нажатию на нее’

Private Sub CommandButton4_Click()

UserForm1.Hide

End Sub

‘Обрабатываются специальные команды SpinUp и SpinDown для каждого SpinButton, увеличивающие или уменьшающие значения в соответствующих TextBox по нажатию на них’

Private Sub SpinButton1_SpinUp()

T1.Value = CStr(CDbl(1.Value) + 0.5)

End Sub

Private Sub SpinButton1_SpinDown()

T1.Value = CStr(CDbl(T1.Value) - 0.5)

End Sub

Private Sub SpinButton2_SpinUp()

T2.Value = CStr(CDbl(T2.Value) + 0.5)

End Sub

Private Sub SpinButton2_SpinDown()

T2.Value = CStr(CDbl(T2.Value) - 0.5)

End Sub

Private Sub SpinButton3_SpinUp()

T3.Value = CStr(CDbl(T3.Value) + 0.5)

End Sub

Private Sub SpinButton3_SpinDown()

T3.Value = CStr(CDbl(T3.Value) - 0.5)

End Sub

‘Очистка заголовков по вертикали L’

Public Sub clear()

L1.Caption = ""

L2.Caption = ""

L3.Caption = ""

L4.Caption = ""

L5.Caption = ""

L6.Caption = ""

L7.Caption = ""

For i = 27 To 33

Worksheets(1).Range("I" & i) = ""

Next i

End Sub

‘По нажатию на T1… T3 они очищаются, для ввода новых данных’

Private Sub T1_Change()

clear

End Sub

Private Sub T2_Change()

clear

End Sub

Private Sub T3_Change()

clear

End Sub

Инициализация формы, при которой происходит занесение исходных данных, очистка заголовков для L1.. L7 и выключение кнопки CommandButton3 (для того, чтобы нельзя было построить диаграмму без подсчета налогов)

Private Sub UserForm_Initialize()

T1.Value = Worksheets(1).Cells(8, 6)

T2.Value = CStr(Worksheets(1).Cells(14, 6))

T3.Value = CStr(Worksheets(1).Cells(17, 6))

L1.Caption = ""

L2.Caption = ""

L3.Caption = ""

L4.Caption = ""

L5.Caption = ""

L6.Caption = ""

L7.Caption = ""

CommandButton3.Enabled = False

End Sub

Процедура подтверждения изменения данных, при подтверждении которой происходит изменение данных на листе Exel

Private Sub CommandButton1_Click()

If MsgBox("Вы уверены,что хотите изменить значения?", vbYesNo + vbQuestion, "Коректировка данных") = vbYes Then

Worksheets(1).Cells(8, 6) = T1.Value

Worksheets(1).Cells(14, 6) = T2.Value

Worksheets(1).Cells(17, 6) = T3.Value

Else

Exit Sub

End If

End Sub

Процедура расчета налогов по нажатию на соответствующую кнопку. Перед изменением даннах на листе Exel появъляется окно с подтверждением внесения изменений в итоги, при положительном ответе на который происходит их расчет по соответствующим формулам на листе Exel и внесение их в заголовки для L1.. L7

Private Sub CommandButton2_Click()

Dim a1 As Single, a2 As Single, a3 As Single

Dim a4 As Single, a5 As Single, a6 As Single, a7 As Single

CommandButton3.Enabled = True

If CDbl(T1.Value) <> Worksheets(1).Cells(8, 6) Or CDbl(T2.Value) <> Worksheets(1).Cells(14, 6) Or CDbl(T3.Value) <> Worksheets(1).Cells(17, 6) Then

If MsgBox("Данные были изменены принять изменения?", vbYesNo + vbQuestion, "Корректировка данных") = vbYes Then

Worksheets(1).Cells(8, 6) = Val(T1.Value)

Worksheets(1).Cells(14, 6) = Val(T2.Value)

Worksheets(1).Cells(17, 6) = Val(T3.Value)

Else

T1.Value = Worksheets(1).Cells(8, 6)

T2.Value = Worksheets(1).Cells(14, 6)

T3.Value = Worksheets(1).Cells(17, 6)

End If

End If

a1 = Worksheets(1).Cells(8, 10) + Worksheets(1).Cells(14, 10) + Worksheets(1).Cells(17, 10) + Worksheets(1).Cells(20, 10)

a2 = Worksheets(1).Cells(8, 11) + Worksheets(1).Cells(14, 11) + Worksheets(1).Cells(17, 11) + Worksheets(1).Cells(20, 11)

a3 = Worksheets(1).Cells(27, 8) * 0.15

a4 = (Worksheets(1).Cells(27, 8) - Worksheets(1).Cells(28, 8)) * 0.5

a5 = (Worksheets(1).Cells(27, 8) - Worksheets(1).Cells(28, 8)) * 0.3

a6 = Worksheets(1).Cells(27, 8) + Worksheets(1).Cells(29, 8) + Worksheets(1).Cells(30, 8) + Worksheets(1).Cells(31, 8)

a7 = Worksheets(1).Cells(32, 8) / 1.18 * 0.18

L1.Caption = Format(a1, "##,###.00")

L2.Caption = Format(a2, "##,###.00")

L3.Caption = Format(a3, "##,###.00")

L4.Caption = Format(a4, "##,###.00")

L5.Caption = Format(a5, "##,###.00")

L6.Caption = Format(a6, "##,###.00")

L7.Caption = Format(a7, "##,###.00")

End Sub

По нажатию на кнопку построения диаграммы происходит проверка на то, чтобы были просчитаны налоги, в случае если графы налогов пусты, то на экран выводится ошибка.’

Private Sub CommandButton3_Click()

If L1.Caption <> "" Then

UserForm2.Show

Else

MsgBox "Подсчитайте итоги", vbCritical + vbOKOnly

End If

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]