649

Створення програмної оболонки інформаційної системи обліку в Microsoft Excel VBA

Реферат

Информатика, кибернетика и программирование

Розробити книгу у MS Excel 2000 і скласти програму на мові Excel VBA для обліку нарахування заробітної плати. Ввести текстові і числові дані, записати формули, встановити зв'язок між основною таблицею та довідниками та виконати форматування таблиць. Скласти програму на мові Excel VBA.

Украинкский

2013-01-06

202 KB

71 чел.

Міністерство освіти і науки, молоді та спорту України
Полтавський Національний університет імені Юрія Кондратюка
Факультет менеджменту та бізнесу

Кафедра економічної кібернетики

Реферат

з дисципліни: "Економічна кібернетика"

на тему : «Створення програмної оболонки інформаційної системи обліку в MicrosoftExcelVBA»

 

 

 

Виконав: студент групи 201-EK Рома А.В.

Перевірив:

Доцент Харченко Ю.А.

Полтава 2011 р.

Зміст

Зміст 3

Постановка задачі 4

ЕТ, зміст таблиць, розрахункові формули 6

Форма користувача 9

Таблиця ідентифікаторів, текст програми 11

Пояснювальний текст 28

Інструкція для користувача 30

Висновок 31

Список використаної літератури 32

Постановка задачі

Розробити книгу у MS Excel 2000 і скласти програму на мові Excel VBA для обліку нарахування заробітної плати. Основна таблиця повинна містити не менше ніж 30 записів, та складатися з таких полів: №п.п., Прізвище, Ім’я, Розряд, Умови Роботи, Відпрацьовано годин, Тарифна ставка, Коефіцієнт умови роботи, Нараховано, Податок з прибутку, Профспілковий внесок, Внесок у пенсійний фонд, Всього утримано, До видачі. Передбачити обчислення останніх 6 полів.

Також повинно бути два довідники: «Довідник умов роботи», 5 записів, який складається з наступних полів: Код умови роботи, умова роботи, коефіцієнт умови ; та «Довідник розрядів», 5 записів, який складається з наступних полів: Код розряду, розряд, тарифна ставка.

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

Скласти програму на мові Excel VBA:

  1.  Створити форму шляхом написання програмного коду;
  2.  На формі передбачити розташування наступних об’єктів:

Поля і списки БД;

Кнопки переходу по записам таблиці: «наступний», «попередній», «перший», «останній»;

Кнопки: «редагувати», «доповнити», «зберегти», «відмінити», видалити», кнопку «вихід» з аналізом коректності виходу. А також розробити власну процедуру.


ЕТ, зміст таблиць, розрахункові формули

Рис1.1 Облік нарахування заробітної плати.


В Таблиці 1 наведено облік нарахування заробітної плати на підприємстві «Н». В Даній таблиці вказано такі поля: №п.п., Прізвище, Ім’я, Розряд, Умови Роботи, Відпрацьовано годин, Тарифна ставка, Коефіцієнт умови роботи, Нараховано, Податок з прибутку, Профспілковий внесок, Внесок у пенсійний фонд, Всього утримано, До видачі.

Серед них ми маємо 4 поля що маємо самостійно заповнювати, а всі інші містять формули або ж використовують при їх заповнені випадаючі списки. За допомогою останніх було виповнено поля «Розряд»  й «Умови роботи». Списки створювалися на основі «Довідника умов роботи» (значення комірок стовпця «умова роботи») та «Довідника розрядів» (значення комірок стовпця «розряд»). Процедура створення списків: Пункт меню «Данные»\«Проверка»\«Список», з подальшим вибором діапазону значень з відповідних довідників.

За допомогою функції «ВПР» створено такі поля: «Тарифна ставка» і «Коефіцієнт умови роботи». Вона має такий вигляд:

1) =ВПР(L3;$F$3:$G$7;2;0)

2) =ВПР(M3;$B$3:$C$7;2;0)

Відповідно синтаксис цієї формули:

«L3» - значення в основній таблиці, на яке орієнтується пошук формули відповідного значення в довіднику.

«$F$3:$G$7» діапазон таблиці з довідника в якій буде відбуватися пошук значення з закріпленням, ($ - використовується для закріплення значень, аби під час копіювання не відбувалося зрушень значень).

«2» стовпець у довіднику у якому знаходиться шукане значення.

«0» інтервальний перегляд.

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

Для поля: «Податок з прибутку використано формулу «ЕСЛИ», такого вигляду:

=ЕСЛИ(Q3<=3000;Q3*0,15;(ЕСЛИ(И(Q3>=3000;Q3<=5000);Q3*0,25;ЕСЛИ(Q3>=5000;Q3*0,35;))))

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

В інших комірках використані звичайні математичні формули :

«Нараховано» =N3*O3*P3;

«Профспілковий внесок» =Q3*0,1;

«Внесок у пенсійний фонд» =Q3*0,03;

«Всього утримано» =R3+S3+T3;

«До видачі» =Q3-U3.

Крім головної таблиці мною в книзі MSExcel, було розроблено 2 довідники, які представлено нижче в табличній формі.

Таблиця 2

«Довідник умов роботи»

Довідник умов роботи

Код умови роботи

Умова роботи

Коефіцієнт умови

10010

дуже ниизької небезпечності

1

10020

низької небезпечності

1,06

10030

середньої небезпечності

1,18

10040

високої небезпечності

1,24

10050

дуже високої небезпечності

1,35

Таблиця 3

«Довідник розрядів»

Довідник розрядів

Код розряду

Розряд

Тарифна ставка за годину

1500AA

1

10

1500AB

2

14,5

1500AC

3

18

1500AD

4

22,3

1500AE

5

25

Всі вище представлені електронні таблиці було розроблено для обліку реалізації товарів в крамниці.

Форма користувача

Наведену нижче форму користувача було створено в редакторі ExcelVBA.

Рис1.2 Форма користувача

В даній формі було створено:  Поля і списки нашої ЕТ, а точніше БД.

Кнопки навігації в БД: «Попередній»,  «Наступний», «Перший», «Останній»;

Також кнопки редагування записів: «Доповнити», «Редагувати», «Видалити», «Відмінити».

Дві спеціальні процедури: «Всього утримано», «Видалити діапазон».

Кнопки загальних опцій: «Зберегти» та «Вихід» з даної форми БД.


Таблиця ідентифікаторів, текст програми

Таблиця 3

Таблиця ідентифікаторів.

№п.п.

npp

Прізвище

pri

Ім’я

noc

Розряд

roz

Умови роботи

ymo

Відпрацьовано годин

vidgod

Тарифна ставка

tarsta

Коефіцієнт умови роботи

koeymo

Нараховано

nar

Податок з прибутку

podpru

Профспілковий внесок

provne

Внесок у пенсійний фонд

vnepen

Всього утримано

vsoytr

До видачі

vud

Загальна сума

zag

Редагувати

reda

Доповнити

dopo

Зберегти

zber

Відмінити

vidm

Видалити

vuda

Вихід

vuhi

Попередній

pope

Перший

pers

Наступний

nast

Останній

osta

Всього утримано

proc1

Видалити діапазон

proc2

Російська

rus

Українська

ukr

Текст програми з коментарями:

'Оголошення змінних різного типу

Dim a1, a2, i As String

Dim rrr As Integer

Dim w, pr1, pr2 As Double

'Обрахування формул

Private Sub Nocturne()

'Присвоєння активній комірці значення «ad»

ad = ActiveCell.Address

'Задання «Довідника умов роботи»

Range("B3").Select

Do While ActiveCell.Value <> ""

   If ActiveCell.Text = ymo.Text Then

   koeymo.Text = ActiveCell.Offset(0, 1).Value

   pr1 = ActiveCell.Offset(0, 1).Value

   End If

   ActiveCell.Offset(1, 0).Select

   Loop

'Задання «Довідника розрядів»

Range("F3").Select

Do While ActiveCell.Value <> ""

   If ActiveCell.Text = roz.Text Then

   tarsta.Text = ActiveCell.Offset(0, 1).Value

   pr2 = ActiveCell.Offset(0, 1).Value

   End If

   ActiveCell.Offset(1, 0).Select

   Loop

'Посилання на активну комірку

Range(ad).Select

'Формула поля «Нараховано»

nar.Text = Format(Int(pr1 * pr2 * Val(vidgod) * 100) / 100, "0.00")

'Задання умови для поля «Податок з прибутку» з визначенням проценту

If nar.Value >= 5000 Then

pzp = 0.35

ElseIf nar.Value >= 3000 Then

pzp = 0.25

Else

pzp = 0.15

End If

'Формула поля «Податок з прибутку»

podpru.Text = Format((Val(nar) * pzp), "0.00")

'Формула поля «Профспілковий внесок»

provne.Text = Format((Val(nar) * 0.1), "0.00")

'Формула поля «Внесок у пенсійний фонд»

vnepen.Text = Format((Val(nar) * 0.03), "0.00")

'Формула поля «Всього утримано»

vsoytr.Text = Format((Val(podpru) + Val(provne) + Val(vnepen)), "0.00")

'Формула поля «До видачі»

vud.Text = Format((Val(nar) - Val(vsoytr)), "0.00")

End Sum

'Кнопка «Всього утримано»

Sub proc1_Click()

'Повідомлення з розрахованим результатом

MsgBox "Вартість утриманих коштів, грн = " & Application.Sum(Range("U3:U40"))

End Sum

'Кнопка «Видалити діапазон»

Sub proc2_Click()

'Аналіз коректності видалення певного діапазону

If MsgBox("Ви дійсно бажаєте видалити певний діапазон?", vbYesNo, "Видалення діапазону") = vbYes Then

   Dim UserRange As Range

'Стандартне виділення комірок

   DefaultRange = Selection.Address

   On Error GoTo Canceled

'Встановлення користувачем діапазону

   Set UserRange = Application.InputBox _

       (Prompt:="Видалити діапазон :", _

       Title:="Очищення діапазону", _

       Default:=DefaultRange, _

       Type:=8)

'Видалення вибраного діапазону

   UserRange.Clear

'Виділення вибраного діапазону

   UserRange.Select

Canceled:

End If

'Повернення до основної таблиці

Range("I3").Select

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

End Sub

'Поле форми «Умови роботи»

Private Sub ymo_Change()

'Виклик процедури з заданою формулою

Call Nocturne

End Sum

'Поле форми «Розряд»

Private Sub roz_Change()

'Виклик процедури з заданою формулою

Call Nocturne

End Sum

'Поле форми відпрацьовано годин

Private Sub vidgod_Change()

'Виклик процедури з заданою формулою

Call Nocturne

End Sum

'Кнопка «Доповнити»

Private Sub dopo_Click()

'Фіксація значень кнопок «Наступний» та «Попередній»

a2 = nast.Enabled

a1 = pope.Enabled

'Змінна вибору режиму

i = 1

'Активність кнопок

dopo.Enabled = False

zber.Enabled = True

vidm.Enabled = True

vuda.Enabled = False

reda.Enabled = False

vuhi.Enabled = False

pope.Enabled = False

nast.Enabled = False

pers.Enabled = False

osta.Enabled = False

'Спустошення значень полів форми

npp.Text = ""

pri.Text = ""

noc.Text = ""

roz.Text = ""

ymo.Text = ""

vidgod.Text = ""

tarsta.Text = ""

koeymo.Text = ""

nar.Text = ""

podpru.Text = ""

provne.Text = ""

vnepen.Text = ""

vsoytr.Text = ""

vud.Text = ""

zag.Text = ""

'Доступ до редагування полів форми

pri.Locked = False

noc.Locked = False

roz.Locked = False

ymo.Locked = False

vidgod.Locked = False

pri.SetFocus

End Sub

'Кнопка «Наступний»

Private Sub nast_Click()

'Введення полів форми

ActiveCell.Offset(1, 0).Select

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

pope.Enabled = True

pers.Enabled = True

'Умова існування переходу на наступний запис

If ActiveCell.Offset(1, 0).Text = "" Then

'Активність кнопок

osta.Enabled = False

nast.Enabled = False

'Повідомлення про закінчення записів

MsgBox ("Останній запис")

'Зосередження на кнопці «Попередній»

pope.SetFocus

End If

End Sub

'Кнопка «Останній»

Private Sub osta_Click()

'Перехід на останній запис

Do While ActiveCell.Offset(1, 0).Value <> ""

ActiveCell.Offset(1, 0).Select

Loop

'Виведення полів форми

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

'Активність кнопок

pers.Enabled = True

pope.Enabled = True

nast.Enabled = False

osta.Enabled = False

End Sub

'Кнопка «Перший»

Private Sub pers_Click()

'Обрання першого запису

Range("I3").Select

'Виведення полів форми

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

'Активність кнопок

pers.Enabled = False

pope.Enabled = False

nast.Enabled = True

osta.Enabled = True

End Sub

'Кнопка «Попередній»

Private Sub pope_Click()

'Перехід на попередній запис

ActiveCell.Offset(-1, 0).Select

'Виведення полів форми

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

'Активність кнопок

nast.Enabled = True

osta.Enabled = True

'Умова існування переходу на попередній запис

If ActiveCell.Row = 3 Then

pers.Enabled = False

pope.Enabled = False

MsgBox ("Перший запис")

'Зосередження на кнопці «Наступний»

nast.SetFocus

End If

End Sub

'Кнопка «Редагувати»

Private Sub reda_Click()

'Змінна вибору режиму

i = 2

'Фіксація значень кнопок «Наступний» та «Попередній»

a1 = pope.Enabled

a2 = nast.Enabled

'Активність кнопок

dopo.Enabled = False

zber.Enabled = True

vidm.Enabled = True

vuda.Enabled = False

reda.Enabled = False

vuhi.Enabled = False

pope.Enabled = False

nast.Enabled = False

pers.Enabled = False

osta.Enabled = False

'Змінні для полів БД

y1 = npp

y2 = pri

y3 = noc

y4 = roz

y5 = ymo

y6 = vidgod

y7 = tarsta

y8 = koeymo

y9 = nar

y10 = podpru

y11 = provne

y12 = vnepen

y13 = vsoytr

y14 = vud

y15 = zag

'Доступ до редагування полів форми

pri.Locked = False

noc.Locked = False

roz.Locked = False

ymo.Locked = False

vidgod.Locked = False

'Зосередження на полі «Прізвище»

pri.SetFocus

End Sub

'Конпка «Російською»

Private Sub rus_Click()

'Умова працеспроможності кнопки

If Label2.Caption = "Прізвище" Then

'Зміна назв найменувань надписів щодо полів

Label2.Caption = "Фамилия"

Label3.Caption = "Имя"

Label4.Caption = "Розряд"

Label5.Caption = "Условия работы"

Label6.Caption = "Отработано часов"

Label7.Caption = "Тарифная ставка"

Label8.Caption = "Коэффициент условия работы"

Label9.Caption = "Начислено"

Label10.Caption = "Налог с прибыли"

Label11.Caption = "Профсоюзный вклад"

Label12.Caption = "Вклад в пенсионный фонд"

Label13.Caption = "Вего удржано"

Label14.Caption = "К  выдаче"

Label15.Caption = "Общая сумма"

'Зміна назв найменувань надписів

Label16.Caption = "Навигация"

Label17.Caption = "Редактирование"

Label18.Caption = "Общин опции"

Label19.Caption = "Процедуры"

'Зміна назв найменувань кнопок

pope.Caption = "Предыдущий"

nast.Caption = "Следующий"

pers.Caption = "Первый"

osta.Caption = "Последний"

dopo.Caption = "Дополнить"

reda.Caption = "Редактировать"

vuda.Caption = "Удалить"

vidm.Caption = "Отменить"

zber.Caption = "Сохранить"

vuhi.Caption = "Выход"

proc1.Caption = "Вего удержано"

proc2.Caption = "Удалить диапазон"

End If

End Sub

'Кнопка «Українською»

Private Sub ukr_Click()

'Умова працеспроможності кнопки

If Label2.Caption = "Фамилия" Then

'Зміна назв найменувань надписів щодо полів

Label2.Caption = "Прізвище"

Label3.Caption = "Ім’я"

Label4.Caption = "Розряд"

Label5.Caption = "Умови роботи"

Label6.Caption = "Відпрацьовано годин"

Label7.Caption = "Тарифна ставка"

Label8.Caption = "Коефіцієнт умови роботи"

Label9.Caption = "Нараховано "

Label10.Caption = "Податок з прибутку"

Label11.Caption = "Профспілковий внесок"

Label12.Caption = "Внесок у пенсійний фонд"

Label13.Caption = "Всього утримано"

Label14.Caption = "До видачі"

Label15.Caption = "Загальна сума"

'Зміна назв найменувань надписів

Label16.Caption = "Навігація"

Label17.Caption = "Редагування"

Label18.Caption = "Загальні опції"

Label19.Caption = "Процедури"

'Зміна назв найменувань кнопок

pope.Caption = "Попередній"

nast.Caption = "Наступний"

pers.Caption = "Перший"

osta.Caption = "Останній"

dopo.Caption = "Доповнити"

reda.Caption = "Редагувати"

vuda.Caption = "Видалити"

vidm.Caption = "Відмінити"

zber.Caption = "Зберегти"

vuhi.Caption = "Вихід"

proc1.Caption = "Усього утримано"

proc2.Caption = "Видалити діапазон"

End If

End Sum

' «Активізація форми»

Private Sub UserForm_activate()

'Створення списку розрядів

Range("F3").Select

Do While ActiveCell.Value <> ""

roz.AddItem ActiveCell.Value

ActiveCell.Offset(1, 0).Select

Loop

'Створення списку умов роботи

Range("B3").Select

Do While ActiveCell.Value <> ""

ymo.AddItem ActiveCell.Value

ActiveCell.Offset(1, 0).Select

Loop

'Обчислення загальної суми з./п.

w = 0

Range("V3").Select

Do While ActiveCell.Value <> ""

w = w + ActiveCell.Value

ActiveCell.Offset(1, 0).Select

Loop

'Активізація першого запису таблиці

Range("I3").Select

'Номер по порядку

npp.Text = ActiveCell.Value

'Прізвище

pri.Text = ActiveCell.Offset(0, 1).Value

'Ім’я

noc.Text = ActiveCell.Offset(0, 2).Value

'Розряд

roz.Text = ActiveCell.Offset(0, 3).Value

'Умова роботи

ymo.Text = ActiveCell.Offset(0, 4).Value

'Відпрацьовано годин

vidgod.Text = ActiveCell.Offset(0, 5).Value

'Тарифна ставка

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

'Коефіцієнт умови

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

'Нараховано

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

'Податок з прибутку

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

'Профспілковий внесок

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

'Внесок у пенсійний фонд

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

'Всього утримано

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

'До видачі

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

'Загальна сума

zag.Text = Format((w), "#0.00")

'Доступ до редагування полів форми

npp.Locked = True

pri.Locked = True

noc.Locked = True

roz.Locked = True

ymo.Locked = True

vidgod.Locked = True

tarsta.Locked = True

koeymo.Locked = True

nar.Locked = True

podpru.Locked = True

provne.Locked = True

vnepen.Locked = True

vsoytr.Locked = True

vud.Locked = True

zag.Locked = True

'Активність кнопок

'navigation comands

pope.Enabled = False

nast.Enabled = True

pers.Enabled = False

osta.Enabled = True

'editing comands

reda.Enabled = True

dopo.Enabled = True

vuda.Enabled = True

vidm.Enabled = False

'general comands

zber.Enabled = False

vuhi.Enabled = True

End Sum

'Кнопка «Відмінити»

Private Sub vidm_Click()

'Повернення початкових значень

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

'Доступ до редагування полів форми

npp.Locked = True

pri.Locked = True

noc.Locked = True

roz.Locked = True

ymo.Locked = True

vidgod.Locked = True

tarsta.Locked = True

koeymo.Locked = True

nar.Locked = True

podpru.Locked = True

provne.Locked = True

vnepen.Locked = True

vsoytr.Locked = True

vud.Locked = True

zag.Locked = True

'Активність кнопок

pope.Enabled = a1

pers.Enabled = a1

nast.Enabled = a2

osta.Enabled = a2

zber.Enabled = False

vidm.Enabled = False

dopo.Enabled = True

reda.Enabled = True

vuhi.Enabled = True

vuda.Enabled = True

End Sub

'Кнопка «Видалити»

Private Sub vuda_Click()

'Аналіз коректності видалення

If MsgBox("Ви точно хочете видалити запис?", vbYesNo, "Так") = vbYes Then

'Задання діапазону видалення

Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(ActiveCell.Row, ActiveCell.Column + 32)).Select

Selection.Delete Shift:=xlUp

If ActiveCell.Text = "" Then

ActiveCell.Offset(-1, 0).Select

'Автвність нопок

nast.Enabled = False

osta.Enabled = False

ElseIf ActiveCell.Offset(1, 0).Text = "" Then

nast.Enabled = False

osta.Enabled = False

End If

End If

'Обрання наступного (після видаленого поля) запису

npp.Text = ActiveCell.Value

pri.Text = ActiveCell.Offset(0, 1).Value

noc.Text = ActiveCell.Offset(0, 2).Value

roz.Text = ActiveCell.Offset(0, 3).Value

ymo.Text = ActiveCell.Offset(0, 4).Value

vidgod.Text = ActiveCell.Offset(0, 5).Value

tarsta.Text = Format((ActiveCell.Offset(0, 6).Value), "#0.00")

koeymo.Text = Format((ActiveCell.Offset(0, 7).Value), "#0.00")

nar.Text = Format((ActiveCell.Offset(0, 8).Value), "#0.00")

podpru.Text = Format((ActiveCell.Offset(0, 9).Value), "#0.00")

provne.Text = Format((ActiveCell.Offset(0, 10).Value), "#0.00")

vnepen.Text = Format((ActiveCell.Offset(0, 11).Value), "#0.00")

vsoytr.Text = Format((ActiveCell.Offset(0, 12).Value), "#0.00")

vud.Text = Format((ActiveCell.Offset(0, 13).Value), "#0.00")

zag.Text = Format((w), "#0.00")

End Sub

'Кнопка «Вихід»

Private Sub vuhi_Click()

'Аналіз коректності дій користувача

If MsgBox("Ви дійсно бажаєте завершити роботу з програмою??", vbYesNo, "Підтвердження виходу") = vbYes Then

Unload Zarplata

End If

End Sub

'Кнопка «Зберегти»

Private Sub zber_Click()

'Режим доповнення

If i = 1 Then

'Задання області збереження поля

Range("I3:V3").Select

Selection.Copy

'Цикл з умовою

Do While ActiveCell.Value <> ""

ActiveCell.Offset(1, 0).Select

Loop

'Копіювання

ActiveSheet.Paste

'Визначення номеру запису

npp.Text = Val(ActiveCell.Offset(-1, 0).Value) + 1

'Виведення полів

ActiveCell.Value = npp.Text

ActiveCell.Offset(0, 1).Value = pri

ActiveCell.Offset(0, 2).Value = noc

ActiveCell.Offset(0, 3).Value = Int(roz)

ActiveCell.Offset(0, 4).Value = ymo

ActiveCell.Offset(0, 5).Value = vidgod

'Можливість редагування полів форми

npp.Locked = True

pri.Locked = True

noc.Locked = True

roz.Locked = True

ymo.Locked = True

vidgod.Locked = True

tarsta.Locked = True

koeymo.Locked = True

nar.Locked = True

podpru.Locked = True

provne.Locked = True

vnepen.Locked = True

vsoytr.Locked = True

vud.Locked = True

zag.Locked = True

'Активність кнопок

pope.Enabled = True

pers.Enabled = True

nast.Enabled = False

osta.Enabled = False

zber.Enabled = False

vidm.Enabled = False

dopo.Enabled = True

reda.Enabled = True

vuhi.Enabled = True

vuda.Enabled = True

End If

'Режим редагування

If i = 2 Then

'Визначення полів для редагування

ActiveCell.Offset(0, 1).Value = pri

ActiveCell.Offset(0, 2).Value = noc

ActiveCell.Offset(0, 3).Value = Int(roz)

ActiveCell.Offset(0, 4).Value = ymo

ActiveCell.Offset(0, 5).Value = vidgod

'Можливість редагування полів форми

npp.Locked = True

pri.Locked = True

noc.Locked = True

roz.Locked = True

ymo.Locked = True

vidgod.Locked = True

tarsta.Locked = True

koeymo.Locked = True

nar.Locked = True

podpru.Locked = True

provne.Locked = True

vnepen.Locked = True

vsoytr.Locked = True

vud.Locked = True

zag.Locked = True

'Активність кнопок

pope.Enabled = a1

pers.Enabled = a1

nast.Enabled = a2

osta.Enabled = a2

zber.Enabled = False

vidm.Enabled = False

dopo.Enabled = True

reda.Enabled = True

vuhi.Enabled = True

vuda.Enabled = True

End If

End Sub

'Модуль для запуску форми

Private Sub Workbook_Open()

 UserForm1.Show

End Sub

Пояснювальний текст

Спочатку в середовищі MSExcel 2000, я розробив три електронні таблиці: два довідники «Довідник умов роботи» (табл. 2) та «Довідник розрядів» (табл. 3), де  було закладено початкову данні, і одна головна таблиця, яку заповнив за допомогою формул, списків та звичайного текстового набору.

Після розробки електронних таблиць від форматуємо їх та приведемо по оптимального стану.

Далі створюємо форму користувача, для цього запускаємо редактор

MS Visual Basic Application за допомогою комбінації ALT+F11. На екрані монітору з’явиться вікно редактора.

У вікні проекту “View\Project Explorer” відображається зміст відкритого проекту VBА, що використовується для підвищення якості  роботи, через покращення доступу до форм, модулів, об’єктів, а також для копіювання чи видалення окремих модулів проекту. Це вікно дозволяє виконувати операції з будь-якими проектами, відкритими в даний час.

Вікно властивостей “View\Properties Window” застосовується для перегляду і зміни значень властивостей.

Для створення діалогових вікон користувача використовується вікно форм.  Використаємо команду “Insert\UserForm”.

У VBA діалогові вікна створюються у вигляді форм. Сама форма не має ніякого ефекту без елементів управління і прописаного коду. Різноманітні елементи управління – кнопки, поля і надписи для форм – установлюються за допомогою елементів управління “Панели элементов”, команда “View\Toolbox”.

На формі розміщуємо елементи управління згідно із завданням: надписи, поля та списки: №п.п., Прізвище, Ім’я, Розряд, Умови Роботи, Відпрацьовано годин, Тарифна ставка, Коефіцієнт умови роботи, Нараховано, Податок з прибутку, Профспілковий внесок, Внесок у пенсійний фонд, Всього утримано, До видачі, Загальна Сума; кнопки: Перший запис, Останній запис, Попередній запис, Наступний запис, Редагувати, Зберегти, Доповнити, Відмінити, Видалити, Видалити запис, Всього утримано, Вихід;

Задля нормального сприйняття форми очима користувача використаємо вікно властивостей, а саме: опції TextAlign − вирівнювання тексту, Backcolor − колір фону, Font − шрифт та інші. Кожному елементові управління даємо ім’я.

Щоб форма була корисною для користувача, потрібно написати програмний код. Уведення програмного коду розпочинаємо з процедури UserForm_Activate (). Після активізації форми блокуємо доступ до полів і списків. Потім вводимо програмний код для кнопок навігації серед записів бази даних.

В ході роботи визначаємо типи змінних, що використані  у загальній області  «General». Далі вводимо програмний код для списків і кнопок «Перший», «Останній», «Попередній», «Наступний» «Доповнити», «Редагувати». Вводимо програмний код для процедур «Всього утримано», «Видалити діапазон». Потім уводимо програмний код для кнопок «Видалити», «Зберегти», «Відмінити» й «Вихід». Після введення програмного коду для окремих процедур виконуємо тестування програми.

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

Інструкція для користувача

Після відкриття документу MS Excel “.xls” запускаємо програму за допомогою кнопки її запуску, зщо знаходиться біля головної таблиці. Після цього з’являється діалогове вікно програмиу вигляді форми.

Перший запис таблиці є першим записом в формі за замовчуванням.

Для того щоб побачити й інші записи, крім першого, треба скористатися кнопками «Навігації»: «Попередній», «Наступний», «Перший», «Останній». При доходженні до кінця або ж до початку таблиці, за допомогою кнопок «Наступний» «Попередній», при повторному їх використанні буде форма покаже діалогове вікно, в якому вказано перший чи останній це запис. Для швидкого пробігу від початку до кінця таблиці створені кнопки «Перший запис» та «Останній запис».

Також на формі є дві кнопки з зображенням російського та українського прапорців. За їх допомогою можна змінювати мову форму.

Всі наявні поля заблоковані для редагування, отже для зміни даних треба скористатися кнопкою «Редагувати». При використанні даної кнопки розблоковуються такі поля як: №п.п., Прізвище, Ім’я, Розряд, Умови Роботи, Відпрацьовано годин. Після зміни даних для збереження внесених змін необхідно натиснути кнопку «Зберегти». Окрім збереження нових даних, можна відмінити цю процедуру  за допомогою кнопки «Відмінити», яка повертає попередній запис даних.

Кнопка «Доповнити» створена для створення нового запису головної таблиці. Автоматично розблоковуются всі поля даних, що й при використанні кнопки «Редагувати», а далі програма за наведеними даними проводить розрахунок інших полів.

Також створена кнопка «Всього утримано», що вказує на вартість усіх утриманих коштів. Дані вказуються у навігаційному вікні.

Для швидкого та більш повного видалення записів створена кнопка «Видалити діапазон». При натисканні на кнопку з’явиться діалогове вікно з підтвердженням вибору користувача. Після чого з’явиться вікно в яку потрібно ввести діапазон або ж самостійно виділити за допомогою курсора діапазон видалення.

Щоб вийти з програми необхідно натиснути кнопку „Вихід”. Перед Вами з’явиться вікно запиту, де Ви маєте можливість підтвердити свій вихід, натиснувши „Да”, в іншому випадку „Нет”.

Висновок

Виконавши це індивідуальне завдання, я створив програмну оболонку інформаційної системи для оброблення економічної інформації за допомогою тп. MS Excel з вбудованою мовою програмування Visual Basic for Applications(VBA) зробив форму користувача та розмістив на ній елементи управління електронною таблицею з подальшим написанням програмного коду.

Закріпив свої знання з дисципліни «Програмні оболонки і Пакети» на практиці, здійснивши активацію даних полів

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

Visual Basic дає можливість створити прикладні програми для багатьох сфер діяльності людини: бази даних, бізнес-прикладні програми, ігри, різні математичні програми, та багато інших.

Список використаної літератури

  1.  Методичні вказівки до виконання лабораторних робіт із дисципліни “Програмні оболонки і пакети” для студентів напряму підготовки 6.030502 «Економічна кібернетрика» денної форми навчання. Укладач Ю. А. Харченко, канд. техн. наук, доцент. Полтава: ПолтНТУ, 2009. 30 с.
  2.  Харченко Ю. А. Економічна кібернетика: Навчально-методичний посібник до виконання самостійної роботи. – Полтава: Видавництво ПолтНТУ, 2007. – 64с.


 

А также другие работы, которые могут Вас заинтересовать

50219. ИЗУЧЕНИЕ ЗАТУХАЮЩИХ ЭЛЕКТРОМАГНИТНЫХ КОЛЕБАНИЙ В КОЛЕБАТЕЛЬНОМ КОНТУРЕ С ПОМОЩЬЮ ОСЦИЛЛОГРАФА 242 KB
  Цель работы: Изучение с помощью электронного осциллографа электромагнитных колебаний возникающих в колебательном контуре содержащем индуктивность емкость и активное сопротивление; изучение условий возникновения затухающих колебаний в контуре; расчет основных...
50220. Взаимодействие поля постоянного магнита и проводника с током для измерения силы тока 42.5 KB
  Цель работы: экспериментальное измерение основных характеристик гальванометра магнитоэлектрической системы. Наиболее удачной является конструкция гальванометра с радиальным магнитным полем: такое поле создано в узком зазоре между цилиндрическим полюсным наконечником N и S постоянного магнита и железным сердечником цилиндрической формы. S1=1 C1 – чувствительность гальванометра.
50221. Основные достижения отечественной ветеринарии 78 KB
  Ветеринарная медицина-область научных знаний и практической деятельности, направленных на борьбу с болезнями животных, охрану людей от инфекций общих для животных и человека, выпуск доброкачественной в санитарном отношении продукции и решение ветеринарно-санитарных проблем защиты окружающей среды.
50222. ВЫНУЖДЕННЫЕ КОЛЕБАНИЯ В ПОСЛЕДОВАТЕЛЬНОМ ЭЛЕКТРИЧЕСКОМ КОНТУРЕ 323.5 KB
  Цель работы: Изучение вынужденных колебаний в последовательном контуре определение добротности контура и внутреннего сопротивления генератора синусоидальных колебаний. Основные теоретические положения к данной работе основополагающие утверждения: формулы схематические рисунки:...
50223. Визначення ширини забороненої зони напівпровідників з температурної залежності їх провідності 219.5 KB
  Цю залежність можна подати так: 1 де питома провідність власного напівпровідника при ; ширина забороненої зони напівпровідника; стала Больцмана. Тому ширину забороненої зони власного напівпровідника можна визначити із співвідношення:...
50224. Відкритий валютний ринок, його характеристика та інструменти 863 KB
  Валютний ринок – це сфера економічних відносин, щодо здійснення операцій з купівлі-продажу іноземної валюти і цінних паперів в іноземній валюті з метою отримання прибутку та хеджування, а також операцій з інвестування валютного капіталу.
50225. ИЗУЧЕНИЕ ЭЛЕКТРОМАГНИТНЫХ ВОЛН В ДВУХПРОВОДНОЙ ЛИНИИ 160.5 KB
  Принципиальная схема установки или её главных узлов: Блоксхема лабораторной установки для изучения электромагнитных волн в двухпроводной линии Конструкции зондов для изучения распределения составляющих электромагнитного поля: а – петлевой зонд рамка; б – вибратор Схема установки для изучения электромагнитных волн в двухпроводной линии приведена на рис. В линии устанавливается распределение электромагнитного поля зависящее от величины нагрузочного сопротивления . Эти...
50226. Визначення довжини світлової хвилі за допомогою дифракційної гратки 170.5 KB
  При цьому кут між напрямком зору на нульовий максимум і максимум довільного порядку дорівнює куту дифракції який забезпечує умову ; . 2 З аналізу останнього співвідношення випливає що різним довжинам хвиль у максимумі одного порядку відповідають різні значення кута дифракції. Тому на...
50227. Вивчення обертання площини поляризації світла І визначення концентрації цукру в розчині 830 KB
  Обертання площини поляризації світла оптично прозорими речовинами Прилади і обладнання Цукрометр типу СУ4 набір трубок з розчинами цукру різних концентрацій соленоїд випрямляч струму типу ВС24М Теоретичні відомості та опис установки В даній лабораторній роботі для вивчення явища обертання площини поляризації світла використовується цукрометр типу СУ–4. Відлік значень кута обертання площини поляризації світла здійснюється за шкалою і ноніусом.