Шаг 231.
VBA в MSExcel. Оформление командировочных удостоверений. Журнал регистрации командировочных удостоверений

    На этом шаге мы рассмотрим особенности создания такого журнала.

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

    Для создания приложения откройте новую книгу Excel и присвойте ей имя, например, Генератор Командировочных Удостоверений, и сохраните файл на жестком диске компьютера.

    В новой книге будут находиться два рабочих листа:

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

Журнал регистрации командировочных удостоверений

    Журнал регистрации представляет обыкновенную табличную базу данных, или с позиции Excel - список. Поля базы данных расположите в любом, удобном для пользователя порядке, например, как показано на рисунках 1 и 2.


Рис.1. Левая область журнала регистрации командировочных удостоверений на рабочем листе ЖурналРегистрацииКУ


Рис.2. Правая область журнала регистрации командировочных удостоверений на рабочем листе ЖурналРегистрацииКУ

    Наименование предприятия введите в ячейку А1.

    Данные по каждому командировочному удостоверению размещены горизонтально в ячейках одной строки (запись базы данных), количество ячеек которой ограничена столбцами <B>А:М</B> (поля базы данных). По усмотрению пользователя можно вводить дополнительные поля, в зависимости от необходимости. Количество записей в списке ограничивается размерами самого рабочего листа, то есть может содержать несколько десятков тысяч. В нашем примере заполнено только несколько строк. При проектировании зададимся условием, что разрабатываемое приложение будет содержать до 200 записей. Поэтому ограничьте вертикальное расположение таблицы 200-й строкой.

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

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

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

    Закрепление областей позволяет видеть одновременно на экране строку заголовков и, например, два левых столбца, с расположенными в них порядковым номером и фамилией. Для закрепления областей рабочей таблицы в рассматриваемом примере поместите табличный курсор в ячейку С4 и выполните команду Окно |Закрепить области.

Формулы на листе ЖурналРегистрацииКУ

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

Определение порядкового номера записи
Обратите внимание на строку формул на рисунке 1 с формулой, находящейся в ячейке А5. Формула определяет максимальное значение порядкового номера в диапазоне ячеек, расположенных выше активной ячейки в столбце А, и добавляет к нему значение единица.

    Копирование этой формулы в ячейки столбца А, расположенные ниже ячейки А5 позволит не допустить ввода ошибок с нумерацией командировочных удостоверений. При указании диапазона в формуле применена абсолютная ссылка на ячейку А4 и поэтому при копировании ее, диапазон определения максимального номера будет изменяться - от ячейки А4 до соседней ячейки, находящейся выше ячейки, в которую будет осуществляться вставка.

Автоматизация ввода текста даты и номера командировочного удостоверения
Следующий элемент возможного повышения эффективности ввода данных в журнал регистрации, формула в столбце Н - дата и номер командировочного удостоверения. В ячейку Н4 может быть введена формула, которая соединяет первые элементы текста в столбце G - дата и номер приказа, и порядковый номер документа в журнале регистрации:
  =СЦЕПИТЬ(ЛЕВСИМВ(G4;14);A4) 

    Функция ЛЕВСИМВ из текста 19.01.2003г. № 01-К, введенного в ячейку G4, возвращает левые 14 символов (в том числе и пробелы). Функция СЦЕПИТЬ производит соединение выделенного текста с порядковым номером, находящимся в ячейке А4.

    Но данная формула имеет существенный недостаток - предполагается, что текст даты и номера приказа в ячейку G4 введен правильно и из этого текста нужно выделить только 14 левых символов. Если же при наборе текста с клавиатуры введены лишние пробелы, то формула возвратит совсем не ту текстовую строку, которая предполагалась. И второй недостаток -значение 14 (номер позиции символа № в тексте) введено в формулу в виде константы.

    Недостатки устраняются вводом в формулу функции СЖПРОБЕЛЫ, которая удаляет лишние пробелы в тексте, введенном в ячейку G4, после чего функция НАЙТИ производит поиск номера позиции символа №. Возвращенный номер позиции и является тем количеством символов, которые будут возвращены далее функцией ЛЕВСИМВ. Полученная усовершенствованная формула:

  =СЦЕПИТЬ(ЛЕВСИМВ(СЖПРОБЕЛЫ(G4);НАЙТИ("№";СЖПРОБЕЛЫ(G4)));A4) 

    Таким образом, текст 19.01.2003г. №1 в ячейке Н4, содержащий дату и номер командировочного удостоверения, формируется в полуавтоматическом режиме.

Определение продолжительности командировки
В зависимости от методологии принятой на предприятии, возможен:
  • либо расчет продолжительности командировки как разность, определяемая датами выбытия и прибытия;
  • либо, наоборот, по дате выбытия и продолжительности командировки, определяется дата прибытия.

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

    В первом случае для автоматического определения продолжительности командировки в ячейку К5 (Срок командировки) введите формулу:

  =J5-I5+1 
которая вычитает из даты прибытия дату выбытия и прибавляет значение 1.

    Во втором случае в ячейке J6 может находиться формула:

  =I6+K6-1 
которая прибавляет к дате выбытия количество дней продолжительности командировки и вычитает значение 1.

    На следующем шаге мы перейдем к командировочным удостоверениям.




Предыдущий шаг Содержание Следующий шаг