
- •Лабораторная работа 02. Тема "Автоматизация рабочего процесса по формированию и учету кассовых документов"
- •Техническое задание
- •Приемы автоматизации заполнения журнала кассовых документов
- •Запись кода формул определения порядкового номера и замены строки с формулами на значения
- •Соединение макросов
- •Абсолютная и относительная ссылки при выполнении макроса
- •Методы ввода кода vba
- •Примечания
- •Панель инструментов Правка
- •Пользовательские диалоговые окна
- •InputBox("Введите сумму расходного документа", "Ввод данных")
- •Приходный кассовый ордер
Лабораторная работа 02. Тема "Автоматизация рабочего процесса по формированию и учету кассовых документов"
Следующий рассматриваемый пример - создание простого приложения автоматизации рабочего процесса кассира при формировании таких документов, как приходный и расходный кассовый ордер. Основой для генерации этих документов будет служить журнал регистрации приходных и расходных ордеров (далее журнал кассовых документов), методы формировании которого будут несколько отличаться от методов рассмотренных в прошлой лабораторной работе.
Технологический цикл выполнения работы кассира в ручном режиме при оформлении этих ордеров и фиксации их в журнале кассовых документов следующий:
выписывается от руки приходный (расходный) кассовый ордер;
в конце рабочего дня на основании оформленных расходных кассовых ордеров и корешков от приходных, заполняется кассовая книга;
выполнение расчета денежных средств, проходящих по этим документам.
Недостатки ручного заполнения этих первичных документов те же, что и описанные прежде при формировании командировочных удостоверений. Главный же - ручное заполнение ордеров, что занимает значительное время. Кроме того, эти документы, как и все, что, связано с деньгами, не терпят ошибок, при наличии которых они могут быть признаны недействительными. Или же внесенные ошибки могут нанести ущерб предприятию А такими ошибками могут быть неправильно указанная дата, сумма в числовом формате или прописью (встречается несоответствие этих сумм), фамилия, имя или отчество, человека, на которого они выписаны и его паспортные данные, или реквизиты предприятия.
Существенным недостатком является то, что выписанный от руки ордер никак не влияет на контролируемую сумму остатка денег в кассе, и для сравнения фактического остатка и проходящего по документам, нужно производить ручной перерасчет сумм, указанных в этих документах.
Техническое задание
Для создания приложения по автоматическому заполнению приходных и расходных кассовых ордеров с помощью журнала регистрации этих ордеров, разработайте для себя те параметры приложения, которыми оно должно обладать. Например:
Ордера должны автоматически заполняться в зависимости от указанного их порядкового номера в соответствии с данными, введенными в журнал регистрации этих документов.
В зависимости от введенного в журнал регистрации числового значения денежной суммы, в ордерах должна автоматически генерироваться эта сумма прописью.
На квитанции к приходному кассовому ордеру должна автоматически формироваться дата прописью.
Заполнение журнала регистрации расходных и приходных кассовых ордеров должно производиться с минимальными потерями рабочего времени и минимальным количеством возможных ошибок, вводимых при его заполнении.
В журнале регистрации расходным и приходным кассовым ордерам должен автоматически присваиваться их порядковый номер.
Должна присутствовать возможность автоматического контроля оставшейся в кассе суммы денежных средств после формировании каждого ордера.
Состав приложения
Последовательность создания приложения не отличается от предыдущего, но при этом уделено внимание описанию внедрения ряда дополнительных элементов облегчающих выполнение работы.
Исходя из технического задания, рабочая книга с присвоенным именем Касса будет содержать три рабочих листа:
КассаЖурнал с журналом регистрации приходных и расходных кассовых ордеров;
РасхОрдер с формой расходного кассового ордера;
ПрихОрдер с формой приходного кассового ордера.
Журнал регистрации кассовых ордеров
На рабочем листе КассаЖурнал находится табличная база данных для одновременной регистрации приходных и расходных кассовых документов (рис. 5.1.). По горизонтали рабочая область всей таблицы - столбцы А:N, по вертикали - с 1-й до 200-ой строки.
Рис. 5.1. Рабочий лист КассаЖурнал для регистрации приходных и расходных кассовых ордеров
Рабочая область листа КассаЖурнал разделена на две части:
информационная (строки 1:7);
непосредственно табличная база данных (строка 8 и ниже).
Область табличной базы данных журнала регистрации кассовых документов
Область ввода в табличную базу данных можно условно разделить на четыре составляющих:
область заполнения приходного ордера (столбцы А:D);
область заполнения расходного ордера (столбцы Е:Н);
область для ввода данных бухгалтерского учета (столбцы I:К);
область, содержащую справочные данные (столбцы L:N).
Если введенные данные в две последние области могут относиться как к приходным, так и расходным ордерам, то ввод данных в одной строке по первым двум областям должен быть взаимоисключен. То есть в одной строке в этих областях не могут быть одновременно введены данные по формированию приходного и расходного ордера.
Присвоение порядкового номера
Первый элемент автоматизации журнала регистрации - возможность раздельного присвоения ордерам порядкового номера. В прошлой главе номер просто увеличивался на единицу, учитывая максимальное значение номеров предыдущих строк. В этом же приложении надо учитывать, что в таблице две несмежных области ввода номеров. При этом определение номера в каждой из них должно производиться независимо от другой области. Следовательно, перед созданием алгоритма вычислений в формуле определения порядкового номера нужно задать некоторые условия, которым этот алгоритм должен удовлетворять.
Формирование порядкового номера ордеров должно выполняться, учитывая следующую последовательность:
порядковый номер каждого ордера должен формироваться при вводе даты выписки этого ордера в соседнюю ячейку справа этой же строки;
если дата уже введена в эту строку для противоположного ордера, то порядковый номер этого ордера не должен формироваться;
при попытке ввода даты в строке, в которой находится уже веденная дата противоположного ордера, порядковые номера ордерам, находящимся в этой строке, не присваиваются.
Для выполнения всех этих условий создайте довольно простую формулу с использованием функций ЕСЛИ, ЕПУСТО и МАКС. В ячейке Е15, которая формирует порядковый номер расходных кассовых ордеров, формула:
=ЕСЛИ(ЕПУСТО(B15);ЕСЛИ(ЕПУСТО(F15);0;МАКС(E$11:E14)+1);0)
Функция ЕПУСТО в первом аргументе первой функции ЕСЛИ проверяет наличие даты в ячейке В15, которая относится к области ввода дат приходных кассовых ордеров. И если ячейка В15 заполнена, то тогда функция ЕСЛИ возвращает значение 0. Если ячейка В15 пуста, то формула переходит к решению второго аргумента первой функции ЕСЛИ.
Следующая функция ЕПУСТО в первом аргументе второй функции ЕСЛИ проверяет наличие какого-либо значения введенного в ячейку F15 (дата формирования расходного кассового ордера) и если дата отсутствует, то второй аргумент функции ЕСЛИ возвращает значение 0. Если же дата присутствует (или любое другое значение), то функция МАКС в третьем аргументе второй функции ЕСЛИ ищет максимальное значение порядкового номера в ячейках столбца Е расположенных выше и к этому значению добавляет единицу.
Проверка соседних ячеек с внесенными в них датами обоснована. Ведь если не будет этого условия (или ему подобного), то область журнала с формулами присвоения порядкового номера будет заполнена значениями, увеличивающимися на единицу в каждой нижней ячейке, независимо от того относится ли этот порядковый номер к приходным или расходным кассовым ордерам.
Или возможен другой случай - в одной строке могут находиться и заполненные области по приходному и по расходному ордеру, что может внести неоднозначное трактование записи на рабочих листах формирующих бланки приходных и расходных ордеров.
При возможных нарушениях по вводу данных в строки журнала, порядковый номер этого ордера не будет формироваться, и естественно, эти документы не будут генерироваться на рабочих листах по созданию приходного и расходного ордеров. А отсутствие документа, при заполненном журнале регистрации привлечет внимание пользователя.
Для того чтобы значение 0 не отражалось на экране, выполните команду Сервис/Параметры и в диалоговом окне Параметры на вкладке Вид в области Параметры окна щелчком мыши уберите галочку с опции Нулевые значения.
Наиболее оптимальное заполнение журнала регистрации предполагается копированием выбранной строки с наиболее удовлетворяющими данными, последующей ее вставкой в конец таблицы и редактированием содержимого ячеек, если в этом возникает необходимость. Эта операция позволит значительно увеличить быстродействие операции по заполнению журнала.
Информационная область
В ячейку А1 вводится наименование организации.
Контроль остатка денежных средств в кассе
В ячейку А2 введите формулу:
=СУММ(C11:C200)-СУММ(G11:G200).
которая вычитает общую сумму по расходным ордерам, введенных в столбец G из сумм по приходным ордерам, введенных в столбец С, на основании чего будет автоматически определяться остаток денег в кассе после ввода данных для формирования ордеров
Контроль лимита кассы
Если на предприятии установлен лимит кассы, то тогда размер этой суммы введите в ячейку L2 (или любую другую по усмотрению).
Для того, что видеть, не превышается ли лимит кассы, введите в ячейку F1 формулу, основанную на функции ЕСЛИ:
=ЕСЛИ(A2<L2;"";"Превышение лимита кассы!")
которая сравнивает значение лимита кассы со значением остатка по кассе. И если лимит превышен, то выдается предупреждающая надпись: Превышение лимита кассы!. В противном случае никакого значения эта ячейка не возвращает.
Применение методов дальнейшей автоматизации заполнения журнала регистрации
Несмотря на то, что журнал формируется относительно просто, наличие в нем формул может вызвать его "сбой" при случайном изменении или удалении одной из формул, сортировке списка. Кроме того, пользователю необходимо постоянно вводить дату проведения операции. Устраним эти недостатки.
Для этого разработайте последовательность ввода данных. Пример будет описан на примере заполнения строки 16 по вводу данных расходного ордера №4.
Главное условие - автоматизация этого процесса должна уменьшить трудоемкость операции ввода данных и уменьшить возможность ввода ошибки. Далее предполагаем, что заполнение журнала и формирование ордеров происходит не задним числом, а день в день.