Постановка и решение задачи
Пусть на рабочем листе с названием Товар располагается таблица вида.
Наименование | Цена, руб | Количество |
Стул | 80 000 | |
Стол | 120 000 | |
Кресло | 200 000 | |
Шкаф | 1200 000 |
Шапка таблицы записана в первой строке. На рабочем листе Заказчики хранится информация о заказчиках.
Фирма | Адрес | Телефон | Р/с |
Рассвет | Минск, ул. Коржа, 2 | 211-23-34 | |
Восток | Витебск, пр-т. Мира, 5 | 222-45-67 | |
Вест | Гродно, ул. Кирова, 1 | 333-45-78 | |
Луч | Гомель, ул. Буре, 4 | 444-56-90 |
Требуется сформировать информацию о заказанном товаре на рабочем листе Платеж, приведенном на рис. 9.1.
Рис. 9.1. Рабочий лист Платеж
Для организации диалога при оформлении заявки заказчиком надо создать диалоговое окно UserForm1 с интерфейсом, представленным на рис. 9.2.
Рис. 9.2. Форма для выбора товара
На рабочем листе Платеж следует расположить кнопки с названиями «Заказ товара» и «Очистка» вне области с информацией. Командная кнопка «Заказ товара» должна заполнить раскрывающиеся списки на форме названиями товаров и фирм-заказчиков исходя из информации, имеющейся на листах Товары и Заказчики, и вызвать на экран форму UserForm1:
Sub CommandButton1_Click()
k = 2
Do While Worksheets(Заказчики).Cells(k, 1)
UserForm1.ComboBox1.AddItem Worksheets(Заказчики).Cells(k, 1)
k = k + 1
Loop
k = 2
Do While Worksheets(Товары).Cells(k, 1)
UserForm1.ComboBox2.AddItem Worksheets(Товары).Cells(k, 1)
k = k + 1
Loop
UserForm1.Show
End Sub
В тексте программы учтено, что первая строка на рабочих листах Товары и Заказчики содержит названия столбцов, и поэтому цикл начинается со значения k = 2. При этом циклы для заполнения комбинированных списков Заказчики и Товары практически совпадают, однако их нельзя объединить в один, поскольку количество заказчиков и товаров может быть разным.
Командная кнопка «Очистка» на листе Платеж должна очищать те ячейки, которые будут заполняться после выполнения диалога на окне UserForm1. Для очистки ячеек используется метод ClearContents, а область очищаемых ячеек задается объектом Range:
Sub CommandButton2_Click()
Worksheets(Платеж).Range(b8:b10).ClearContents
Worksheets(Платеж ).Range(a13:d13).ClearContents
Worksheets(Платеж ).Range(b17).ClearContents
End Sub
Поскольку кнопка «Очистка» находится на листе Платеж, то указание имени листа (Worksheets(Платеж).)можно опустить.
В ходе выполнения диалога в окне UserForm1необходимо раскрыть и выбрать из списка «Заказчик» фирму-заказчика, а из списка «Товар» – наименование товара. В поле Количество заказчик определяет нужное ему количество товара.
Программа для командной кнопки «Принять заказ» на форме пользователя должна заполнить ячейки на рабочем листе Платеж, подсчитать стоимость товара и заполнить поле даты. В программе учтено то, что нумерация элементов в комбинированном списке начинается с нуля:
Статьи к прочтению:
Пример разработки проекта
Похожие статьи:
-
Пример 4.2.2-2.создать проект, показывающий использование фундаментальных (базовых) типов данных.
1)Запустить VS. 2)Выполнить команды, позволяющие создать проект Пример-2.2-2. В окне Конструктор формпоявится пустая форма Пример2.2-2. На ней необходимо…
-
Пример разработки мпсу грузовым лифтом
6.1 Краткое описание объекта автоматизации (грузового лифта) и устройства управления им. Грузовой лифт (рис.1) предназначен для поднятия или опускания…