Технология работы. • Откройте новый файл. Присвойте ему имя «Задание_4_1)»

Этап

• Откройте новый файл. Присвойте ему имя «Задание_4_1)».

• Переименуем Лист1 - «Карточка регистрации».

• Подготовьте на листе карточку регистрации.

• Фамилия, имя клиента будут вводится вручную в ячейки СЗ,С4.

• Счетчик управляет вводом продолжительности проживания.

• Заказ завтрака в номер стоит 100 рублей.

• Пол и тип номера выбираются с помощью элемента управления Переключатель.

• Наличие паспорта фиксируется Флажком.

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

• Флажок «Паспорт» связать с ячейкой А20.

• Флажок «Завтрак» связать с ячейкой А21.

• Счетчик «Продолжительность проживания» связать с ячейкой В15.

• Группу переключателей «Пол» связать с ячейкой А22 (связывается один из переключателей группы).

• Группу переключателей «Номер» связать с ячейкой А23 (связывается только один переключатель из группы).

Этап

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

Для переноса информации необходимо использовать сложную функцию ЕСЛИ.

«Дата заезда» (ячейка Н2) - примените функцию =Сегодня();

«Фамилия» (ячейка I2) - = СЗ, т.е. в ячейку переносится фамилия клиента.

«Имя» (ячейка J2) - = ЕСЛИ(I2="";"";С4) (рис. 10).

Пояснение к фу нкции:

Если фамилия не перенесена в ячейку I2 промежуточной таблицы, то в ячейку J2 переносить имя не надо, в противном случае в ячейку J2 переносится содержимое ячейки С4, т.е. имя введенное в карточку.

• «Паспорт» (ячейка К2) - =ЕСЛИ(I2= " "; " ";ЕСЛИ(А20=ЛОЖЬ; "нет "; "да "))

Пояснение к функции:

Если в ячейке I2 фамилии нет, то в ячейку К2 ничего выводить не надо, в противном случаепроверяем ячейку А20, которая связана с флажком «Паспорт». Если флажок не установлен, это значит, что паспорт не регистрировался, поэтому записываем «нет», иначе «да».

Эта функция ЕСЛИ вводится в два приема:

1. Установите курсор в ячейку К2 и вызовите функцию ЕСЛИ,

введите условие в строку Лог_выражение - I2="",

введите Значение_если_истина - "",

установите курсор в строку Значение _если_ложъ и второй раз вызовите

функцию ЕСЛИ в строке формул

Появится новое чистое диалоговое окно функции ЕСЛИ. Введем аргументы

Все остальные формулы с применением сложной функции ЕСЛИ вводятся аналогично.

• Завтрак в номер» (ячейка L2) - переносится аналогично паспорту.

«Пол» (ячейка М2) - =ЕСЛИ(I2="";"";ЕСЛИ(А22=1;"муж";"жен"))

Пояснение к функции:

Рассмотрим вторую функцию ЕСЛИ. Переключатель «Пол» связан с ячейкой А22. В ячейке появляется номер выбранного переключателя из группы. «Муж» соответствует - 1, т.к. находится 1-ым в группе. «Жен» соответствует - 2, т.к. находится 2-ым в группе. Если А22 равно 1, то в ячейку М2 выводим «муж», в противном случае выводим «жен».

«Номер» (ячейка N2) - переносится аналогично полу.

=ЕСЛИ(I2= " ";" ";ЕСЛИ(А23=1; "одноместный ";ЕСЛИ(А23=2; "двухместный "; "люкс ")))

«Продолжительность проживания» (ячейка О2) - перенесите самостоятельно, учитывая связь с ячейкой В15.

«Стоимость за проживание» (ячейка Р2) - рассчитывается по формуле «Продолжительность проживания» * стоимость номера, в зависимости от типа.

=ЕСЛИ(I2="";"";ЕСЛИ(N2=" одноместный ";O2*S2;ЕСЛИ(N2=” двухместный ";O2*S3;O2*S4)))

«Общая стоимость» (ячейка Q2) - состоит из стоимости проживания и оплаты за завтрак (предполагается, что завтрак подавался все дни проживания и стоит 100 руб.):

=ЕСЛИ(I2="";"";ЕСЛИ(L2="да";100*О2+Р2;Р2))

3 этап

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

• Переименуем Лист2 - «База посетителей».

• Скопируем шапку таблицы с листа «Карточка регистрации» на лист «База посетителей» с ячейки А1.

• Создадим макрос «Копирование». Ваши действия:

- Перейдите на лист «Карточка регистрации».

- Выполните команду: Макрос-Запись макроса

- Присвойте имя макросу «Копирование».

- Выделите диапазон ячеек H2:Q2.

- Выполните команду «Копировать».

- Перейдите на лист «База посетителей».

- Установите курсор в ячейку А2.

- Выполните команду Правка-Специальная вставка-Вставить значение

- Перейти на лист «Карточка регистрации».

- Остановить запись макроса.

- Просмотреть модуль в редакторе VBA.

Модуль должен выглядеть так:

Sub Копирование()

Range("H2:Q2").Select

Selection. Copy

Sheets("База посетителей"). Select

Range("A2").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Карточка регистрации"). Select

End Sub

• Создайте кнопку на листе «Карточка регистрации», используя элемент управления панели инструментов «Формы». Измените надпись на кнопке «Перенос в Базу».

• Привяжите созданный макрос «Копирование» к кнопке.

• Проверьте работоспособность макроса.

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

Редактирование макроса

Sub Копирование() Range("H2:Q2").Select

Selection. Copy

Sheets("База посетителей").Select

ns = Application.CountA(Sheets("База посетителей").Range("A:A"))

d = "a" & CStr(ns + 1)

Range(d). Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks __

:=False, Transpose:=False

Sheets("Карточка регистрации"). Select

MsgBox "Копирование произошло успешно"

End Sub

Пояснение к программе:

Строка ns=Application.CountA(Sheets("Карточка регистрации ").Range("A:A"))

Функция COUNTA определяет количество непустых строк на листе «Карточка регистрации».

Строка d = "а" & CStr(ns + 1) - формирует адрес ячейки следующей свободной строки, в которую выводить новую запись с информацией о посетителе.

Строка Range(d).Select - делает активной ячейку для вывода информации.

Строка MsgBox "Копирование произошло успешно" - диагностирует правильность выполнения операции копирования.

Этап

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

III. Ответьте на вопросы.

Контрольные вопросы

1. Возможности предоставляемые пользователю элементом Флажки.

2. Для чего переключатели объединяются в группы?

3. Можно ли полосу прокрутки расположить горизонтально?

4. Можно ли создавать связь элементов управления с ячейками рабочего листа?

Форма отчета: Файлы с результатами выполнения заданий. Ответы на контрольные вопросы.

ПРАКТИЧЕСКАЯ РАБОТА №5
Тема: Экранные формы


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: