Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

С помощью формы пользователя




 

При добавлении к рабочему листу формы пользователя необходимо войти в редактор кода Visual Basic (нажать клавиши ALT+F11) и с помощью команды UserForm меню Вставка (Insert) листа модуля вызвать форму на экран монитора. После этого можно размещать на форме требуемые элементы управления (см. п.8.1).

 

 

Код приложения

 

' Объявление типа данных с именем "Клиент" в секции General

Private Type Клиент

Фамилия As String * 20

Дети As Integer

Должность As String * 20

Ставка As Single

End Type

' Запись процедуры инициализации формы пользователя

Private Sub UserForm_Initialize()

' Формирование заголовка формы

Userform1.Caption = "Заполнение списка"

' Удаление строки формул с рабочего листа Excel

Application.DisplayFormulaBar = False

' Расположение на командной кнопке текста

With CommandButton1

.Default = True

.Accelerator = "О"

.ControlTipText = "Ввод записи в таблицу"

End With

' Очистка текстового поля для ввода новой фамилии

TextBox1.Text = ""

' Установка переключателя 1 в состояние включено

OptionButton1.Value = True

' Формирование списка должностей

With ComboBox1

.List = Array("Доцент","Ассистент", "Ст.преподаватель")

.ListIndex = 0

End With

 

' Формирование списка коэффициентов тарифной сетки

With ComboBox2

.List = Array(3.62,2.68, 3.12)

.ListIndex = 0

End With

End Sub

' Процедура заполнения списка

Private Sub CommandButton1_Click()

Dim tклиент As Клиент

Dim kstrok As Integer

Range("a1").Value = "Фамилия И.О."

Range("b1").Value = "Таб.№"

Range("с1").Value = "Должность"

Range("d1").Value = "Коэфф"

Range("e1").Value = "Дети"

Range("f1").Value = "Начислено"

Range("g1").Value = "Налог"

Range("h1").Value = "К выдаче"

' Определение номера первой незаполненной строки рабочего листа

kstrok = WorksheetFunction.CountA(Range("a:a")) + 1

 

With tклиент ' Ввод значений элементов данных

.Фамилия = TextBox1

. Должность = ComboBox1

.Ставка = Val(ComboBox2)

' Определение значения показателя "Дети" с помощью переключателей

If OptionButton1 = True Then.Дети = 0

If OptionButton2 = True Then.Дети = 1

If OptionButton3 = True Then.Дети = 2

If OptionButton4 = True Then.Дети = 3

End With

' Заполнение рабочего листа данными формы

With tклиент

Cells(kstrok, 1).Value =.Фамилия

Cells(kstrok, 2).Value =. Должность

Cells(kstrok, 3).Value =.Ставка

Cells(kstrok, 4).Value =. Дети

End With

Columns("a:h").AutoFit

Columns("C").NumberFormat = "0.00"

TextBox1.Text = ""

End Sub

' Окончание ввода данных

Private Sub CommandButton2_Click()

Unload Me

End Sub

 

9.3. Вычисление показателей Начислено, Налог, К выдаче

 

Математическая модель:

Ввести значение минимальной ставки - Ставка

Для i =1.. k-1

Начисленоi = Ставка ´ Коэффi

Льготаi = Ставка + 300 ´ Детиi

 
 
0, если Льготаi³Начисленоi (Начисленоi-Льгота)´0,13, если Льготаi<Начисленоi


Налогi=

 

К выдачеi = Начисленоi - Налогi

 

 
Схема алгоритма

   
 

 

 


Код приложения

 

Dim Ставка As Single, i As Integer, Льгота As Single

Ставка = InputBox("Введите начальную ставку")

For i = 1 To k - 1

Range("f1").Offset(rowoffset:=i).Value = Range("d1").Offset(rowoffset:=i).Value * Ставка

Льгота = Ставка + 300 * Range("e1").Offset(i).Value

If Льгота > Range("f1").Offset(i).Value Then

Range("g1").Offset(i).Value = 0

Else

Range("g1").Offset(i).Value =

(Range("f1").Offset(rowoffset:=i).Value - Льгота) * 0.13

End If

Cells(i + 1, 8).Value = Cells(i + 1, 6).Value - Cells(i + 1, 7).Value

Next

 




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.