Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Решение економічних завдань із допомогою VBA

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Опис змінних.. .. .. .. .. .. .. .. .. ... 2.2 Вхідні і вихідних даних.. .. .. .. .. .. .. .. .. 2.3 Докладний опис завдань.. .. .. .. .. .. .. .. … 2.3.1 Нарахування премії як коммисионных і шляхом додаткової оплати.. .. .. .. .. .. .. .. .. .. .. .. .. .. … 2.3.2… Читати ще >

Решение економічних завдань із допомогою VBA (реферат, курсова, диплом, контрольна)

МІНІСТЕРСТВО ОСВІТИ УКРАИНЫ.

КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЭВМ.

РІШЕННЯ ЕКОНОМІЧНИХ ЗАВДАНЬ З ДОПОМОГОЮ VBA.

Курсова работа.

з дисципліни «Матем. моделювання інформаційних систем «.

Пояснювальна записка.

РЕФЕРАТ.

Ця курсова робота називається «Рішення економічних завдань із допомогою Visual Basic for Application».

Під час написання курсової роботи ставилася мету отримання практичних навичок рішення економічних завдань спомощью VBA. Якщо говорити докладніше то був описані шляхи вирішення наступних завдань: нарахування премії як коммисионных і додатковою оплати, нарахування преміальних з певних умовам, модель управління запасами, завдання про оптимальні капіталовкладень, завдання на побудова матриці і обчислення суми, перебування паперового розкроювання й базу данных.

Пояснювальна записка до курсової роботі складається з аркушів, і поділяється на виборах 4 основні частини: 1) теоретичні відомості стосовно рішенню 8 поставлених завдань курсової роботи 2) опис алгоритмів рішення поставденных завдань 3) програма створена середовищі Microsoft Excel 97 SR-1 в макросах на обьектно-ориентированом мові високого рівня Microsoft Visual Basic 4) подробное опис модулів і макросів состовляющих разом єдиний документ Kurs розміром 202,101 байт.

СОДЕРЖАНИЕ Введение. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 1. Теоретичні відомості. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .

1.1 Функція користувача. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .

1.2 Змінні й постійні. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 1.3 Стандартні ф-ции користувача до роботи з масивами і матрицями 1.4 Обьекты, св-ва та фізичні методи VBA. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 1.5 Оператори циклу. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... .

2. Опис програми. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .

2.1 Опис змінних. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 2.2 Вхідні і вихідних даних. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 2.3 Докладний опис завдань. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... 2.3.1 Нарахування премії як коммисионных і шляхом додаткової оплати. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... 2.3.2 Нарахування преміальних з певних умовам. .. .. .. .. ... 2.3.3 Упорядкування відомості розрахунку прибутку то товару. .. .. .. .. .. .. .. 2.3.4 Модель управління запасами. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 2.3.5 Визначення оптимальних капиталовложенией. .. .. .. .. .. .. ... 2.3.6 Перебування оптимального розкроювання. .. .. .. .. .. .. .. .. .. .. .. .. .. 2.3.7 База даних. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Список використовуваних джерел. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... .

ПРИЛОЖЕНИЕ 1: Програма мовою Microsoft Visual Basic. .. .. .. ... .

Завданням даної курсової роботи є підставою складання документа серед Microsoft Excel що включає у собі програми написані мові Microsoft Visual Basic вирішальні 8 поставлених завдань, саме нарахування премії як коммисионных і додатковою оплати, нарахування преміальних з певних умовам, модель управління запасами, завдання про оптимальних капіталовкладень, завдання на побудова матриці і обчислення суми, перебування паперового розкроювання й базу данных.

У пояснювальної записки описані алгоритми вирішення завдань, докладний опис всіх макросів і модулів які у програмі, інакше кажучи наведено описи вхідних і вихідних даних документа, опис найбільш важливих змінних які у программе.

Якщо казати про середовищі написання програм на вирішення поставлених завдань — Microsoft Visual Basic for Application — це поєднання однієї з найпростіших мов програмування і аналіз усіх обчислювальних можливостей такий багатогранної системи як Excel. З допомогою VBA можна легко і швидко створювати різноманітні докладання навіть будучи фахівцем у сфері програмування. VBA містить щодо потужну графічну середу, що дозволить наочно конструювати екранні форми та управляючі эл-ты. У загальному Visual Basic for Application дозволяє собі з легкістю вирішувати багато задачи.

1. ТЕОРЕТИЧНІ ДАНІ У ЗАСТОСУВАННІ До РЕШЕНИЮ.

ПОСТАВЛЕНИХ ЗАДАЧ.

1.1 функція пользователя.

Функція користувача створюється робочому аркуші під назвою модуль VBA, після що з ними можна працювати з допомогою майстра функцій. Для створення модуля VBA необхідно клацнути правої кнопкою миші на ярлик аркуша, якого треба розміщувати даний модуль, і з раскрывающегося контекстного меню вибрати команду «Вставка» (Insert). На вкладке «Общие"(General) необхідно вибрати тип аркуша — Модуль (Module). Після натискання кнопки OK станеться вставка аркуша модуля. Тепер листку модуля можна запровадити текст программы.

Якщо потрібне створити макрос у програмі потрібно зайти у середу Microsoft Visual Basic із засобів натискання комбінації клавіш Alt+F11, потім зайти в меню «Сервіс», далі в підміню «Макроси» і введення ім'я макросу, якщо у час виконання було виділено якийсь модуль то программый код створеного макросу з’явиться саме у нем.

Sub New_Macros ().

; in Module 1.

End Sub.

1.2 Переенные і постоянные.

Усі перемінні в VBA мають тип. Тип вказує все, можуть зберігати змінна: ціла кількість, рядок, дату і т.д.

| Тип даних |Яку Він Обіймав розмір пам’яті |Діапазон | | Boolean | 2 bytes |True/False | |Integer |2 bytes |-32 768 до32 768 | |Long |4 bytes |-2,147,483,648 до | | | |2,147,483,648 | |Date |8 bytes | | | | |Від 1 січня до 31 | |Array |Залежить від розміру й типу эл-тов |дакабря | |Object |4 | | |String |10+длина рядки |Будь-який певний | |Currency |8 |Об'єкт | |Variant |Залежить від вмісту перемінної |Від 0 так 2Х109 |.

1.3 Стандартні ф-ции користувача до роботи з масивами і матрицами.

Використовуються такі ф-ции робочого аркуша до роботи з массивами:

Count У чисел в массиве.

CountA У эл-тов массива.

Sum Сума эл-тов массива.

SumProduct Сума творів эл-тов массивов.

SumSQ Сума квадратів эл-тов массива.

SumVmY2 Сума квадратів разностей эл-тов 2-х массивов.

SumX2mY2 Сума разностей квадратів эл-тов 2-х массивов.

Використовуються такі ф-ции робочого аркуша до роботи з матрицами:

Mmult — твір 2-х матриц.

Minverse — зворотна матрица.

Transpose — транспонированная матрица.

MdeTerm — визначник матрицы.

1.4 Обьекты, св-ва і силові методи VBA.

Однією з основних понять VBA є - об'єкт. Об'єкт містить список методів що до нього застосовні, а методи — те, що з обьектом робити, в такий спосіб об'єкт — це програмний эл-т який має відображення на екрані, містить деякі перемінні, що визначають його св-ва, і пояснюються деякі методи керувати обьектом. У VBA є безліч вбудованих об'єктів, например:

Range — діапазон осередків (може охоплювати лише 1 ячейку).

Cells — координати ячейки.

Sheet — лист.

WorkSheets — робочий лист.

DialogSheets — діалогове окно.

Більшість об'єктів принадлнжит до групи подібних об'єктів. Ці групи називаються наборами. Наприклад, все робочі листи робочої книжки утворюють набір званий WorkSheets.

Синтаксис установки значення св-ва об'єкта має наступний вид:

Обьект.Свойство=Выражение Например,.

WorkSheets («List1»).Range ("W1″).Value=999.

1.5 Оператори цикла.

1) Для багаторазового виконання однієї чи групи операторів служить оператор циклу FOR. NEXT Синтаксис: For Лічильник = Поч. знач. TO кінцеве знач. STEP.

... NEXT Счетчик.

2) Цикл Do. While Do While условие.

Loop.

3) Цикл Do. Until Do.

Loop Until условие.

2. ОПИС ПРОГРАММЫ.

2.1 Опис переменных.

1) Завдання на обчислення коммисионных, иполучения премій (1-е і 2-ге задания).

MAS1(3) — масив з 3-х эл-тов куди заносяться значення доходів магазинів за зазначені месяцы.

MAS2(3) — масив куди заносяться доходи лише з тих магазинів дохід яких перевищує 1490,00 грв.

MAS_I1(3) — масив индексов.

B, C, D — вспомгательные переменные.

I — змінна цикла.

Max — змінна із якої перебуває максимальне значення в масиві доходов (сначала цієї перемінної спеціально присвоюється дуже маленьке значение).

Indm, Indm2, Indm3 — індекси эл-тов масиву що є максимумами якщо виключити попередній знайдений максимум, наприклад спочатку максимумом є Indm, потім перебуває максимум які залишилися і т.д.

2)Составление відомості розрахунку прибуток від товара.

Для визначення максимумів кожному за варіанта вартості товару отримані суми перебувають у осередках (b3:f11) заносять у масив АА2(5), для відображення в відомості максимальної і мінімальної ціни на всі товар. Масиви MM1(9). MM6(9) йдуть на відображення мінімальні ціни за кожен товар за всі варіантів продаж.

3) Модель управління запасами.

Ф-ция користувача CALC вычисляющая фінансові результати при різноманітних варіантах подій купівлі журналів та його реалізації. У ф-ции використовуються такі перемінні: Цена_покупки, Цена_продажи, Цена_Возврата; i, j -перемінні циклів. NROWS, ROWS — перемінні типу Integer. Res () — масив тієї самої типу перемінної длины.

4) Завдання про оптимальні капиталовложениях.

До — змінна типу Integer, відпо-відає кількість капіталовкладень в млн. грв.

R () — масив перемінної довжини, у програмі використовують як прибуток за вкладення і млр. в j-тый філія, де у R[i, j] - i (1.7), а j (1.6).

I, j, p — перемінні циклов.

5) Завдання перебування оптимального раскроя.

Для побудови математичну модель у програмі виробляється перебір різноманітних варіантів розкроювання рулону стандартної довжини на рулони необхідної при цьому у програмі використовуються такі перемінні: i1, i2,i3,i4 — перемінні циклів a1, a2,a3,a4 — перемінні яким присвоюються значення замовлених довжин рулонів. t — змінна якої ф-ция Floor повертає найбільше ціла кількість, не що перевищує дане. M — мінімум серед замовлених длин.

6) База даних і - змінна циклу використовують у додаванні записів в БД у пошуку порожнього поля l1 — мітка яку посилається оператор Goto У конкурсній програмі відбувається перехід на мітку у разі якщо заповненні даних користувач забув запровадити прізвище відповідно до якої програмі визначається порожня запис чи нет.

2.2 Вхідні і вихідні данные.

1) Завдання на обчислення коммисионных, иполучения премій (1-е і 2-ге задания).

Вхідними даними для цього типу завдань є вихідні таблиці з даними про доходи магазинів за зазначені місяці, і навіть сума доходів по місяців. У конкурсній програмі цих значень присвоюються різним змінним при допомоги обьекта.

WorkSheets («„).Range (“»).Value.

Вихідними даними є преміальні отримані внаслідок обчислень відповідно до умовою задания.

2)Составление відомості розрахунку прибуток від товара.

Вхідними даними є 9 різних видів ціни 5 комплектуючих в відповідність до умовою, і навіть значення ціни товар до комплектации.

Вихідними даними є значення сум цін комплектуючих, тобто. ціни товару, і навіть визначення максимальної і мінімальної ціни на всі товар що визначається як за вартістю товару загалом, а й у вартості комплектуючих по отдельности.

3) Модель управління запасами.

Вхідними даними в завданню є ціна продажу журналів, ціна купівлі й видавництва продавцем, і ціна повернення разі нереалізації товару продавцем, також відомі кількість реалізованих за один раз продавцем пачок, і кількість подій за звітний період времени.

Вихідними даними в завданню є значення максимального прибутку і оптимального обьема продажів, які у прогремме виводяться з допомогою діалогового окна.

4) Завдання про оптимальні капиталовложениях.

У цьому завданню вхідними даними є значення мат. ожиданией прибутку як ф-ций капіталовкладень, в соств. з вимогою 6 філій і аналогічних сім млн. грв.

Вихідними даними є таблиця де проводять: оптимальне розподіл коштів, коли, А млн. вкладаються у 1-ї та 2-ї філії вмесле, оптимальне розподіл коштів, коли, А млн. вкладаються у 1- й, 2-й і 3-й філії вмесле, оптимальне розподіл коштів, коли, А млн. вкладаються у 1-й, 2-й, 3-й, 4-й філії вмесле, и оптимальне розподіл коштів, коли, А млн. вкладаються у 1-й, 2-й, 3-й, 4-й і 5-ї філії вмесле і 1-й, 2-й, 3-й, 4-й, 5-й і 6-й.

З цієї таблиці перебуває максимальна очікувана прибуток у цьому разі рівна 1,01 млн. і оптимальні капіталовкладення, з таблиці видно, скільки млн. у які філії потрібно вложить:

6 філія — 2 млн.

5 філія — 1 млн.

6 філія — 1 млн.

6 філія — 1 млн.

6 філія — 1 млн.

6 філія — 1 млн.

5) Завдання перебування оптимального раскроя.

Вхідними даними є значення замовлених довжин та його кол-ва, і навіть значення стандартної длины.

Вихідними даними будуть значення відходів попри всі варіантах розкроювання розглянутих під час вирішення завдання, і сумарне у відходів котрі за умові завдання необхідно минимизировать.

6) База данных.

Сдесь вхідні дані є вихідними, тобто що користувач ввів то і відобразиться в таблиці. База даних містить слежующие поля: 2 поля введення: Прізвище, ім'я 3 що розкриваються списку: Работа, Стаж, Рабочий день (годину) 2. Групи по 2 прапорця: Кредитна картка, загран. Паспорт 2 групи з 2 перемикача: Пол, Семейное становище 3. поля введення зі лічильниками: Возвраст, Оклад, отпуск.

2.3 Докладний опис задач.

2.3.1 Нарахування премії як коммисионных і додаткової оплаты.

Створюємо таблицю нарахування премій, в осередки B4: D10 заносимо значення доходів магазинів за зазначені місяці, збоку в осередках A4: A10 будуть розташовуватися назви місяців, відповідно до варіанту — з 17 листопада до травня, а B3: D3 — магазини, в такий спосіб на перетині буде показано величина доходу магизина що у цьому стовпці місяця який лежить у цієї строке.

У осередку B11 вважаємо дохід 1-го магазину на місяці за такою формулою =СУММ (B4:B10), і розтягуємо маркер креслення до осередки D10, в такий спосіб виробляється підрахунок доходів всіх магазинів на месяцы.

Визначаємо за які ж з доходів магазинів перевищують 1490.00 грв., для яких входить у їх кількість преміальні становитимуть відповідність до умовою 2% доходу ті місяці, інші эл-ты в масиві спеціально заповнюються нулями.

Do k = mas1(i).

If k > 1490 Then mas2(i) = mas1(i) Else mas2(i) = 0 і = і + 1 Loop Until і = 4.

У цьому вся циклі в масив заносяться ті значення що перевищує заданий за умовою значення допустимості, у разі це 1490,00 руб.

Тепер доходи серед решти магазинів потрібно розподілити по спадаючій, у тому, щоб у відповідність до умовою нарахувати магазинах додаткові преміальні за 1-е, 2-ге, третє місце. І тому вибираємо наступний алгоритм: знаходимо максимум серед доходів населення і призначаємо цьому магазину відповідну 1-му місцеві премію, замем вибираємо максимум з доходів без урахування вже сужествующий (тобто. без урахування перший максимум), і призначає цьому магазину соотв. 2-го місцеві премію і т.д.

Do і = і + 1.

If mas2(i) > Max Then.

Max = mas2(i) indm = i.

End If Loop Until і = 3.

Складаємо отримані 2% з тими що нараховуються додатково за 1,2,3 тощо місця, і заносимо резельтаты в таблицю в рядок «Премиальные».

Worksheets ([лист]).Cells ([координаты ячеек]).Value = Max * 0.02 + Max * 0.04.

|Месяц |М, а р, а із | | |і зв и | | |1 |2 |3 | |У листопаді |100 |100 |120 | |Грудень |300 |150 |650 | |Січень |1000|130 |250 | |Лютий |1000|120 |50 | |Березень |0 |100 |760 | |Квітень |100 |100 |0 | |Травень |310 |600 |500 | |Усього |2810|1300 |2330 | |Премиальные!|168,|0 |93,2 | | |6 | | |.

2.3.2 Нарахування премії з певних условиям.

Створюємо таблицю нарахування премій, заповнюємо її величинами доходів за зазначені місяці, вважаємо суму доходів на місяці. Докладний опис створювати таблицю і заповнювати її значеннями приволится у минулому пункте.

Визначаємо які з отриманих сум доходів лежать у який із 4-х вказаних у умови і заносимо рез-ты в таблицю в осередки B12: D12 які відбивають премиальные.

Do і = і + 1 If AA1(i) < 700 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.01 If AA1(i) >= 700 And AA1(i) < 1400 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.015 If AA1(i) >= 1400 And AA1(i) < 2800 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.023 If AA1(i) >= 2800 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.025 Loop Until і = 3.

Полученная таблиця виглядає наступним образом:

|Месяц |М, а р, а із | | |і зв и | | |1 |2 |3 | |У листопаді |50 |100 |120 | |Грудень |50 |150 |650 | |Січень |100 |130 |250 | |Лютий |100 |120 |50 | |Березень |120 |100 |760 | |Квітень |100 |100 |1000 | |Травень |50 |600 |500 | |Усього |570 |1300 |3330 | |Премиальные!|5,7 |19,5 |83,25 |.

2.3.3 Упорядкування відомості розрахунку прибуток від товара.

Заповнюємо таблицю значеннями, як у умови тобто 5 різновидів комплектуючих розміщених у осередках B2: F2, і 9-те варіантів вартостей комплектуючих в осередках A3: A11. У осередках B3: F12 буде розташовуватися значення вартостей комплектуючих і вартості роботи до комплектации.

У осередках G3 за такою формулою =СУММ (B3:F3) вважається загальна вартість всіх комплектуючих, розтягуємо маркер осередки G3 до осередки G11, й одержуємо вартість всіх комплектуючих всім варіантів стоимостей.

У конкурсній програмі визначається яка деталь де сама дешовая, а то й враховувати транспортні витрати й поставити мету купити деталі по мінімальні ціни. І тому у програмі визначаються мінімальні вартості по 5-ти деталям.

Отримана відомість виглядатиме наступним чином: |Варіанти| У і буд и до про м п л е до т | MIN /| | |у ю щ і x |MAX | |Стоимост|1-я |2-га |3-тя |4-та |5-та |Всег| | |і |деталь |деталь|деталь|деталь|деталь |про | | |1-ї |20 |90 |5 |50 |60 |225 | | |2-ї |19 |85 |4 |55 |50 |213 | | |3-й |20 |81 |4 |50 |56 |211 |Миним. Ціна на| | | | | | | | |товар | |4-й |25 |87 |8 |57 |58 |235 | | |5-ї |29 |87 |5 |55 |60 |236 | | |6-ї |18 |88 |4 |40 |61 |211 | | |7-й |30 |99 |9 |66 |60 |264 | | |8-ї |30 |99 |9 |66 |64 |268 |Макс. Ціна на | | | | | | | | |товар | |9-ї |21 |90 |6 |54 |55 |226 | | |До |15 |75 |3 |40 |50 |183 | | |комплект| | | | | | | | |ации | | | | | | | |.

2.3.4 Модель управління запасами.

Вводимо вихідні значення, тобто. значення купівлі продавцем журналів, продажу цих журналів і повернення друкарню у разі не реалізації товару. Введення від цього виробляється у діалоговому вікні, яке створюється як UserForm зі спеціальними кнопками і полями введення купівлі журналів, продажу, і повернення до друкарню. Вікно введення виглядає так:

[pic].

Складаємо таблицю що складається з обьема реалізації, числа подій, і ймовірності цих подій, перші двоє нам дано за умовою, а ймовірність цих подій потрібно вважати. Вводимо в осередок D7 таку формулу обчислення ймовірностей {=D6/СУММ ($D$ 5:$I$ 5)} і розтягуємо маркер до осередки I7.

У осередках C10: H15 спомощью ф-ции користувача CALC Обчислюємо фінансові результати при різноманітних вариантых подій купівлі журналів та його реализации.

Function CALC (buy As Variant) As Variant Dim Цена_продажы, Цена_покупки, Цена_возврата, NRows, і, j As Integer, Result () As Integer NRows = buy.Rows.Count Цена_продажы = Range («a2 »).Value Цена_покупки = Range («b2 »).Value Цена_возврата = Range («c2 »).Value ReDim Result (NRows, NRows) For і = 1 To NRows For j = 1 To NRows If і j Then Result (i, j) = buy (j) * (Цена_продажы — Цена_покупки) — (buy (i) — buy (j)) * (Цена_покупки — Цена_возврата) Next j Next і CALC = Result End Function.

У осередках J11: J16 з допомогою формули {=МУМНОЖ (C10:H15;ТРАНСП (D7:I7))} знаходимо очікувану прибуток, соответсввующую різним варіантів купівлі журналов.

У осередку F16 спомощью формули =НАИБОЛЬШИЙ (J11:J16;1) обчислюємо максимальну прибуток. Її також знайти скориставшись фцией МАКР, знаходить максимальний эл-т з списка.

=Макс (J11:J16).

У осередку F17 за такою формулою =(ПОИСКПОЗ (НАИБОЛЬШИЙ (J11:J16;1);J11:J16;0) — 1)*5 відповідний оптимальний обсяг покупок газет. Потім функція CALC виводить ці оптимальні значення вікні сообщений.

Ф-ция найбільший повертає К-і найбільше значення з багатьох даних. Ця ф-ция використовується щоб вибрати значення з його відносного местоположению. Наприклад, фунуцию НАЙБІЛЬШЕ можна використовуватиме здобуття права визначити найкращий, другий, третій результат в балах, показаний під час тестування. Систаксис програми такой:

НАИБОЛЬШИЙ (массив;К) де Масив — це масив чи діапазон осередків де визначається найбільше значення, до — позиція (починаючи із найбільшою) в масиві чи диапазоне.

Усі результати що є в таблицю виглядатимуть наступним образом:

| | |П р про | | | | | | |буд, а ж | | | | | | |а | | | | |П | |0 |4 |8 |12 |14 |18 | | | |про |0 |0 |0 |0 |0 |0 |0 |Покуп|Прибыл| | | | | | | | | |ка |и | |до |4 |0 |0 |0 |0 |0 |0 |0 | | | | | | | | | | | |- р. | |у |8 |0 |-20 |16 |16 |16 |16 |4 | | | | | | | | | | | |- р. | |п |12 |0 |-40 |-4 |32 |32 |32 |8 | | | | | | | | | | | |12,94р| | | | | | | | | | |. | |до |14 |0 |-60 |-24 |12 |48 |48 |12 | | | | | | | | | | | |16,88р| | | | | | | | | | |. | |а |18 |0 |-70 |-34 |2 |38 |56 |14 | | | | | | | | | | | |9,00р.| | | |Максимальна | | | |18 | | | | |прибуток |16,88| | | |0,28р.| | | | |р. | | | | | | | |Оптимальний |15 | | | | | | | |обсяг | | | | | |.

2.3.5 Визначення оптимальних капиталовложений.

Створюємо вихідну таблицю і заповнюємо її мат. очікуваннями прибутків в состветствии з условием.

| |Ф і л | | | |і а л | | | |и | | |Млн.|1 |2 |3 |4 |5 |6 | |грв | | | | | | | |0 |0 |0 |0 |0 |0 |0 | |1 |0,|0,1|0,1|0,2|0,1|0,1| | |11|2 |8 | |7 |2 | |2 |0,|0,1|0,1|0,2|0,1|0,2| | |11|3 |8 |2 |7 |3 | |3 |0,|0,1|0,1|0,2|0,1|0,2| | |12|3 |9 |4 |8 |4 | |4 |0,|0,1|0,1|0,2|0,1|0,2| | |12|3 |9 |6 |8 |4 | |5 |0,|0,1|0,2|0,2|0,1|0,2| | |13|3 | |9 |9 |5 | |6 |0,|0,1|0,2|0,3|0,1|0,2| | |13|3 | |1 |9 |5 | |7 |0,|0,1|0,2|0,3|0,2|0,2| | |14|3 | |3 | |6 |.

Для подальшого вирішення завдання, вводимо такі обозначения:

Нехай R (i, j) — прибуток отримувана від вкладення і млн. грв. У j-тый філія, де у соотв. З варіантом і від (0,7), а j від (0,6).

F (A, 1,2) — оптимальне розподіл коштів, коли, А млн. грв. вкладаються у 1,2 філії вместе.

F (A, 1,2,3) — оптимальне розподіл коштів, коли, А млн. грв. вкладаються у 1,2,3 філії вместе.

F (A, 1,2,3,4) — оптимальне розподіл коштів, коли, А млн. грв. вкладаються у 1,2,3,4 філії вместе.

F (A, 1,2,3,4,5) — оптимальне розподіл коштів, коли, А млн. грв. вкладаються у 1,2,3,4,5 філії вместе.

F (A, 1,2,3,4,5,6) — оптимальне розподіл коштів, коли, А млн. грв. вкладаються у 1,2,3,4,5 філії вместе.

Значення I у яких досягається максимум визначають оптимальні капіталовкладення в филиалы.

Максимальні значення очікуваних прибутків обчислюється у програмі і заноситься в осередки H4: L11 і виглядатиме наступним образом:

|М, а до сек. і | | | |м у м и | | | |1 і |1,2|1,2,3|1,2,3|1,2,3,| |2 |і 3|и 4 |, 4 і |4,5 і | | | | |5 |6 | |0 |0 |0 |0 |0 | |0,12|0,1|0,2 |0,2 |0,2 | | |8 | | | | |0,23|0,3|0,38 |0,38 |0,38 | |0,24|0,4|0,5 |0,55 |0,55 | | |1 | | | | |0,24|0,4|0,61 |0,67 |0,67 | | |2 | | | | |0,25|0,4|0,63 |0,78 |0,79 | | |2 | | | | |0,25|0,4|0,65 |0,8 |0,9 | | |3 | | | | |0,26|0,4|0,67 |0,82 |1,01 | | |3 | | | |.

В програмі перемінної До — привласнюємо значення однакову обьему капіталовкладень. У масив R з робочого аркуша капіталовкладення вводимо очікувану прибуток, розподілену по филиалам.

У діапазон осередків (B14:K22) виводиться оптимальне розподіл капіталовкладень по філіям. Після обчислень помітні що максимальныя очікувана прибуток становить 1,01 млн. грв., з таблиці видно такі рез-ты:

6 філія — 2 млн.

5 філія — 1 млн.

4 філія — 1 млн.

3 філія — 1 млн.

2 філія — 1 млн.

1 філія — 1 млн.

Сама таблиця виглядає наступним образом:

| |Ф і л | | | | | |і а л | | | | | |и | | | | |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 | |1 |0 |1 |0 |1 |0 |1 |1 |0 |1 |0 | |2 |1 |1 |1 |1 |1 |1 |2 |0 |2 |0 | |3 |1 |2 |2 |1 |2 |1 |2 |1 |3 |0 | |4 |1 |3 |3 |1 |3 |1 |3 |1 |3 |1 | |5 |3 |2 |2 |3 |3 |2 |4 |1 |4 |1 | |6 |3 |3 |3 |3 |3 |3 |5 |1 |4 |2 | |7 |5 |2 |2 |5 |3 |4 |6 |1 |5 |2 | |Млн.|1 |2 |1,2|3 |1,2|4 |1,2,|5 |1,2,3|6 | |грв.| | | | |, 3 | |3 і | |, 4 і | | | | | | | | | |4 | |5 | |.

2.3.6 Завдання перебування оптимального раскроя.

Складаємо таблицю у якій буде наведено залишки від розкроювання на замовлення що за різних варіантах раскроя.

Наприклад за умовою відповідно до варіантом стандартна довжина розкроювання дорівнює 28 метрів, тобто. перший варіант розкроювання буде сосотавлять 0 рулон дляной 4 м, 0 рулонів довжиною 6 м і 4 рулону довжиною 9 м, рулонів довжиною 11 м. нічого очікувати, що сумарно дасть 27, отже відходи становитимуть 1 метр. Другий варіант коли 1 рулон по 6 метрів і два — по 11 м, у разі залишків катма й т.д. Усього виходить 19 варіантів раскроя.

У конкурсній програмі це буде таким образом:

l = 28 a1 = 4: a2 = 6 a3 = 9: a4 = 11 r = 4 m = Application. Min (a1, a2, a3, a4) t = Application. Floor (l / m, 1).

For i1 = 0 To t.

For i2 = 0 To t.

For i3 = 0 To t.

For i4 = 0 To t p. s = 28 — a1 * i1 — a2 * i2 — a3 * i3 — a4 * i4.

If p. s >= 0 And p. s < m Then.

Cells (r, 1).Value = r — 3.

Cells (r, 2).Value = i1.

Cells (r, 3).Value = i2.

Cells (r, 4).Value = i3.

Cells (r, 5).Value = i4.

Cells (r, 6).Value = p. s r = r + 1.

End If.

Next i4.

Next i3.

Next i2.

Next i1.

На аркуші це буде так:

|Д л і зв и р у л про зв | |про в зв, а із, а до, а із | |Вариа| | | | |Залишок | |нты | | | | | | |раскр|4 |6 |9 |11|от расктоя | |ойки | | | | | | |1 |0 |0 |3 |0 |1 | |2 |0 |1 |0 |2 |0 | |3 |0 |1 |1 |1 |2 | |4 |0 |3 |1 |0 |1 | |5 |1 |0 |0 |2 |2 | |6 |1 |1 |2 |0 |0 | |7 |1 |2 |0 |1 |1 | |8 |1 |2 |1 |0 |3 | |9 |1 |4 |0 |0 |0 | |10 |2 |0 |1 |1 |0 | |11 |2 |0 |2 |0 |2 | |12 |2 |1 |0 |1 |3 | |13 |2 |3 |0 |0 |2 | |14 |3 |1 |1 |0 |1 | |15 |4 |0 |0 |1 |1 | |16 |4 |0 |1 |0 |3 | |17 |4 |2 |0 |0 |0 | |18 |5 |1 |0 |0 |2 | |19 |7 |0 |0 |0 |0 |.

Нехай Xj — у стандартних рулонів, розрізаних за спрощеним варіантом j, де j[1.19]. Обмеження що накладалися на перемінні Xj пов’язані з вимогою забезпечити виготовлення замовленого кол-ва нестандартних рулонів. Ф-ция мети враховує сумарні відходи, одержувані і під час замовлення. Таким чином маємо таку мат. модель:

Мінімізувати: Z=x1+2×3+x4+2×5+x7+3×8+2×11+2×12+2×13+x14+x15+3×16+ +2×18 + 4(x5+x6+x7+x8+x9+2×10+2×11+2×12+2×13+3×14+4×15+4×16+4×17+5ч18+7×19- 220)+ 6(…-210)+9(…-350)+ +11(…-380).

Відведемо діапазон осередків (i4:i22) під перемінні. Введемо в діапазон осередків (j3:m3) ліві частини обмежень, певні слежующими формулами:

=СУММПРОИЗВ ($I$ 4:$I$ 22;B4:B22).

=СУММПРОИЗВ ($I$ 4:$I$ 22;c4:c22).

=СУММПРОИЗВ ($I$ 4:$I$ 22;d4:d22).

=СУММПРОИЗВ ($I$ 4:$I$ 22;e4:e22).

У осередок N4 введемо ф-цию мети: =СУММПРОИЗВ ($I$ 4:$I$ 22;F4:F22)+B3*(СУММПРОИЗВ ($I$ 4:$I$ 22;B4:B22) — J3)+C3*(СУММПРОИЗВ ($I$ 4:$I$ 22;C4:C22)-K3)+D3*(СУММПРОИЗВ ($I$ 4:$I$ 22;D4:D22) — L3)+E3*(СУММПРОИЗВ ($I$ 4:$I$ 22;E4:E22)-M3).

где в осередки B3: E3 запроваджені довжини, а осередки J3: M3 — кол-ва замовлених рулонов.

Виберемо команду сервіс — Пошук рішення і заповнимо открывшееся діалогове вікно Пошук рішення (Solver):

— Встановимо цільову осередок — N4.

— Змінюючи осередки I4: I22.

— Обмеження $I$ 4:$I$ 22=целое.

$I$ 4:$I$ 22>=0.

$j$ 4:$m$ 4>=$j$ 3:$m$ 3.

— Ф-ция = минимизация.

|До про л — в, а із, а до, а із, а зв зв и x р у л | |про зв про в | |220|210|35|38|Отходы | | | |0 |0 | | |220|210|35|38|49,99 996 | | | |0 |0 | |.

2.3.7 База данных.

Створимо поля бази даних, і занесемо в таблицю. База даних буде заповнюватися програмою, програмі зайві назви полів, але для полегшення орієнтації У першій рядку введемо дані відповідні полях БД.

Створимо кнопку «Додавання» для додавання записів в БД, робиться це так: Викликаємо панель інструментів де розташовані примітиви, тобто. вікна введення, кнопки тощо. Створюємо на формі кнопку, і спомощью св-ва Caption привласнюємо їй назва «Добавление».

Створимо макрос який відповідатиме за обробку подій по натискання цієї кнопки. Перейдемо у середу Visual Basic for Application й у меню «Вставка» виберемо UserForm, з цього форму і помістимо все обьекты обумовлені в условии (m що розкриваються списків, n полів введення, …).

У макросе що відповідає за подія кнопки «Додавання» введемо процедуру яка активізувати форму UserForm1, і заносити всі дані з вікна на входження у осередки аркуша A4: L4, A5: L5 тощо. По натискання кнопки «OK» виконане буде наступний код программы:

Вікно введення виглядає наступним образом:

[pic].

СПИСОК ВИКОРИСТАНИХ ИСТОЧНИКОВ.

1. А.Гарнаев. Використання MS Excel і VBA економіки і финансах.

2. З. Браун, Visual Basic 5.0 від початку, Москва 1999, видавництво «Питер».

3. Microsoft Visual Basic — on-Line HELP.

ДОДАТОК 1.

ПРОГРАМА НА МОВІ MICROSOFT VISUAL BASIC.

Модуль 1: Sub Return_To_MainMenu () Worksheets («Зміст »).Activate End Sub.

Модуль 2: Sub Task1() Worksheets («Задание1 »).Activate End Sub Sub Task2() Worksheets («Задание2 »).Activate End Sub Sub Task3() Worksheets («Задание3 »).Activate End Sub Sub Task4() Worksheets («Задание4 »).Activate End Sub Sub Task1_Evrica () Dim mas1(3) As Integer Dim mas2(3) As Integer Dim Mas_I1(3) As Integer B = Worksheets («Задание1 »).Range («B11 »).Value з = Worksheets («Задание1 »).Range («C11 »).Value D = Worksheets («Задание1 »).Range («D11 »).Value mas1(1) = B mas1(2) = з mas1(3) = D і = 1 l = 0 Do k = mas1(i).

" «» «» Занесення в масив Mas2 эл-тов >1490.

If k > 1490 Then mas2(i) = mas1(i) Else mas2(i) = 0 і = і + 1 Loop Until і = 4.

Max = -1 і = 0 Do і = і + 1.

If mas2(i) > Max Then.

Max = mas2(i) indm = i.

End If Loop Until і = 3 Worksheets («Задание1 »).Cells (12, indm + 1).Value = Max * 0.02 + Max * 0.04 «Worksheets («Задание1 »).Range («f15 »).Value = r.

" GoTo l «» «» «Знаходимо MAx эл-т які залишилися, «» «» «і запам’ятовуємо його индеск Max = -1 і = 0 Do і = і + 1.

If і indm And mas2(i) > Max Then.

Max = mas2(i) indm2 = i.

End If Loop Until і = 3 Worksheets («Задание1 »).Cells (12, indm2 + 1).Value = Max * 0.02 + Max * 0.02 «» «» «Знаходимо MAx эл-т які залишилися, «» «» «і запам’ятовуємо його индеск Max = -1 і = 0 Do і = і + 1.

If mas2(i) > Max And і indm2 And і indm Then.

Max = mas2(i) indm3 = i.

End If Loop Until і = 3 Worksheets («Задание1 »).Cells (12, indm3 + 1).Value = Max * 0.02 + Max * 0.01 End Sub Sub Task2_Evrica () Dim AA1(3) As Integer B = Worksheets («Задание2 »).Range («B11 »).Value з = Worksheets («Задание2 »).Range («C11 »).Value D = Worksheets («Задание2 »).Range («D11 »).Value AA1(1) = B AA1(2) = з AA1(3) = D і = 0 Do і = і + 1 If AA1(i) < 700 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.01 If AA1(i) >= 700 And AA1(i) < 1400 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.015 If AA1(i) >= 1400 And AA1(i) < 2800 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.023 If AA1(i) >= 2800 Then Worksheets («Задание2 »).Cells (12, і + 1).Value = Worksheets («Задание2 »).Cells (11, і + 1).Value * 0.025 Loop Until і = 3 End Sub Sub Task3_Evrica () Dim AA2(10) As Integer.

Dim MM1(10) As Integer Dim MM2(10) As Integer Dim MM3(10) As Integer Dim MM4(10) As Integer Dim MM5(10) As Integer.

Worksheets («Задание3 »).Range («I3:I12 »).Clear Worksheets («Задание3 »).Range («b3:h12 »).Font.Bold = False Worksheets («Задание3 »).Range («b3:h12 »).Font.Size = 10 Worksheets («Задание3 »).Range («b3:h12 »).Font.Italic = False і = 0 Do і = і + 1 AA2(i) = Worksheets («Задание3 »).Cells (i + 2, 7).Value Loop Until і = 9 Max = -1 і = 0 Do і = і + 1 If AA2(i) > Max Then Max = AA2(i) mm = і End If Loop Until і = 9.

Worksheets («Задание3 »).Cells (mm + 2, 8).Value = «Макс. Ціна товару «Min = 100 000 і = 0 Do і = і + 1 If AA2(i) < Min Then Min = AA2(i) mm2 = і End If Loop Until і = 9 Worksheets («Задание3 »).Cells (mm2 + 2, 8).Value = «Миним. Ціна товару «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» і = 0 Do і = і + 1 MM1(i) = Worksheets («Задание3 »).Cells (i + 2, 2).Value MM2(i) = Worksheets («Задание3 »).Cells (i + 2, 3).Value MM3(i) = Worksheets («Задание3 »).Cells (i + 2, 4).Value MM4(i) = Worksheets («Задание3 »).Cells (i + 2, 5).Value MM5(i) = Worksheets («Задание3 »).Cells (i + 2, 6).Value Loop Until і = 9 «» «» 1 Min = 100 000 і = 0 Do і = і + 1 If MM1(i) < Min Then Min = MM1(i) x1 = і End If Loop Until і = 9 Worksheets («Задание3 »).Cells (x1 + 2, 2).Font.Bold = True Worksheets («Задание3 »).Cells (x1 + 2, 2).Font.Size = 11 Worksheets («Задание3 »).Cells (x1 + 2, 2).Font.Italic = True «» «» 2 Min = 100 000 і = 0 Do і = і + 1 If MM2(i) < Min Then Min = MM2(i) x2 = і End If Loop Until і = 9 Worksheets («Задание3 »).Cells (x2 + 2, 3).Font.Bold = True Worksheets («Задание3 »).Cells (x2 + 2, 3).Font.Size = 11 Worksheets («Задание3 »).Cells (x2 + 2, 3).Font.Italic = True «» «» 3 Min = 100 000 і = 0 Do і = і + 1 If MM3(i) < Min Then Min = MM3(i) x3 = і End If Loop Until і = 9 Worksheets («Задание3 »).Cells (x3 + 2, 4).Font.Bold = True Worksheets («Задание3 »).Cells (x3 + 2, 4).Font.Size = 11 Worksheets («Задание3 »).Cells (x3 + 2, 4).Font.Italic = True «» «» 4 Min = 100 000 і = 0 Do і = і + 1 If MM4(i) < Min Then Min = MM4(i) x4 = і End If Loop Until і = 9 Worksheets («Задание3 »).Cells (x4 + 2, 5).Font.Bold = True Worksheets («Задание3 »).Cells (x4 + 2, 5).Font.Size = 11 Worksheets («Задание3 »).Cells (x4 + 2, 5).Font.Italic = True «» «» 5 Min = 100 000 і = 0 Do і = і + 1 If MM5(i) < Min Then Min = MM5(i) x5 = і End If Loop Until і = 9 Worksheets («Задание3 »).Cells (x5 + 2, 6).Font.Bold = True Worksheets («Задание3 »).Cells (x5 + 2, 6).Font.Size = 11 Worksheets («Задание3 »).Cells (x5 + 2, 6).Font.Italic = True «» «» 6 End Sub Sub Task5() Worksheets («Задание5 »).Activate End Sub Sub Task6() Worksheets («Задание5 »).Activate End Sub Sub Task5_Evrica () Dim G (4, 4) Dim c (4) c (1) = Worksheets («Задание5 »).Range («a1 ») c (2) = Worksheets («Задание5 »).Range («b1 ») c (3) = Worksheets («Задание5 »).Range («c1 ») c (4) = Worksheets («Задание5 »).Range («d1 ») Worksheets («Задание5 »).Range («a3:d6 »).Value = ««.

For і = 1 To 4 For j = 1 To 4 If і j + 1 Then G (i, j) = Abs (c (i — j) ^ 3 — c (i)) Next Next For і = 1 To 4 For j = 1 To 4 Worksheets («Задание5 »).Cells (i + 2, j).Value = G (i, j) Next Next End Sub Sub Task6_Evrica () Dim X (4) Dim Y (4) X (1) = Worksheets («Задание5 »).Range («a12 ») X (2) = Worksheets («Задание5 »).Range («a13 ») X (3) = Worksheets («Задание5 »).Range («a14 ») X (4) = Worksheets («Задание5 »).Range («a15 ») Y (1) = Worksheets («Задание5 »).Range («b12 ») Y (2) = Worksheets («Задание5 »).Range («b13 ») Y (3) = Worksheets («Задание5 »).Range («b14 ») Y (4) = Worksheets («Задание5 »).Range («b15 ») s1 = 0 s2 = 0 s3 = 0 m = 4 For і = 1 To m s1 = s1 + X (i) s2 = s2 + X (i) * Y (i) s3 = s3 + X (i) * X (i) Next p. s = (2 * s1 + s2) * (2 — s1) + 3 + s3 Worksheets («Задание5 »).Range («D15 »).Value = p. s End Sub Sub Task7() Worksheets («Розплющ »).Activate End Sub Sub Task7_DB () UserForm1. ComboBox1.Clear UserForm1. ComboBox2.Clear UserForm1. ComboBox3.Clear.

UserForm1.ComboBox1.AddItem («Директор ») UserForm1. ComboBox1.AddItem («Заст. директора ») UserForm1. ComboBox1.AddItem («Менеджер ») UserForm1. ComboBox1.AddItem («Сектетарь ») UserForm1. ComboBox1.AddItem («Адміністратор ») UserForm1. ComboBox1.AddItem («Охорона ») UserForm1. ComboBox1.AddItem («Водій ») UserForm1. ComboBox1.AddItem («Сторож ») UserForm1. ComboBox1.AddItem («Прибиральник »).

UserForm1.ComboBox2.AddItem («10 років. ») UserForm1. ComboBox2.AddItem («9 років. ») UserForm1. ComboBox2.AddItem («8 років. ») UserForm1. ComboBox2.AddItem («3 року. ») UserForm1. ComboBox2.AddItem («2 року. ») UserForm1. ComboBox2.AddItem («1 рік. ») UserForm1. ComboBox2.AddItem («менше року. »).

UserForm1.ComboBox3.AddItem («5 годин ») UserForm1. ComboBox3.AddItem («6 годин ») UserForm1. ComboBox3.AddItem («7 годин ») UserForm1. ComboBox3.AddItem («8 годин »).

UserForm1.Show End Sub Sub Task7_List () Worksheets («БД »).Activate End Sub Sub Model_of_storekeeping () UserForm2. Show End Sub.

Модуль 3:

Option Explicit «МОДЕЛЬ УПРАВЛІННЯ ЗАПАСАМИ.

Function CALC (buy As Variant) As Variant Dim Цена_продажы, Цена_покупки, Цена_возврата, NRows, і, j As Integer, Result () As Integer NRows = buy.Rows.Count Цена_продажы = Range («a2 »).Value Цена_покупки = Range («b2 »).Value Цена_возврата = Range («c2 »).Value ReDim Result (NRows, NRows) For і = 1 To NRows For j = 1 To NRows If і j Then Result (i, j) = buy (j) * (Цена_продажы — Цена_покупки) — (buy (i) — buy (j)) * (Цена_покупки — Цена_возврата) Next j Next і CALC = Result End Function.

Sub Begin () Worksheets («Зміст »).Activate End Sub Sub Optimum_capital_investmentsEVR () Dim і, j, k, n, p, l, t As Integer Dim m, r (), A () As Double k = 7.

ReDim r (k + 1, 6), A (k + 1).

For і = 1 To k + 1.

For j = 2 To 7 r (i, j — 1) = Cells (i + 3, j).Value.

Next j.

Next і t = 2.

For p = 2 To 6.

If p = 2 Then.

For j = 1 To k + 1.

A (j) = Cells (j + 3, 2).Value.

Next j.

End If.

If p > 2 Then.

For j = 1 To k + 1.

A (j) = Cells (j + 3, p + 5).Value.

Next j.

End If.

For n = 1 To k + 1 m = -1.

For j = 1 To n.

If m.

End If.

Next j.

Cells (n + 3, 6 + p).Value = m l = t.

For j = 1 To n.

If m = A (j) + r (n + 1 — j, p) Then.

Cells (n + 6 + k, l).Value = j — 1.

Cells (n + 6 + k, l + 1).Value = n — j l = l + 2.

End If.

Next j.

Next n t = l.

Next p End Sub.

Модуль 4:

Sub Розплющ () Dim r, i1, i2, i3, i4, p. s, t As Integer Dim l, a1, a2, a3, a4, a5, m As Integer.

" Dim F, TT, SS, ZZ As String.

l = 28 a1 = 4: a2 = 6 a3 = 9: a4 = 11 r = 4 m = Application. Min (a1, a2, a3, a4) t = Application. Floor (l / m, 1) For i1 = 0 To t For i2 = 0 To t For i3 = 0 To t For i4 = 0 To t p. s = 28 — a1 * i1 — a2 * i2 — a3 * i3 — a4 * i4 If p. s >= 0 And p. s < m Then Cells (r, 1).Value = r — 3 Cells (r, 2).Value = i1 Cells (r, 3).Value = i2 Cells (r, 4).Value = i3 Cells (r, 5).Value = i4 Cells (r, 6).Value = p. s r = r + 1 End If Next i4 Next i3 Next i2 Next i1 Range («J4 »).FormulaLocal = «=СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;B4:B «& r — 1 & «) «Range («K4 »).FormulaLocal = «=СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;C4:C «& r — 1 & «) «Range («L4 »).FormulaLocal = «=СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;D4:D «& r — 1 & «) «Range («M4 »).FormulaLocal = «=СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;E4:E «& r — 1 & «) «Range («N4 »).FormulaLocal = «=СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;F4:F «& r — 1 & «)+B3*(СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;B4:B «& r — 1 & «) — J3)+C3*(СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;C4:C «& r — 1 & «) — K3)+D3*(СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;D4:D «& r — 1 & «) — L3)+E3*(СУММПРОИЗВ ($I$ 4:$I$ «& r — 1 & «;E4:E «& r — 1 & «)-M3) «End Sub Sub Optimum_capital_investments () Worksheets («Опт.капитал »).Activate End Sub.

UserFORM1.

Обработчик події кнопки Private Sub CommandButton1_Click () If UserForm1. TextBox1. Text = «» Then GoTo ll і = 0 Do і = і + 1 Loop Until Worksheets («БД »).Cells (i, 1) = «» Worksheets («БД »).Cells (i, 1) = UserForm1. TextBox1. Text Worksheets («БД »).Cells (i, 2) = UserForm1. TextBox3. Text If UserForm1. CheckBox2 = True Then.

Worksheets («БД »).Cells (i, 6) = «Є «.

Else.

Worksheets («БД »).Cells (i, 6) = «Ні «End If If UserForm1. CheckBox1 = True Then Worksheets («БД »).Cells (i, 7) = «Є «Else Worksheets («БД »).Cells (i, 7) = «Ні «End If Worksheets («БД »).Cells (i, 8) = UserForm1. TextBox5. Text + «грв. «Worksheets («БД »).Cells (i, 9) = UserForm1. TextBox2. Text Worksheets («БД »).Cells (i, 10) = UserForm1. TextBox6. Text + «міс. «.

If UserForm1. OptionButton3 = True Then Worksheets («БД »).Cells (i, 11).Value = «Є сім'я «If UserForm1. OptionButton4 = True Then Worksheets («БД »).Cells (i, 11).Value = «Ні сім'ї «.

If UserForm1. OptionButton5 = True Then Worksheets («БД »).Cells (i, 12).Value = «M «If UserForm1. OptionButton6 = True Then Worksheets («БД »).Cells (i, 12).Value = «Ж «.

Worksheets («БД »).Cells (i, 3).Value = ComboBox1. Value Worksheets («БД »).Cells (i, 4).Value = ComboBox2. Value Worksheets («БД »).Cells (i, 5).Value = ComboBox3.Value.

ll: UserForm1. Hide Worksheets («БД »).Activate End Sub.

Обработчик події кнопки Private Sub CommandButton2_Click () UserForm1. Hide Worksheets («БД »).Activate End Sub.

UserForm2.

Обработчик події кнопки Private Sub CommandButton1_Click () Worksheets («Задание4 »).Range («c10:h15 »).Value = «» Worksheets («Задание4 »).Range («j11:j16 »).Value = «» Worksheets («Задание4 »).Range («b2 »).Value = UserForm2. TextBox1 Worksheets («Задание4 »).Range («a2 »).Value = UserForm2. TextBox2 Worksheets («Задание4 »).Range («c2 »).Value = UserForm2. TextBox3 UserForm2. Hide Range («C10:H15 »).FormulaArray = «=Модуль3.CALC (I11:I16) «Range («J11:J16 »).FormulaArray = «=MMULT ((C10:H15), TRANSPOSE (d7:i7)) «Range («f16 »).Select ActiveCell. FormulaR1C1 = «=large (r[-5]c[4]: rc[4], 1) «Range («f17 »).Select ActiveCell. FormulaR1C1 = «=(match (large (r[-6]c[4]: r[-1]c[4], 1), r[- 6]c[4]: r[-1]c[4], 0)-1)*5 «r = Range («f16 »).Value v = Range («f17 »).Value UserForm3. Label3.Caption = Worksheets («Задание4 »).Range («f16 ») UserForm3. Label4.Caption = Worksheets («Задание4 »).Range («f17 ») UserForm3. Show End Sub.

Обработчик події кнопки Private Sub CommandButton2_Click () UserForm2. Hide End Sub.

UserForm3.

Private Sub CommandButton1_Click () UserForm3. Hide End Sub.

Показати весь текст
Заповнити форму поточною роботою