Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [ 41 ] 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

ка..1иш.111лшчдтдд,11,1 Il iiiaiillaiBiidTTanr

Q £айл Правка £ид Вставка Формат Сервис Ланные Дкно 2 - li? I х

2 Число выплат 6

3 Размер ссуды 10 000р.

4 Размер одной выплаты 2 000р.

5 Процентная ставка 7.00%

6 Текущий объем ссуды 9533.03 р.

7 Маргинальная процентная ставка 5.47%

8 Маргинальный чистый текущий объем ссуды 1 ООО 000р.

h I 1

В I С D Е F -

11 12 13 14 15 16

\< А > ►! \ Лист!/ЛИСТ2/ЛистЗ/ Ч I Ч Г"

Готово

Рис. 17.3. Отчет, выводимый на рабочем листе программой расчета маргинальной процентной ставки

Текст программы имеет следующий вид: Private Sub CommandButtonl Click()

Процедура расчета маргинальной процентной ставки

Dim i As Double

Dim p As Double

Dim A As Double

Dim iMarg As Double

Dim pPure As Double

Dim n As Integer

n - число выплат

p - размер ссуды

* a - размер одной выплаты i - процентная ставка

pPure - текущий объем ссуды,

на рабочем листе вычисляется функцией ПЗ

iMarg - маргинальная процентная ставка

* Проверка того, чтобы введенные

в диалоговое окно данные являлись числами

If IsNumeric(TextBoxl.Text) = False Then MsgBox

"Ошибка в числе выплат",

vblnformation, "Маргинальная ставка" TextBoxl.SetFocus Exit Sub



End If

If IsNumeric(TextBox2.Text) = False Then MsgBox "Ошибка в размере ссуды",

vblnformation, "Маргинальная ставка" TextBox2.SetFocus

Exit Sub End If

If IsNumeric(UserForml.TextBoxS.Text) = False Then MsgBox "Ошибка в размере одной выплаты", vblnformation, "Маргинальная ставка" TextBoxS.SetFocus

Exit Sub End If

If IsNumeric(TextBox4.Text) = False Then MsgBox "Ошибка в процентной ставке",

vblnformation, "Маргинальная ставка" TextBox2.SetFocus

Exit Sub End If

Ввод данных в переменные из диалогового окна п = CInt (TextBoxl.Text) р = CDbl(TextBox2.Text) A = CInt(TextBoxS.Text) i = CInt(TextBox4.Text) / 100

Проверка согласованности ввода данных

If n * А < р Then

MsgBox "Возвращается на"

& cstr(Format(р - n * A, "Fixed")) &

"меньше размера ссуды",

VbExclamation, "Маргинальная ставка" TextBoxl.SetFocus

Exit Sub End If

Изменение ширины столбцов и задание режима ввода текста с переносом

ActiveSheet.Columns("А:А").Select With Selection .ColuronWidth = 20 .WrapText = True End With ActiveSheet.Columns("B:B").Select Selection.ColumnWidth = 12 Выбор ячейки В2 для того, чтобы снять выделение со столбца В ActiveSheet.Range("В2").Select Ввод названий записей на рабочем листе With ActiveSheet

.Range("А2").Value = "Число выплат"

.Range("A3").Value = "Размер ссуды"

.Range("А4").Value = "Размер одной выплаты"



.Range("A5").Value = "Процентная ставка"

.Range("Аб").Value = "Текущий объем ссуды"

.Range("А7").Value = "Маргинальная процентная ставка"

.Range("А8").Value =

"Маргинальный чистый текущий объем ссуды" .Range{"В8").Activate End With

• Расчет чистого текущего объема ссуды pPure = Application.PV(i, n, -A)

• Нахождение маргинальной процентной ставки

• с помощью команды "Подбор параметра".

Ввод данных в ячейки активного рабочего листа

• и задание процентного и денежного форматов в ячейках With ActiveSheet

Range("В2").Value = n

Range("ВЗ").NumberFormat = "#,##0$"

Range("B3").Value = p

Range("B4").NumberFormat = "#,##0$"

Range("B4").Value = A

Range("B5").NumberFormat = "0.00%"

Range("B5").Value = i

Range("B7").NuinberFonnat = "0.00%"

Ввод начального приближения

для маргинальной процентной ставки Range("В7").Value = i

Ввод формулы расчета Range ("В8") .FormulaLocal =ПЗ(В7;В2;-В4)" Range("Вб").Value = .Range("В8").Value

Выполнение команды "Подбор параметра" Range("В8").GoalSeek Goal:=р, ChangingCell:=.Range("В7")

Присвоение найденного значения

маргинальной процентной ставки

переменной iMarg iMarg = .Range("В7").Value End With

Переформатирование найденных значений и вывод их в диалоговом окне TextBoxS.Text = CStr(Format(pPure, "Fixed"))

TextBox6.Text = CStr(Format(iMarg * 100, "Fixed")) End Sub

Private Sub CommandButton2 Click()

Процедура закрытия диалогового окна

UserForml.Hide End Sub Private Sub UserForm.Initialize()



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [ 41 ] 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57