издержек, товарооборот, уровень издержек. Поскольку заранее неизвестно количество потребительских обществ, то ячейки для итогов и ФИО экономиста заранее не резервируются. Рабочий лист переименован в Отчет. Реализация такого шаблона представлена на рис. 96.

Рис. 96. Шаблон-заготовка табличного документа

На этом рисунке желтым цветом обозначены те ячейки, которые во время работы программы будут заполняться исходными и расчетными данными.

Математическая модель решения задачи

Кроме организации ввода исходных данных и вывода их в некоторые ячейки электронной таблицы, программа должна производить расчет отклонений и итоговых значений по графам «Сумма издержек – план», «Сумма издержек – факт», «Товарооборот – план», «Товарооборот – факт», «Уровень издержек – план», «Уровень издержек – факт», «Отклонение по уровню». Для расчетных величин используем следующие переменные:

Nomer – номер текущей строки таблицы;

SP – планируемая сумма издержек;

SF – фактическая сумма издержек;

TP – планируемый товарооборот;

TF – фактический товарооборот;

IP – планируемый уровень издержек;

EF – фактический уровень издержек;

ItogSP – накопление итога по столбцу «планируемая сумма издержек»;

ItogSF – накопление итога по столбцу «фактическая сумма издержек»;

ItogTP – накопление итога по столбцу «планируемый товарооборот»;

ItogTF – накопление итога по столбцу «фактический товарооборот»;

ItogIP – накопление итога по столбцу «планируемый уровень издержек»;

ItogEF – накопление итога по столбцу «фактический уровень издержек».

С учетом введенных обозначений расчетные формулы будут иметь следующий вид:

1) для отклонений:

[Отклонение в %] = (F – P) / P * 100

[Отклонение в сумме] = F – P

Результаты этих вычислений можно не сохранять в отдельных переменных, так как они сразу могут быть занесены в соответствующие ячейки электронной таблицы;

2) для итогов по прогнозу и факту:

ItogP = ItogP + P

ItogF = ItogF + F

Эти формулы реализуют алгоритм получения итоговой суммы методом накопления, когда величина прогноза (факта), соответствующая очередному виду деятельности, добавляется к сумме соответствующих величин по уже рассмотренным видам деятельности. Назовем эти суммы промежуточными. Когда будут обработаны все виды деятельности, промежуточные суммы превратятся в окончательные – итоговые. В начале этого процесса (до того, как будет рассчитываться первая промежуточная сумма) переменные ItogP и ItogF равны нулю;

3) для итогов по отклонениям:

[итоговое отклонение в процентах] = (ItogF – ItogP) / ItogP * 100

[итоговое отклонение в сумме] = ItogF – ItogP

Результаты этих вычислений можно не сохранять в отдельных переменных, так как они сразу могут быть занесены в соответствующие ячейки электронной таблицы.

Разработка интерфейса пользователя

Каждому текстовому полю поменяем стандартное имя (TextBox) на более понятное (рис. 97). В нашем примере:

TextBox1 – MesTextBox – ввод месяца;

TextBox2 – YearTextBox – ввод года;

TextBox3 – FIOTextBox – ввод фамилии, имени и отчества экономиста;

TextBox4 – POTextBox – ввод названия потребительского общества;

TextBox5 – SPTextBox – планируемая сумма издержек;

TextBox6 – SFTextBox – фактическая сумма издержек;

TextBox7 – TPTextBox – планируемый товарооборот;

TextBox8 – TFTextBox – фактический товарооборот;

TextBox9 – IPTextBox – планируемый уровень издержек;

TextBox10 – EFTextBox – фактический уровень издержек.

Рис. 97. Разработанная форма примера 47 в рабочем состоянии

Программа на языке VBA

' Объявление переменных и констант

Const StrNomer = 7 'количество строк для заголовка таблицы

Dim Nomer As Long 'номер очередной строки таблицы (потребительское общество)

Dim SP As Long

Dim SF As Long

Dim TP As Long

Dim TF As Long

Dim IP As Long

Dim EF As Long

Dim ItogSP As Long

Dim ItogSF As Long

Dim ItogTP As Long

Dim ItogTF As Long

Dim ItogIP As Long

Dim ItogEF As Long

Dim StrName1 As String

Dim StrName2 As String

'Процедура инициализации формы

Private Sub UserForm_Initialize()

Worksheets(«Отчет»).Activate

MesTextBox.SetFocus

End Sub

'Процедура считывания заголовочных данных и вывода их в ячейки электронной таблицы Private Sub CommandButton3_Click()

'Ввод данных для новой отчетной таблицы

With ActiveSheet

Range(«E3»).Value = MesTextBox.Text

Range(«G3»).Value = YearTextBox.Text

End With

ActiveWorkbook.SaveAs ('Отклонение фактического уровня издержек обращения от плана за ' + MesTextBox.Text + «месяц. xls»)

Nomer = 1

ItogSP = 0

ItogSF = 0

ItogTP = 0

ItogTF = 0

ItogIP = 0

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×