Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Использование элементов управления




Использование сводных таблиц

Предположим, что нам периодически требуются данные о структуре продаж следующего вида:

 

Товар Количество
Валенки  
Галоши  
…. ….

 

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

Интерфейс вычислений может выглядеть следующим образом (рис. 5.13).

 

  B C D E
         
         
         
       
           
           
    Сумма по полю Количество      
    Наименование Итог    
    Валенки      
    Галоши      
    Кепки a'la Lenin      
    Кепки a'la Luzkov      
    Лапти дубовые      
    Лапти липовые      
    Общий итог      
           
                   

Рис. 5.13. Интерфейс отчета по структуре продаж

 

При щелчке по кнопке «Сформировать» появляется соответствующая сводная таблица.

Для реализации расчетов сформируем сводную таблицу в режиме записи макроса:

Сервис > Макрос > Начать запись > Ввести имя макроса (например, «Структура_продаж») > Данные > Сводная таблица > Далее > В качестве диапазона указать Данные_продаж > Далее > Переключатель установить в положение «Существующий лист» и ввести адрес формируемой сводной таблицы (в данном случае C22) > Макет > В область макета «Строка» перетаскиваем поле «Наименование», а в область «Данные» перетаскиваем поле «Количество» > Ok > Готово > Сервис > Макрос > Остановить запись

Затем создаем кнопку «Сформировать» и связываем ее с созданным макросом.

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

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

Для автоматизации очистки запишем макрос:

Сервис > Макрос > Начать запись > Ввести имя макроса (например, «Очистка») > Выделяем область B21:E31 > Нажимаем клавишу «Delete» > Сервис > Макрос > Остановить запись.

Создадим кнопку «Очистить» и свяжем ее с макросом «Очистка».

Окончательный интерфейс расчетов будет выглядеть следующим образом (рис. 5.14).

 
 

Рис. 5. 14. Окончательный интерфейс отчета по структуре продаж

5.4.6.4. Использование средства «Консолидация»

Пусть нам необходимо получить отчет об остаточных количествах товаров на складе.

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

Для этого:

- подготовим шаблон следующего вида (рис. 5.15).

 

  I J K L M N
             
    Наименование Количество Наименование Количество Остаток
    Лапти липовые   Лапти липовые    
    Лапти дубовые   Лапти дубовые    
    Галоши   Галоши    
    Валенки   Валенки    
    Кепка a ’la Lenin   Кепка a ’la Lenin    
    Кепка a 'la Luzkov   Кепка a 'la Luzkov    
             
             

Рис. 5.15. Шаблон отчета об остаточных количествах товаров на складе

- в колонки J и L скопируем с листа «Товары» список товаров;

- в ячейку N5 введем формулу =K5-M5, которую скопируем до строки 10;

- на листе «Поставки» диапазону E11:F311 присвоим имя “ Поставка»;

- на листе «Продажи» диапазону E11:F311 присвоим имя “ Продажа»;

- выполним команды:

Сервис > Макрос > Зададим имя макроса «Остатки» > Выделяем диапазон J4:K10 > Данные > Консолидация > В поле функция укажем «Сумма» > В поле список диапазонов укажем «Поставка» > Установим переключатели «Подписи верхней строки» и «Подписи верхнего столбца» > Ok > Выделяем диапазон L4:M10 > Данные > Консолидация > В поле функция укажем «Сумма» > В поле список диапазонов укажем «Продажа» > Установим переключатели «Подписи верхней строки» и «Подписи верхнего столбца» > Ok > Сервис > Макрос > Остановить запись

 

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

 

Sub Остатки()

Range("J4:K10").Select

Selection.Consolidate Sources:= _

"'E:\Магазин сувениров.xls'!Поставка", Function:=xlSum, _

TopRow:=True, LeftColumn:=True, CreateLinks:=False

Range("L4:M10").Select

Selection.Consolidate Sources:= _

"'E:\Магазин сувениров.xls'!Продажа", Function:=xlSum, _

TopRow:=True, LeftColumn:=True, CreateLinks:=False

Range("J4").Select

End Sub

 

- создадим кнопку «Остатки» и назначим ей только что созданный макрос;

- скроем столбцы K, L и M.

 
 

Окончательный интерфейс отчета может выглядеть следующим образом (рис. 5.16):

Рис. 5.16. Окончательный интерфейс отчета об остаточных количествах товаров на складе

 

В Excel имеется возможность использовать две группы управляющих элементов.

Первая – расположена на панели форм. Все вышеприведенные примеры построены на использовании именно этих элементов. Такие элементы представляют собой компоненты ActiveX и предназначены для запуска пользовательских макросов.

Вторая группа – это «истинные» управляющие элементы Visual Basic for Application (VBA). Они обладают всеми свойствами элементов визуальных систем программирования.

В целом – элементы группы VBA имеют больше возможностей и большую палитру свойств. Главная их особенность – это способность реагировать на события типа OnClick, OnChange и т.д. Однако их использование требует от пользователя определенной программистской квалификации.

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

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

Недостатком сформированного там интерфейса является то, что пользователь должен знать об очередности нажатия кнопок «Сформировать» и «Очистить». В противном же случае произойдет сбой в работе макросов.

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

1. Командой Вид > Панели инструментов > Элементы управления вызовем панель «Элементы управления».

2. Используя элемент «Кнопка» этой панели создадим две новых кнопки.

3. Нажмем на панели «Элементы управления» кнопку «Режим конструктора»

4. Щелчком ПКМ по первой кнопке вызовем ее контекстное меню.

5. В меню выберем пункт «Свойства» и в появившейся таблице свойств в свойстве Caption (заголовок) поменяем значение – вместо CommandButton1 напечатаем «Сформировать».

6. Аналогично поменять название второй кнопки – вместо CommandButton2 напечатаем «Очистить».

7. На панели «Элементы управления» нажать кнопку «Исходный текст»

8. Система перейдет в редактор Visual Basic и там будут две заготовки процедур для только что созданных кнопок

 

Private Sub CommandButton1_Click()

End Sub

Private Sub CommandButton2_Click()

End Sub

9. Скопировать содержимое макроса Структура_продаж в заготовку процедуры для первой кнопки, а содержимое макроса Очистка в заготовку процедуры для второй кнопки. Должно получиться следующее:

Private Sub CommandButton1_Click()

Range("C13").Select

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _

"Данные_продаж").CreatePivotTable TableDestination:= _

"[Пример.xls]Отчеты!R13C3", TableName:="СводнаяТаблица2",

DefaultVersion:= _

xlPivotTableVersion10

ActiveSheet.PivotTables("СводнаяТаблица 2").AddFields RowFields:= _

"Наименование"

ActiveSheet.PivotTables("СводнаяТаблица 2").PivotFields("Количество"). _

Orientation = xlDataField

ActiveWorkbook.ShowPivotTableFieldList = False

End Sub

Private Sub CommandButton2_Click()

Range("C13:D21").Select

Range("D21").Activate

Selection.ClearContents

End Sub

10. Добавим в обе процедуры команды активации и дезактивации кнопок:

– в первую

CommandButton1.Enabled = False

CommandButton2.Enabled = True

– во вторую

CommandButton2.Enabled = False

CommandButton1.Enabled = True

 

11. Вернемся в Excel и на панели «Элементы управления» нажмем кнопку «Выход из режима конструктора»

12. Если отчет еще не сформирован, то щелкаем по «Сформировать». Должна появиться сводная таблица и кнопка «Сформировать» станет не активной.

Если затем щелкнуть по кнопке «Очистить», то сводная таблица будет удалена, кнопка «Очистить» станет не активной, а кнопка «Сформировать» станет активной.

Возникшая ситуация приведена на рис 5.17.

Рис. 5.17. Организация интерфейса при расчетах с использованием сводных таблиц

 




Поделиться с друзьями:


Дата добавления: 2014-10-31; Просмотров: 369; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.035 сек.