Шаг 271.
VBA в MSExcel.
Учет расхода топлива. Рабочий лист ВводДанных (еще продолжение)

    На этом шаге мы продолжим изучать содержимое этого листа.

Блок элементов управления для ввода данных по дополнительному расходу топлива

    На листе ВводДанных находятся сгруппированные элементы управления, с помощью которых осуществляется ввод дополнительного расхода топлива и их, в свою очередь, можно разделить на две части:

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

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

Самостоятельные элементы управления для ввода дополнительного расхода топлива, не зависящего от пробега автомобиля
Использование элементов управления Флажок для ввода текстовой информации приводилось на предыдущих шагах. В этом приложении с помощью этих элементов необходимо ввести в ячейки D13 и D14 соответственно:
  • количество часов работы обогревателя;
  • объем выполненной транспортной работы.

    Рассмотрим последовательность ввода данных и их последующей обработки. Этим элементам управления назначены макросы ОбогревЧасов и ТранспортнаяРабота (рисунок 1), которые при обращении к элементам управления с помощью функций InputBox активизируют пользовательские диалоговые окна Обогрев и Транспортная работа для последующего ввода данных в ячейки D13 и D14.


Рис.1. Макросы ОбогревЧасов и ТранспортнаяРабота для вызова пользовательских диалоговых окон, с помощью которых производится ввод данных

    Но эти диалоговые она активизируются как при установке в этих элементах управления флажка, так и при его снятии.

    Эти элементы управления с помощью диалогового окна Формат элементов управления связаны с ячейками J13 и J14, в которые, в зависимости от состояния этих элементов управления, может быть введено содержимое - ЛОЖЬ или ИСТИНА. Этим ячейкам присвоены имена Обогрев и Работа соответственно.

    Если эти элементы управления активизированы, и в ячейках J13 и J14 находятся значения ИСТИНА, то введенные в пользовательские диалоговые окна данные будут отображены не только в ячейках D13 (часов на обогрев) и D14 (объем выполненной транспортной), но и в формулах в ячейках D19 и D20 (рисунок 2), которые основаны на функции ЕСЛИ.


Рис.2. Область расчета дополнительного расхода топлива с формулами

    В первом аргументе функции ЕСЛИ находится имя ячейки и, если содержимое этой ячейки ИСТИНА, то формула выполняет расчет дополнительно израсходованного топлива, в противном же случае возвращает значение 0.

Самостоятельные элементы управления для ввода дополнительного расхода топлива, зависящего от пробега автомобиля
Три элемента управления Флажок (рисунок 3) вводят в расчеты дополнительный расход топлива, зависящий от линейного пробега автомобиля, и им присвоено название, соответствующее их назначению:
  • частые технологические остановки;
  • битумное покрытие дороги за пределами города;
  • на автомобили, имеющие срок эксплуатации более 8 лет.


Рис.3. Элементы управления для ввода данных

    Эти элементы управления связаны с ячейками J9:J11, которым присвоены имена: Остановки, Битум и СтарыйАвтомобиль. Если элементы управления активизированы, то в этим ячейкам будет присвоено значение ИСТИНА (рисунок 3), в противном случае значение ЛОЖЬ.

    Этим же элементам управления назначены три макроса (рисунок 4), которые при обращении к элементам управления вводят формулы в ячейки D21:D23 (см. рисунок 2).


Рис.4. Макросы обновления формул для учета дополнительного расхода топлива

Группы элементов управления
Прежде чем продолжить создание приложения, рассмотрим возможность создания в Excel групп элементов управления. Для этого рассмотрите пример, приведенный ниже.

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


Рис.5. Рабочий лист с созданными элементами управления Переключатель, связанных с ячейкой Е4

    Если же с помощью элемента управления Рамка заключить часть элементов Переключатель в группу (рисунок 6), то переключатели этой группы элементов управления не смогут управлять связанной ячейкой Е4.


Рис.6. Создание группы переключателей

    Если одному из переключателей Группы1 задать связь с ячейкой Е9, то тогда содержимое ячейки Е9 будет изменяться от одного до трех, в зависимости от активизации переключателей Перекл.3 - Перекл.5., а два первых переключателя будут управлять значением содержимого ячейки Е4.

    Объединение элементов управления в группу осуществляется элементом управления Рамка, который создается с помощью панели инструментов Формы (рисунок 7).


Рис.7. Панель инструментов Формы

    Для этого, после выбора этого элемента управления на панели инструментов Формы, обведите контур вокруг группы элементов управления Переключатель.

    Если же какой-то переключатель, например, Перекл.4 перетянуть за пределы Группы1 (рисунок 8), то адрес связанной ячейки автоматически изменяется с Е9 на Е4. То есть, переключатель "перешел" в другую группу.


Рис.8. Переключатель выведен за пределы Группы1

    Пример работы с группами можно взять здесь.

Создание групп элементов управления при учете дополнительного расхода топлива
Это элементы управления, объединенные в группу для расчета дополнительного расхода топлива, которые имеют двухуровневую систему учета.

    Рассмотрим группу элементов управления Температура.

    Первый уровень показывает, что данный коэффициент в расчетах присутствует. Для этого используется элемент управления Флажок. Этот элемент связан с ячейкой J15, которой присваивается значение ИСТИНА при активизации элемента управления. В свою очередь это значение ИСТИНА служит разрешением для формулы в ячейке J17 проводить дальнейший расчет.

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

  • Температура от 0 до минус 5 градусов;
  • Температура от минус 5 до минус 10 градусов;
  • Температура от минус 10 до минус 15 градусов;
связаны с ячейкой J16 и изменяют ее содержимое от единицы до трех.

    Ячейка J17 с присвоенным ей именем Температура содержит формулу:

  =ЕСЛИ(J15;ЕСЛИ(J16=1;Температура5;ЕСЛИ(J16=2;Температура10;Температура15));0) 

    Если в ячейке J15, которой управляет элемент управления Флажок с именем Температура, находится значение ЛОЖЬ (опция не отмечена), то тогда первая функция ЕСЛИ в формуле в ячейке J17 возвращает значение 0. Это и есть первый уровень управления - присутствие этого коэффициента в расчетах при значении ИСТИНА в ячейке J15.

    Далее формула переходит к определению размера коэффициента, в зависимости от активизированного элемента управления Переключатель, которые входят в эту группу. Эти элементы управления связаны с ячейкой J16 и изменяют ее значение от единицы до трех.

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


Рис.9. Рабочий лист Нормы

    Следующие две объединенные группы элементов управления: Город и Горы функционируют также, как и группа Температура.

    В ячейку J24 (имя ячейки Город) введена формула:

  =ЕСЛИ(J22;ЕСЛИ(J23=1;Город1;ЕСЛИ(J23=2;Город2;Город3));0) 
и похожая формула в ячейке J32 (имя ячейки Горы):
  =ЕСЛИ(J30;ЕСЛИ(J31=1;ГорнМест1500;ЕСЛИ(J31=2;ГорнМестн2000;0))) 

    Всем элементам управления, объединенным в группы, назначены макросы, создающие формулы в ячейках, которые они контролируют - J17, J24 и J32. Макросы показаны на рисунке 10.


Рис.10. Макросы ввода формул в ячейки J17, J24 и J32

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




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