Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.61
Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.61

Пусть в некотором магазине продавцам начисляют комиссионные по следующему правилу:

• если объем продаж не менее 100 ООО руб., то комиссионные равны р 1 процентов от объема продаж;

• если объем продаж от 50 ООО до 100 000 руб., то комиссионные равны р2 процентов от объема продаж;

• если объем продаж менее 50 000 руб., то комиссионные равны рЗ процентов от объема продаж.

Приведенные ниже процедуры вычисляют комиссионные для двух сценариев: pi = 4 %, р2 = 3 %, рЗ = 2 % и pi = 6 %, р2 = 4 %, рЗ = 2%(рис. 13.2),

13. Создание сценариев

Заметим, что комиссионные, начисленные по максимальному проценту, будут окрашены красным цветом, по наименьшему -

черным, а по среднему синим.

 

А

I в I

с I

D I

Е

ФИО

Выручка

Комиссионные

Вариант 1

 

Петров Н.П.

1000000

40000

 

Иванов А.С.

5500000

220000

 

Сидоров Т.Е.

340000

13600

Вариант 2

 

Федоров А.Г.

390000

15600 -

I

Смирнов Е.Л.

606000

1818

 

Ивлев Е.Г.

560000

22400

 

Орлов В.Ф.

5000

 

Туркин Г.Т.

234600

9384

 
       

Рис. 13.2. Сценарии начисления комиссионных Dim fl As Integer

Function Red, pi, p2, p3 As Double, fl As Integer) Dim si, s2, s3 As Double If i >= 100000 Then si = pi fl = 1 End If

If i < 100000 And i >= 50000 Then

s2 - p2

fl = 2 End If

If i < 50000 Then

s2 = p3

fl = 3 End If

Re = (si + s2 + s3) * i End Function

Sub Та (pi, p2, p3 As Double) Dim i As Double Dim j, n As Integer n = Application. _

CountA(Sheets("Комиссионный").Range("B:B")) For j=2 To n

i = Cells (j, 2) .Value With Celis(j , 3)

.Value = Re (i, pi, p2, p3, fl) Select Case fl Case Is = 1 .Font.Colorlndex = 3

Программирование в среде Visual Basic for Applications

Case Is = 2 .Font.Colorindex = 5 Case Is = 3 .Font.Colorindex = 1 End Select End With Next j End Sub

Sub KomlO

Ta 0.04, 0.03, 0.02 End Sub

Sub Kom2()

Ta 0.06, 0.04, 0.02 End Sub

Приведем необходимое пояснение к данной программе. В VBA диапазон В:В обозначает столбец В. Функция СЧЕТЗ в русскоязычной версии Excel подсчитывает число непустых ячеек в выделенном диапазоне. Ее эквивалентом в англоязычной версии является функция CountA. Таким образом, функция


⇐ Предыдущая Следующая ⇒
 
 
 
Powered by Exponenta