
- •21 Платежный календарь стр. 23 Глава 21. Модель прогнозирования денежных потоков. Создание платежного календаря
- •Пример классического платежного календаря
- •Задачи автоматизации формирования платежного календаря
- •Создание платежного календаря
- •Формирование наименований статей платежного календаря
- •Заполнение платежного календаря суммами ежедневных оборотов денежных средств
- •Ввод дат и сальдо на начало дня
- •Итоговые расчеты платежного календаря
- •Полный цикл заполнения платежного календаря
- •Полный цикл расчета денежных потоков
- •Создание диалогового окна с помощью функции MsgBox
- •Сворачиванием окна Excel на все время выполнения вычислений
Создание платежного календаря
Таблица непосредственно платежного календаря расположена в области ячеек С6:AI83. Строки 12:29 календаря выделены для формирования постатейно данных поступивших денежных средств, а строки 32:79 — для списанных.
Перед автоматическим заполнением платежного календаря в ячейку D2 с клавиатуры вводится номер месяца, за который будет формироваться платежный календарь. Промежуточные расчеты при формировании платежного календаря будут производиться в столбцах ВА:ВС.
Формирование наименований статей платежного календаря
Для формирования наименований статей платежного календаря предназначена подпрограмма ФормированиеСтатейКалендаря (рис. 21.3.). Статьи формируются на основании наименований операций, введенных в исходную таблицу на рабочем листе ИсхДанные. Причем, если наименование операции присутствует в исходной таблице, но не проводилась в месяце, за который формируется платежный календарь, эта статья будет все равно присутствовать в календаре. Это объясняется необходимостью унификации платежных календарей за любой период времени. Смысл такой унификации заключается, прежде всего, в наглядности, или желании человека искать вещи на привычном для него месте. Например, в одном месяце предприятие вело активную финансово-хозяйственную деятельность и статей расхода, по которым проводились операции, было 50, а в другом месяце всего 10, и в календаре отражены только статьи с проводимыми операциями. Руководитель, положив на стол два листа бумаги с распечатанными платежными календарями, больше времени потратит на поиск идентичных статей в этих таблицах, чем непосредственно на анализ содержащейся информации и принятие решений.
В подпрограмму входят на две других процедуры: ввод формул выбора наименований статей поступления (ДоходнаяЧасть) и статей списания денежных средств (РасходнаяЧасть). Сама же подпрограмма осуществляет только вставку выбранного текста наименований статей непосредственно в календарь.
В нашем примере в создаваемом платежном календаре можно разместить до 18 статей в доходной части календаря и 48 статей в расходной. При необходимости количество статей может быть уменьшено или увеличено, но тогда необходимо будет редактировать описанные далее макросы формирования платежного календаря и размеры таблицы, в которой календарь размещен.
Если нет необходимости в постоянном обновлении наименования статей при формировании платежного календаря, то тогда выполнение этой подпрограммы можно не производить, поставив перед ее именем в рассматриваемой далее подпрограмме ЗаполнениеПлатежногоКалендаря (рис. 21.5.) знак примечания.
Рис. 21.3. Подпрограмма ФормированиеСтатейКалендаря для формирования наименования статей поступления денежных средств
Формирование наименования статей поступления денежных средств
Прежде чем приступить к записи макроса ДоходнаяЧасть, введите формулы в ячейку ВА12:
=ЕСЛИ(ИсхДанные!I10=0;"";ЕСЛИ(ИсхДанные!H10=1;ИсхДанные!C10;0)) (21.1)
которая вначале проверяет — отличается ли значение в ячейке I10 рабочего листа ИсхДанные (поступление денежных средств) от значения 0. Если отличается, то проводится дополнительная проверка — введен ли признак денежных потоков в ячейку Н10 рабочего листа ИсхДанные. При выполнении этих условий формула возвращает текст наименования операции, введенную в ячейку С10 рабочего листа ИсхДанные.
И в ячейке ВВ12 формула:
=ЕСЛИ(BA12=BA13;0;BA12) (21.2)
которая вступает в свои полномочия после замены содержимого диапазона ячеек ВА12:ВА5002, содержащих первую формулу на определенные ею значения и последующую их сортировку (по убыванию не считая первую строку строкой заголовка). После сортировки значений, текст одинаковых наименований статей будет содержаться только в смежных ячейках. Тогда эта формула, сравнив значения в двух смежных ячейках, при идентичном тексте возвратит значение 0, а при несовпадении — текст наименования статьи в ячейке находящейся выше. Таким образом, из всех ячеек, содержащим одинаковый текст наименования статьи во всем массиве данных будет выбрана только одна.
Для записи подпрограммы выполните следующие действия после начала записи макроса:
выделите область ячеек ВА12:ВА22 и нажмите клавишу F2, после чего комбинацию клавиш Ctrl+Enter;
не перемещая табличного курсора, скопируйте выделенный диапазон в буфер обмена и произведите вставку в тот же диапазон, вызвав диалоговое окно Специальная вставка, в котором активизируйте переключатель Значения;
не перемещая табличного курсора, выполните сортировку выделенного диапазона по убыванию нажав кнопку Сортировка по убыванию на Стандартной панели инструментов. Таким образом, весь имеющийся список операций, связанных с поступлением наличности соберется в верхней части выделенного диапазона, причем в убывающем алфавитном порядке;
выделите область ячеек ВВ12:ВВ22 и повторите все описанные действия;
остановите запись макроса и, открыв Редактор Visual Basic, произведите редактирование выделяемых диапазонов ячеек, заменив их адреса на ВА12:ВА5002 и ВВ12:ВВ5002, а также отредактируйте текст кода VBA и введите примечания.
Рис. 21.4. Макрос ДоходнаяЧасть
Формирование наименования статей списания денежных средств
При создании макроса РасходнаяЧасть нет необходимости повторять все действия, выполненные при записи предыдущего. Скопируйте макрос ДоходнаяЧасть в Редакторе Visual Basic и заменив имя отредактируйте его, что заключается в замене ссылки на ячейку с I10 при вводе формулы в диапазон ячеек ВА:
""=IF(ИсхДанные!R[-2]C[-44]=0, ......" (21.3)
на ссылку на ячейку J10:
""=IF(ИсхДанные!R[-2]C[-43]=0, ...." (21.4)
Это относительная система ссылок и указывает на то что столбец I находится 44-м, а столбец J 43-м слева по отношению к столбцу ВА, в ячейки которого вводятся формулы.