Вход/Регистрация
Офисное программирование
вернуться

Фризен Ирина Григорьевна

Шрифт:

Range(«A2:H5»).Select

Selection.Sort Key1:=Range(«A2»), Order1:=xlAscending, Key2:=Range(«B2»), Order2:=xlAscending, Key3:=Range(«E2»), Order3:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Что придется корректировать:

1) область сортировки. Необходимость корректирования вполне ясна: количество записей может быть меньше либо больше, чем в данный момент. Для определения числа записей воспользуемся известным приемом (см. пример 57);

2) поле, по которому осуществляется сортировка. Необходимо предусмотреть выбор поля перед самой сортировкой (в элементе управления «Поле со списком» (ComboBox1));

3) направление сортировки. Также нужно предусмотреть выбор одного варианта из двух (переключатель OptionButton1 или OptionButton2).

Создайте форму UserForm2. Затем в окне ее кода создайте процедуру для кнопки ОК.

Private Sub CommandButton1_Click

КоличествоСтрок =

Application.CountA(ActiveSheet.Columns(1))

'Количество записей в базе

Range(Cells(2, 1), Cells(КоличествоСтрок, 8)).Select

'выделение области сортировки

If ComboBox1.Value = «фамилии» Then

KeySort = «A2»

'ключ сортировки – поле с фамилией

Else

KeySort = «H2»

'ключ сортировки – поле со сроком поездки

End If

'Сортировка

If OptionButton1.Value Then

'по возрастанию

Selection.Sort Key1:=Range(KeySort), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Else

'по убыванию

Selection.Sort Key1:=Range(KeySort),

Order1:=xlDescending,Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End If

Range(«A2»).Select

'установка активной ячейки с первой фамилией

CommandButton2.Caption = «Закрыть»

'изменение названия второй кнопки

End Sub

Вторая кнопка закрывает форму и возвращает свое исходное имя.

Private Sub CommandButton2_Click

CommandButton2.Caption = «Отмена»

UserForm2.Hide

End Sub

Для инициализации формы UserForm2 откройте Модуль1 и вставьте процедуру инициализации формы.

Public Sub UserForm2_Initialize

' обратите внимание, что процедура глобальная!

UserForm2.ComboBox1.List = Array(«фамилии», «продолжительности тура»)

UserForm2.ComboBox1.ListIndex = 0

UserForm2.Show

End Sub

Рис. 114. Вывод данных на лист excel

Конструирование интерфейса. Презентация

Для создания пользовательского интерфейса следует выполнить следующее:

1) установить новое название приложения «Туристы фирмы Балашов-Тур»;

2) закрыть строку формул;

3) убрать панели инструментов Стандартная и Форматирование;

4) дать новое имя листу с базой;

5) добавить новую панель инструментов с кнопкой «Сортировка».

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

Private Sub Workbook_Open

Application.Caption = «Туристы фирмы Балашов-тур»

Application.DisplayFormulaBar = False

'Закрытие строки формул окна Excel

Application.CommandBars(«Standard»).Visible = False

Application.CommandBars(«Formatting»).Visible = False

Sheets(«База данных»).Select

With Application.CommandBars.Add(Name:="Рабочая панель инструментов",Position:=msoBarTop, MenuBar:=False, Temporary:=True)

Visible = True

With.Controls

'кнопка Сортировка

With.Add(Type:=msoControlButton, ID:=1)

Caption = «Сортировка»

TooltipText = «Сортировка»

Style = msoButtonCaption

OnAction = «Module1.UserForm2_Initialize»

'кнопка запускает UserForm2_Initialize

End With

End With

End With

UserForm1.Show

End Sub

Для возвращения внешнего вида приложения после закрытия базы следует обработать событие «Непосредственно перед закрытием».

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.Caption = Empty

'Установка заголовка окна приложения по умолчанию

Application.CommandBars(«Standard»).Visible = True

Application.CommandBars(«Formatting»).Visible = True

End Sub

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

Задача на закрепление материала

Пример 60. [8] Создать базу данных «Общежитие».

Для этого разработать приложение с диалоговым окном «Общежитие», в котором:

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

• в раскрывающемся списке выводятся три типа номеров: одноместный, двухместный, люкс, стоимость проживания в которых равна соответственно 550, 400 и 750 руб. в сутки;

8

Гарнаев А. Самоучитель VBA. СПб.: БХВ-Петербург, 2004.

• если постоялец заказывает завтраки в номер, то суточная оплата возрастает на 75 руб.;

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

При разработке формы придерживаться рис. 115, 116.

  • Читать дальше
  • 1
  • ...
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: