Кредитная
операция
|
Депозитная
операция
|
Срок
кредитования
|
|
Срок депозитной
операции
|
|
от 1 до 3 лет
|
от 3 до 5 лет
|
от 5 до 40 лет
|
первоначальный
взнос от суммы кредита в %
|
до 2 лет
|
до 5 лет
|
до 10 лет
|
минимальная
сумма для депозитной операции
|
10
|
9
|
8
|
50
|
4
|
8
|
9
|
650
|
5. Математическая формулировка задачи
Белорусские банки применяют в настоящий момент два способа
погашения долга - аннуитетными (равными) и дифференцированными (уменьшающимися)
платежами. Аннуитетные платежи иногда еще называют рентными, а способ погашения
кредита дифференцированными платежами - коммерческим. Могут встречаться и
другие определения.
5.1
Расчёт ежемесячных выплат при аннуитетных платежах
Ежемесячный аннуитетный платеж - это постоянная сумма,
которую заемщик каждый месяц отдает банку. Он складывается из двух составляющих
- возвращения основного долга и начисленных процентов. (Строго говоря, понятие
"аннуитет" применимо только к ежегодным выплатам, но на практике
сложилось так, что его применяют к равным выплатам с любой периодичностью, в
том числе и ежемесячным.) Формула аннуитетного платежа выглядит следующим
образом:
ЕП=СК*ПС/12 (1/ (1- (1+ПС/12) СК)), где
ЕП - размер ежемесячного платежа; СК - сумма
кредита; ПС - годовая процентная ставка; КМ - количество месяцев
(срок, на который выдан кредит).
Как мы уже заметили, ежемесячный аннуитетный платеж
складывается из двух составляющих - возвращения основного долга и начисленных
процентов:
ЕП=ВОД+ЕПВ, где
ВОД - возврат основного долга; ЕПВ -
ежемесячные процентные выплаты.
На этом сходство в подходах банков заканчивается, и
начинаются различия. Состоят они в подходах к вычислению суммы причитающихся
процентов. Основных подходов два, разница - в используемой временной базе.
Часть банков исходят из того, что "в году 12 месяцев", и тогда размер
ежемесячных процентных выплат определяется по формуле:
ЕПВ=ОЗ*ПС/12, где
ЕПВ - ежемесячные процентные выплаты; ОЗ -
остаток задолженности в данном месяце; ПС - годовая процентная ставка.
Часть банков исходит из того, что "в году 365 дней"
и такой подход называется расчетом точных процентов с точным числом дней ссуды.
Для того чтобы вычислить сумму возврата основного долга, необходимо из суммы
ежемесячного аннуитетного платежа (размер которого, как мы помним, остается
неизменным) вычесть размер процентных выплат в данном месяце:
ВОД=ЕП-ЕПВ
5.2
Расчёт ежемесячных выплат при дифференцированных платежах
Дифференцированный платеж складывается из суммы двух составляющих
- суммы начисленных процентов и суммы платежа по основному долга (телу
кредита). Дифференцированный платеж можно представить в виде формулы:
ПК=ОД+ПП,
где
ПК - платеж по кредиту, ОД - сумма гашения
основного долга, ПП - сумма процентов за расчетный период.
Сумма платежа по основному долгу равна отношению суммы
кредита к количеству месяцев, на который выдан кредит. Формула расчета суммы
платежа по основному долгу имеет следующий вид:
ОД=ПСК/КМ, где
ПСК - полная сумма кредита, КМ - количество месяцев,
на которое выдан кредит.
Сумма процентов рассчитывается на остаток ссудной
задолженности.
ПП = ОСЗ*КД*ГПС/365, где
КД - количество дней, за которые выполняется
начисление, ГПС - годовая процентная ставка (в долях), ОСЗ -
остаток ссудной задолженности.
С каждым платежом сумма процентов будет уменьшаться, а сумма
платежа по основному долгу останется неизменной. Максимальная сумма платежа
придется на первое гашение по кредиту.
алгоритм программа операция банк
6. Описание работы программы
Основной программа состоит из 4-х форм и файла Microsoft Excel, который создается непосредственно
в ходе работы программы.
При запуске рабочей книги открывается первая форма (рис 6.1)
на которой вы наблюдаете 3 кнопки. При нажатии кнопки "Выход" программа
прекращает свою работу и закрывает открытые книги. При нажатии кнопки "Кредитные
операции" создается новая рабочая книга и открывается форма 2, где вы
вводите информацию необходимую для расчета кредитных операций, а при нажатии
кнопки "Депозитные операции" также создается новая рабочая
книга, но открывается форма 3, где вводится информация необходимая для расчета
депозитных операций.
Рис 6.1 Первая форма
На Форме 2 (рис 6.2) мы увидим поля, в которые нужно ввести
ФИО клиента, сумму кредита, срок на который берется кредит, и выбрать вид
платежа: аннуитетный или дифференцированный. Если какие либо данные не введены
на экране появляется сообщение о том, что что-то не введено. После ввода всех
данных вы нажимаете кнопку "Расчет" и программа по введенным
параметрам рассчитывает выходные данные, которые для удобства размещены в виде
таблицы на первом листе созданной рабочей книги, а на втором листе размещает
диаграмму, на которой вы увидите 3 зависимости:
Ø Плата по основному долгу
от времени
Ø Зависимость величины
платы по % со временем
Ø Как изменяется
сумма ежемесячного платежа
Рис 6.2 Форма2 для расчета кредитных операций
Для детального ознакомления с полученными данными вам
необходимо будет сохранить рабочую книгу, что возможно сделать, нажав кнопку
"Сохранить" в окне которое появится (Рис 6.5). Данная книга
сохранится под именем клиента, путь сохранения выбираете вы сами.
На форме 2 также находятся еще одна кнопка "Выход",
при нажатии которой появляется диалоговое окно, в котором у вас
спрашивают "Вы действительно хотите выйти?":
Рис 6.3
При нажатии кнопки "Да" программа закрывает
все открытые книги Excel.
Рис 6.4 Форма3 для расчета депозитных операций
На рис 6.4 мы увидим окно, где вводятся данные для расчета
депозитных операций: ФИО клиента, начальная сумма депозита, срок на который
ложится депозит, и выбирается вид процента (сложный процент или простой
процент). Если какие либо данные не введены на экране появляется сообщение о
том, что что-то не введено. После ввода всех данных вы нажимаете кнопку "Расчет"
и программа по введенным параметрам рассчитывает выходные данные, которые
также размещены в виде таблицы на первом листе. На втором листе
размещается диаграмма, на которой изображены 3 зависимости:
Ø Основная сумма
депозита от времени
Ø Зависимость
величины % от количества времени
Ø Как изменяется
общая сумма
Для детального ознакомления с полученными данными вам также
необходимо будет сохранить рабочую книгу, что возможно сделать, нажав кнопку
"Сохранить" в окне которое появится (Рис 6.5). Данная книга
сохранится под именем клиента, путь сохранения выбираете вы сами.
На форме 3 также находятся еще одна кнопка "Выход",
при нажатии которой появляется диалоговое окно, изображенное на рис
6.3.
Рис 6.5 Форма 4
На рис 4 изображена четвертая форма с тремя копками:
· "Сохранить"
· "Выйти" - при нажатии которой
появляется диалоговое окно изображенное на рис 6.3 и затем программа спрашивает
о возможном сохранении (рис 6.6).
Рис 6.6
· "Пересчитать" - при нажатии которой также
появляется диалоговое окно о возможном сохранении (рис 7), так как если данные
были не сохранены они будут утеряны и после вашего выбора программа вновь
перейдет на форму 1 (рис 2)
7.
Разработка модуля программы расчёта кредитов и депозитов
7.1
Схема алгоритма выполнения основной программы
Рис 7.1 Схема алгоритма выполнения программы
Блок1 Обозначает выбор кредитных или депозитных
операций в окне представленном на рисунке 6.1.
Блок 2,3 Создают новую рабочую книгу
Блок 4 Подпрограмма расчета депозита выводит окно для
ввода необходимых для расчетов данных, проверяет все ли они введены и
удовлетворяют ли условиям, и по введенным параметрам рассчитывает выходные
данные, затем строит по ним графики. Окно для ввода данных представлено на рисунке
6.4 Листинг подпрограммы можно просмотреть в приложении 2 под
названием rasdep, схема алгоритма подпрограммы изображена на рисунке 7.4
Блок 5 Подпрограмма расчета кредита выводит окно для
ввода необходимых для расчетов данных, проверяет все ли они введены и
удовлетворяют ли условиям, и по введенным параметрам рассчитывает выходные
данные, затем строит по ним графики. Окно для ввода данных представлено на рисунке
6.2 Листинг подпрограммы можно просмотреть в приложении 2 под
названием raskred, схема алгоритма подпрограммы изображена на рисунке 7.3
Блок 6 Обозначает нажатие кнопки пересчитать на форме
изображенной на рисунке 6.5
Блок 7 При запуске подпрограммы пересчета данных
появляется диалоговое окно о возможном сохранении (рис 6.6), так как если
данные были не сохранены они будут утеряны при закрытии созданной книги.
Листинг подпрограммы можно просмотреть в приложении 2 под названием peres, схема алгоритма
подпрограммы изображена на рисунке 7.5
Блок 8 Подпрограмма сохранения активируется при нажатии
кнопки "Сохранить" в окне изображенном на рисунке 6.5 Листинг
подпрограммы можно просмотреть в приложении 2 под названием sohr, схема алгоритма
подпрограммы изображена на рисунке 7.2
Блок 9 Подпрограмма выхода, что запускается при нажатии
кнопки "Выход" расположенной в окне изображенном на рисунке 6.5 В
результате программа выводит два диалоговых окна изображенных на рисунках 6.3 и
6.6 одно из них о возможном сохранении рабочей книги и затем работа программы
прекращается. Листинг подпрограммы можно просмотреть в приложении 2 под
названием vih, схема алгоритма подпрограммы изображена на рисунке 7.6
7.2
Используемые подпрограммы
7.2.1
Подпрограмма сохранения [4]
Рис 7.2 Схема алгоритма подпрограммы сохранения
файла
Блок 1 проверяет введено ли ФИО клиента в третьей
форме,
Блок 2 присваивание промежуточной переменной i ФИО клиента в 3-й форме.
Блок 3 присваивание промежуточной переменной i ФИО клиента во 2-й
форме.
Блок 4 присваивание рабочей книги имени i
Блок 5 проверяет условие нажата ли кнопка отмены, если да то
завершение подпрограммы.
Блок 6 сохранение рабочей книги.
7.2.2
Подпрограмма расчета кредита [2]
Рис 7.3 Схема алгоритма подпрограммы расчета
кредита
Подпрограмма расчета кредита выводит окно для ввода
необходимых для расчетов данных, проверяет все ли они введены и удовлетворяют
ли условиям, и по введенным параметрам рассчитывает выходные данные, затем
строит по ним графики.
Подпрограмма расчета депозита [1]
Рис 7.4 Схема алгоритма подпрограммы расчета
депозита
Подпрограмма расчета депозита выводит окно для ввода
необходимых для расчетов данных, проверяет все ли они введены и удовлетворяют
ли условиям, и по введенным параметрам рассчитывает выходные данные, затем
строит по ним графики. Окно для ввода данных представлено на рисунке
6.4.
7.2.3
Подпрограмма пересчета [3]
Рис 7.5 Схема алгоритма подпрограммы пересчета
При запуске подпрограммы пересчета данных появляется
диалоговое окно о возможном сохранении (рис 6.6), так как если данные были не
сохранены они будут утеряны при закрытии созданной книги. После подпрограмма
закрывает UserForm4 (рис 6.5) и открывает UserForm1 (рис 6.1).
7.2.4
Подпрограмма выхода [5]
Рис 7.6 Схема алгоритма подпрограммы выхода
Подпрограмма выхода, что запускается при нажатии кнопки
"Выход" расположенной в окне изображенном на рисунке 6.5 В результате
программа выводит два диалоговых окна изображенных на рисунках 6.3 и 6.6 одно
из них о возможном сохранении рабочей книги и затем работа программы
прекращается.
Заключение
В данной курсовой я ознакомилась с использованием Basic for Applications в автоматизации
банковских операций. Также ознакомилась со структурой банка и видами банковских операций.
Создала программу для расчёта кредитных и депозитных операций при помощи Visual Basic for Applications. В программе реализованы
все поставленные задачи:
программа запрашивает у пользователя все входные данные с
помощью формы;
автоматически рассчитываются все выходные данные кредитных и
депозитных операций;
автоматически строятся графики на основе рассчитанных
значений на другом листе книги;
предусмотрена возможность выбора пользователем одного из
видов платежа (аннуитетный или дифференцированный) для кредитных операций;
предусмотрена возможность выбора пользователем вида
начисления процентов (простой и сложный) для депозитных операций
при разработке программы учтены параметры Варианта №20:
Литература
1.
Андрей Гарнаев." Использование MS Excel и VBA в экономике и
финансах".
.
Джон Уокенбах. "Программирование на VBA в Excel 2002". Киев. 2003г.
.А.Н.
Пылкин, Л.А. Демидова "Программирование в среде Visual for Applications".
.
Конспект лекций
Приложения
Приложение 1.
"Примеры расчетов"
1. Пример расчета кредита дифференцированным методом
В форме 1 изображенной на рисунке 6.1 выбираем кредитные
операции, затем вводим необходимые данные:
сумма кредита-5000000
срок кредита-15лет
Рис 1. UserForm2
Результаты:
Рис 2. Лист1 с результатами расчета
График:
Рис 3. График платежей кредита
. Пример расчета депозита со сложным процентом
В форме 1 изображенной на рисунке 6.1 выбираем депозитные операции,
затем вводим необходимые данные:
сумма депозита-5000000
срок депозита-15мес
Рис 4. UserForm3
Результаты:
Рис 5. Лист1 с результатами расчета
График:
Рис 6. График платежей депозита
Приложение 2.
"Листинг программы"
'переход к первой форме сразу при открытии
рабочей книги
Private Sub Workbook_Open ()
'переход к первой форме
UserForm1. Show
End Sub
UserForm1
'Переход к форме расчета кредита
Private Sub CommandButton1_Click ()
'создание новой книги
Workbooks. Add. Hide. ShowSub
'Переход к форме расчета депозита
Private Sub CommandButton2_Click ()
'создание новой книги
Workbooks. Add
UserForm1. Hide. ShowSub
' процедура выхода
Private Sub vix_Click ()
' запрос у пользователя на подтверждение выхода
Ex = MsgBox ("Вы действительно хотите выйти?", vbYesNo + vbQuestion, Zagl)
If Ex = vbNo Then Exit Sub
' закрытие рабочих книг
ActiveWorkbook. Close False. CloseSub
UserForm2
' подпрограмма рассчета кредитов
Private Sub rascred_Click () [2]Pz, Summ,
Sroc As Singleost, osn, proc, plat, Sum1, Sum2, Sum3 As Singlei As
IntegerZaglav As String = "Кредитные и депозитные операции"
' показать ошибку, если не введена ФИО клиента
If fio. Value = "" Then
MsgBox "Введите ФИО клиента",, Zaglav
Exit Sub
End If
' показать ошибку, если не выбран вид платежа
If an. Value = False And dif. Value = False
Then"выберите вид платежа",, Zaglav Sub
End If
' ошибка, если не введена сумма кредита
If summkred. Value = "" Then"Введите
сумму кредита",, Zaglav Sub
End If
' ошибка, если не введена сумма кредита
If srockred. Value = "" Then
MsgBox "Введите срок кредитования",, Zaglav
Exit Sub
End If
' ошибка, если неправильно введена сумма кредита
If IsNumeric (summkred. Value) = False Then "Неправильно
введена сумма кредита",, Zaglav
Exit Sub
End If
' ошибка, если неправильно введен срок
кредитования
If IsNumeric (srockred. Value) = False Then "Неправильно введен
срок кредитования",, Zaglav
Exit Sub
End If
' присвоение переменным значений, вводимых
пользователем
Summ = CDbl (summkred. Value)= CInt (srockred.
Value)
' проверка срока кредитования
If Sroc < 1 Then
MsgBox "Минимальный срок кредитования - 1
год",, Zaglav
Exit SubIfSroc > 40 Then "Максимальный срок
кредитования - 40 лет",, Zaglav
Exit Sub
End If
' приcваивание процентной
ставки в зависимости от срока кредитования
If Sroc >= 1 And Sroc <= 3 Then Pz =
0.1Sroc > 3 And Sroc <= 5 Then Pz = 0.09Sroc > 5 Then Pz = 0.08
' очистка ячеек
Cells. Clear
' ввод значений
Range ("A2"). Value = "Тип
операции: "("A3"). Value = "Тип платежа:
"("A4"). Value = "Сумма кредита: " ("A5"). Value = "Срок
кредитования: "
Range ("A6"). Value = "Процентная
ставка: "
Range ("A7"). Value = "Первоначальный
взнос (%): "
Range ("A8"). Value = "Первоначальный
взнос: "
Range ("A10: D10"). Font. Bold =
True("A10"). Value = "№ месяца" ("B10"). Value = "Оплата по
основному долгу"
Range ("C10"). Value = "Оплата по
процентам"
Range ("D10"). Value = "Ежемесячные
платежи"
Range ("E10"). Value = "Итого:
"("E10"). Font. Bold = True
Range ("F10"). Value = "Плата по
основному долгу"
Range ("G10"). Value = "Плата по
процентам"
Range ("H10"). Value = "Общая плата:
"
' определение формата ячеек
Range ("B1"). NumberFormat =
"general"("B2"). NumberFormat =
"Кредит"("B3"). NumberFormat = "general"
'общий("B4"). NumberFormat = "0.00$"
'денежный("B5"). NumberFormat = "0год (а)"("B6").
NumberFormat = "0.00%"("B7"). NumberFormat =
"0.00%"("B8"). NumberFormat = "0.00$"("B11:
D500"). NumberFormat = "0.00$" ("E11: H11"). NumberFormat = "0.00$"
' определение ширины колонок
Columns ("A: H"). ColumnWidth = 20
' ввод исходных значений в рабочий лист
Range ("B1"). Value = fio.
Value("B2"). Value = "Кредит"("B4"). Value =
Summ("B5"). Value = Sroc("B6"). Value = Pz("B7").
Value = 0.5("B8"). Value = Summ * 0.5= Summ - Summ * 0.5
' обнуление переменных
ost = 0
osn = 0
proc = 0= 0= 0= 0= 0
' рассчет кредита дифференцированным методом
If dif. Value = True Then("B3"). Value =
"Дифференцированный"
osn = Summ / (12 * Sroc)
' расчет выплаты по основному долгу, выплаты по
процентам, и всего долга
For i = 1 To Sroc * 12= Summ - (i - 1) * osn= ost
* Pz / 12= proc + osn= Sum1 + osn= Sum2 + proc= Sum3 + plat
'занесение данных в таблицу
Cells (i + 10, 1). Value = i(i + 10,2). Value = osn(i + 10,3). Value
= proc(i + 10,4). Value = plati
' вывод итогов
Range ("F11"). Value =
Sum1("G11"). Value = Sum2("H11"). Value = Sum3 If
' рассчет кредитов аннуительным методом
If an. Value = True Then("B3"). Value =
"Аннуитетный"= (Summ * (Pz / 12)) / (1 - (1 + Pz / 12) ^ (-Sroc *
12)) ' сумма ежемесечного платежа
' расчет выплаты по основному долгу, выплаты по
процентам, и всего долга
For i = 1 To Sroc * 12
ost = Summ - Sum1= ost * Pz / 12= plat - proc=
Sum1 + osn= Sum2 + proc= Sum3 + plat
'занесение данных в таблицу
Cells (i + 10, 1). Value = i(i + 10,2). Value = osn(i + 10,3). Value
= proc(i + 10,4). Value = plati
' вывод итогов
Range ("F11"). Value =
Sum1("G11"). Value = Sum2("H11"). Value = Sum3 If
'построение графика
Sheets. Add After: =Sheets (Sheets. Count). Shapes.
AddChart. Select. ChartType = xlLineMarkers. SetSourceData Source: =Range
(Worksheets (1). Cells (10,2), Worksheets (1). Cells (Sroc * 12 + 10,4)).
SeriesCollection (1). Name = "=Лист1! $B$10". SeriesCollection (2).
Name = "=Лист1! $C$10". SeriesCollection (3). Name = "=Лист1!
$D$10". Location Where: =xlLocationAsNewSheet
'закрывает форму 2 и открывает форму 4
UserForm2. Hide. ShowSub
'процедура выхода
Private Sub vix_Click ()
' запрос у пользователя на подтверждение выхода
Ex = MsgBox ("Вы действительно хотите выйти?", vbYesNo + vbQuestion, Zaglav)
If Ex = vbNo Then Exit Sub
' закрытие рабочих книг
ActiveWorkbook. Close False. CloseSub
UserForm3
' программа расчета депозита
Private Sub rasdep_Click () [1]
Dim Pz, Summ, Sroc As Singleosn, proc, plat,
Sum1, Sum2 As Singlei As IntegerZaglav As String = "Кредитные и депозитные
операции"
' показать ошибку, если не введена ФИО клиента
If fio. Value = "" Then
MsgBox "Введите ФИО клиента",, Zaglav
Exit Sub
End If
' показать ошибку, если не выбран вид депозита
If pr. Value = False And sl. Value = False
Then"выберите вид депозита",, Zaglav Sub
End If
' показать ошибку, если не введена сумма депозита
If summdep. Value = "" Then
MsgBox "Введите сумму депозита",, Zaglav
Exit Sub
End If
' показать ошибку, если не введена сумма депозита
If srocdep. Value = "" Then
MsgBox "Введите срок депозита",, Zaglav
Exit Sub
End If
' показать ошибку, если неправильно введена сумма
депозита
If IsNumeric (summdep. Value) = False Then "Неправильно
введена сумма депозита",, Zaglav
Exit Sub
End If
' показать ошибку, если неправильно введен срок
депозита
If IsNumeric (srocdep. Value) = False Then "Неправильно введен
срок депозита",, Zaglav
Exit Sub
End If
' присвоение переменным значений, вводимых пользователем
Summ = CDbl (summdep. Value)= CInt (srocdep.
Value)
' проверка на правильность ввода срока депозита
If Sroc < 1 Then
MsgBox "Минимальный срок депозита - 1
месяц",, Zaglav
Exit SubIfSroc > 120 Then "Максимальный срок
депозита - 10 лет",, Zaglav
Exit Sub
End If
' приcваивание процентной
ставки в зависимости от срока депозита
If Sroc >= 1 And Sroc <= 24 Then Pz =
0.04Sroc > 24 And Sroc <= 60 Then Pz = 0.08 Sroc > 60 Then Pz = 0.09
' проверка вводимой суммы депозита
If Summ < 650 Then
MsgBox "Минимальная сумма депозита - 650
рублей",, Zaglav
Exit SubIf
' очистка ячеек
Cells. Clear("A1"). Value = "Ф.
И.О. клиента: "("A2"). Value = "Тип операции:
"("A3"). Value = "Метод расчета: " ("A4"). Value = "Сумма депозита,
руб: "
Range ("A5"). Value = "Срок депозита,
мес: "
Range ("A6"). Value = "Процентная
ставка: "
Range ("A10"). Value = "№
месяца"("B10"). Value = "Основной депозит, руб"
Range ("C10"). Value = "Проценты,
руб"
Range ("D10"). Value = "Сумма,
руб"("E11"). Value = "Итого: "("F10"). Value
= "Депозит"("G10"). Value =
"Проценты"("H10"). Value = "Всего"
' определение формата ячеек
Range ("B1"). NumberFormat =
"general"("B2"). NumberFormat =
"general"("B3"). NumberFormat =
"general"("B4"). NumberFormat =
"0.00$"("B5"). NumberFormat = "0мес"("B6").
NumberFormat = "0.00%"("B7"). NumberFormat =
"0.00$"("A10: D10"). Font. Bold = True("B9:
D140"). NumberFormat = "0.00$"("F11: H11").
NumberFormat = "0.00$"
' определение ширины колонок
Columns ("A: H"). ColumnWidth = 25
' ввод исходных значений в рабочий лист
Range ("B1"). Value = fio.
Value("B2"). Value = "Депозит"("B4"). Value =
Summ("B5"). Value = Sroc("B6"). Value = Pz
' обнуление переменных
osn = 0
proc = 0
plat = 0
Sum1 = 0
Sum2 = 0
' рассчет депозита c простым процентом
If pr. Value = True Then("B3"). Value = "Простой
процент"
proc = Summ * Pz / 12
osn = Summi = 1 To Sroc= proc * i= osn + Sum1
'Занесение данных в таблицу
Cells (i + 10, 1). Value = i(i + 10,2). Value = osn(i + 10,3). Value
= Sum1(i + 10,4). Value = plati
' вывод итогов
Range ("F11"). Value = osn("G11").
Value = Sum1("H11"). Value = plat If
'расчет депозита с сложным процентом
If sl. Value = True Then("B3"). Value =
"Сложный процент"= Summ= Summi = 1 To Sroc= Sum2 * Pz / 12= Sum2 +
proc= plat= plat - osn
'Занесение данных в таблицу
Cells (i + 10, 1). Value = i(i + 10,2). Value =
osn(i + 10,3). Value = Sum1(i + 10,4). Value = plati
' вывод итогов
Range ("F11"). Value =
osn("G11"). Value = Sum1("H11"). Value = platIf
'построение графика
Sheets. Add After: =Sheets (Sheets. Count). Shapes.
AddChart. Select. ChartType = xlLineMarkers. SetSourceData Source: =Range
(Worksheets (1). Cells (10,2), Worksheets (1). Cells (Sroc + 10,4)).
SeriesCollection (1). Name = "=Лист1! $B$10". SeriesCollection (2).
Name = "=Лист1! $C$10". SeriesCollection (3). Name = "=Лист1!
$D$10". Location Where: =xlLocationAsNewSheet
'закрывает форму 2 и открывает форму 4
UserForm3. Hide. ShowSub
'процедура выхода
Private Sub vix_Click ()
' запрос у пользователя на подтверждение выхода
Ex = MsgBox ("Вы действительно хотите выйти?", vbYesNo + vbQuestion, Zaglav)
If Ex = vbNo Then Exit Sub
' закрытие рабочих книг
ActiveWorkbook. Close False. CloseSub
UserForm4
'Процедура сохранения расчетов
Private Sub sohr_Click () [4]
If UserForm3. fio. Value = "" Then=
UserForm2. fio. Value= Application. GetSaveAsFilename (InitialFileName: =i)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"SubIf= UserForm3. fio. Value=
Application. GetSaveAsFilename (InitialFileName: =i)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"Sub
'процедура выхода
Private Sub vix_Click () [5]
' запрос у пользователя на подтверждение выхода
Ex = MsgBox ("Вы действительно хотите выйти?", vbYesNo + vbQuestion, Zaglav)
If Ex = vbNo Then Exit Sub
' запрос на подтверждение сохранения
Sv = MsgBox ("Сохранить текущий файл?", vbYesNo + vbQuestion, Zaglav)
If Sv = vbNo Then. Close False. CloseSubIf
' сохранение файла
If UserForm3. fio. Value = "" Then=
UserForm2. fio. Value= Application. GetSaveAsFilename (InitialFileName: =i)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"
' закрытие рабочих книг
ActiveWorkbook. Close False. CloseSubIf= UserForm3. fio. Value=
Application. GetSaveAsFilename (InitialFileName: =i)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"
' закрытие рабочих книг
ActiveWorkbook. Close False. CloseSub
‘подпрограмма перерасчета
Private Sub peres_Click () [3]
' запрос на подтверждение сохранения
Sv = MsgBox ("Сохранить текущие расчеты?", vbYesNo + vbQuestion, Zaglav)
If Sv = vbNo Then
'закрывает созданную книгу и переходит к форме 1
ActiveWorkbook. Close False. Hide.
ShowSubIfUserForm3. fio. Value = "" Then= UserForm2. fio. Value=
Application. GetSaveAsFilename (InitialFileName: =i)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"SubIf= UserForm3. fio. Value=
Application. GetSaveAsFilename (InitialFileName: =i)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"
' сохранение файла
SaveName = Application. GetSaveAsFilename
(InitialFileName: =fio)
' при нажатии кнопки "отмена" выходит
из процедуры
If SaveName = False Then Exit Sub. SaveAs
Filename: =SaveName & "xls"
'закрывает созданную книгу и переходит к форме 1
ActiveWorkbook. Close False. Hide. ShowSub