Excel кнопка для макроса

Кнопка для вызова макроса в Excel

Кнопка для вызова макроса в Excel

Добрый день, уважаемые читатели и подписчики блога! Как следует из заголовка, сегодня речь пойдёт о добавлении кнопок для вызова макроса. Вопрос, на мой взгляд, простой, но после получения нескольких десятков вопросов на эту тему, решил написать отдельный пост.

В прошлых статьях этот вопрос рассматривался вскользь. Теперь рассмотрим его более подробно и обстоятельно.

Вызывать макросы в Excel можно несколькими способами (естественно, макросы должны быть в книге):

  • вставкой кнопки;
  • сочетанием клавиш;
  • вставкой автофигуры;
  • вставкой рисунка.

Вставка кнопки.

Переходим на вкладку «Разработчик», в блоке кнопок «Элементы управления» нажимаем «Вставить», в появившемся списке выбираем вариант «Кнопка».

В выпавшем списке есть два варианта: кнопка как элемент управления формы и как элемент ActiveX. В принципе, большой разницы в выборе кнопок нет, так что возьмём кнопку из блока «Элементы управления формы».

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

Первый — это кнопка управления формы, второй — кнопка управления ActiveX.

Отличие — в добавлении вызова макроса. В первом случае нужно щёлкнуть правой кнопкой и выбрать «Назначить макрос…», во втором просто сделать двойной щелчок по кнопке и дописать вызов макроса. В моём случае это «Call DF».

Сочетание клавиш

С сочетанием клавиш всё гораздо проще. Переходим на вкладку «Разработчик», нажимаем кнопку «Макросы», в выпавшем окне выбираем макрос (DF), нажимаем кнопку «Параметры» и назначаем сочетание клавиш. Как правило это сочетание с клавишей Ctrl. Для вызова макроса нужно просто нажать назначенные клавиши.

Автофигура

Переходим на вкладку «Вставка», нажимаем кнопку «Иллюстрации», в выпавшем списке выбираем «Фигуры» и выбираем фигуру, которую хотим вставить. После выбора фигуры не забываем щёлкнуть по листу, как и в случае с кнопками.

Далее, щёлкаем правой кнопкой мышки по фигуре и используем пункт «Назначить макрос…» как и в кнопках. Выбираем наш макрос и жмём «OK».

Рисунок

С рисунками та же ситуация, что и с фигурами. Поэтому повторять порядок действий не буду. Вместо «Фигуры» нужно выбрать «Рисунки» и указать путь к любому рисунку на вашем ПК.

Далее снова щёлкаем правой кнопкой мышки и выбираем «Назначить макрос», выбираем нужный нам и нажимаем «ОК».

В итоге у нас появится книга Excel с четырьмя вариантами вызова макросов.

Скажу напоследок, что таким же способом можно назначить макрос и объекту WordArt, SmarArt рисунку, любой диаграмме.

Источник: pcandlife.ru

Назначение макроса форме или кнопке элемента управления

Вы можете использовать кнопку элемента управления формы или кнопку команды (элемент ActiveX) для запуска макроса, выполняющего действия при нажатии пользователем. Обе эти кнопки также называются кнопкой “Отправить”, которую можно настроить для автоматизации печати листа, фильтрации данных или вычисления чисел. Как правило, кнопки элемента управления формы и кнопки элемента управления ActiveX похожи на внешний вид и функции. Однако у них есть несколько отличий, которые описаны в следующих разделах.

Кнопка (элемент управления формы)

Командная кнопка (элемент ActiveX)

В следующих разделах приведены инструкции по добавлению макроса на кнопку в Excel (для Windows или Mac).

Примечание: Элементы ActiveX не поддерживаются на компьютере Mac.

Макросы и средства VBA можно найти на вкладке разработчик , которая по умолчанию скрыта.

Первый этап — включить его. Дополнительные сведения можно найти в статье: Отображение вкладки Разработчик.

Добавление кнопки (элемент управления формы)

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

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

Назначьте кнопку макроса, а затем нажмите кнопку ОК.

Чтобы задать свойства элемента управления, щелкните ее правой кнопкой мыши и выберите пункт Формат элемента управления.

Кнопка “добавить команду” (элемент ActiveX)

На вкладке разработчик в группе элементы управления нажмите кнопку Вставить, а затем в разделе элементы ActiveXнажмите кнопку команд .

Щелкните на листе место, где должен быть расположен левый верхний угол кнопки.

В группе элементы управления нажмите кнопку Просмотреть код. Откроется редактор Visual Basic. Убедитесь в том, что выбран пункт в раскрывающемся списке справа. Процедура Sub CommandButton1_Click (на рисунке ниже) выполняет два макроса при нажатии кнопки: SelectC15 и хелломессаже.

В подпроцедуре для кнопки Command выполните одно из указанных ниже действий.

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

При необходимости добавьте собственный код VBA.

Закройте редактор Visual Basic и щелкните режим конструктора , чтобы включить режим конструктора.

Чтобы запустить код VBA, который теперь входит в состав кнопки, щелкните только что созданную кнопку ActiveX.

Чтобы изменить элемент ActiveX, убедитесь, что выбран режим конструктора. На вкладке Разработчик в группе Элементы управления нажмите кнопку Режим конструктора.

Чтобы указать свойства кнопки, на вкладке разработчик в группе элементы управления нажмите кнопку Свойства . Вы также можете щелкнуть кнопку правой кнопкой мыши и выбрать пункт Свойства.

Примечание: Перед тем как нажать кнопку Свойства, выделите объект, свойства которого требуется просмотреть или изменить.

Откроется диалоговое окно Свойства . Для получения дополнительных сведений о каждом свойстве выберите свойство и нажмите клавишу F1, чтобы отобразить соответствующий раздел справка по Visual Basic. Можно также ввести имя свойства в поле Поиск справки Visual Basic. В приведенной ниже таблице перечислены доступные свойства.

Загружается ли элемент управления при открытии книги. (Не учитывается для элементов ActiveX).

Может ли элемент управления получать фокус и реагировать на события, генерируемые пользователем.

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

Имя элемента управления

Способ привязки элемента управления к расположенным под ним ячейкам (не закреплен, можно перемещать, но нельзя изменять размер, можно перемещать и изменять размер)

Можно ли выводить элемент управления на печать

Является ли элемент управления видимым или скрытым

Читайте также:  Excel vlookup формула

Атрибуты шрифта (полужирный, курсив, размер, зачеркивание, подчеркивание и насыщенность)

Bold, Italic, Size, StrikeThrough, Underline, Weight (форма)

Поясняющий текст элемента управления, определяющий или описывающий его

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

Размер и положение

Будет ли размер элемента управления изменяться автоматически для отображения всего содержимого

Высота или ширина в пунктах

Height, Width (форма)

Расстояние от элемента управления до левого или верхнего края листа

Стиль фона (прозрачный или непрозрачный)

Цвет переднего плана

Наличие тени элемента управления

Точечный рисунок, отображаемый в элементе управления

Положение рисунка относительно его заголовка (слева, сверху, справа и так далее)

Клавиатура и мышь

Сочетание клавиш для элемента управления

Настраиваемый значок мыши

Тип указателя, отображаемого при наведении пользователем указателя мыши на определенный объект (стандартная, стрелка, I-образная и т. д.).

Принимает ли элемент управления фокус при щелчке.

Макросы и средства VBA можно найти на вкладке ” разработчик “, которая скрыта по умолчанию, поэтому первым делом нужно включить ее.

Перейдите в раздел настройки > Excel . Панель инструментов & > ленты.

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

Добавление кнопки (элемент управления формы)

Выполните указанные ниже действия:

На вкладке разработчик нажмите кнопку .

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

Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите команду назначить макрос.

Назначение макроса кнопке и нажатие кнопки ОК.

Чтобы задать свойства элемента управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления....

Кнопка добавления команды (элемент управления Visual Basic)

На вкладке разработчик нажмите кнопку .

Щелкните на листе место, где должен находиться левый верхний угол кнопки.

Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите команду назначить макрос.

В диалоговом окне Назначение макроса нажмите кнопку создать, после чего откроется Редактор Visual Basic ( VBE) на панели с помощью следующего кода:

В подпроцедуре для кнопки Command между дочерними и конечными подстроками выполните одно из указанных ниже действий.

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

Добавьте собственный код VBA.

Щелкните режим конструктора , чтобы убедиться в том, что режим конструктора выключен, а затем закройте окно редактора Visual Basic.

Чтобы изменить кнопку, щелкните ее правой кнопкой мыши и выберите команду Visual Basic.

Чтобы задать свойства элемента управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления....

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

См. также

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Источник: support.office.com

Создание кнопки в excel для макросов

Рассмотрим несколько вариантов создания кнопок в Excel для запуска какой-нибудь процедуры. Для примера напишем простую процедуру, которая будет присваивать текстовой значение ячейки равным «Привет, мир!»

Переходим на вкладку Разработчик (о том как добавить ее вы можете узнать из статьи о вкладках в Excel ) и нажимаем иконку Visual Basic (либо можно воспользоваться комбинацией клавиш Alt+F11).

Откроет окно Microsoft Visual Basic for Applications. Создадим модуль.

В левой области окна Project – VBAProject нажимаем правую кнопку мыши на Microsoft Excel Objects – Insert – Module

В открывшемся окне пишем процедуру:

Далее переходим на лист Excel.

Создание кнопки через картинку или изображение

Создадим на листе простой прямоугольник с надписью «Кнопка». Нажимаем по нему правой кнопкой мыши и выбираем пункт назначить макрос.

В открытом окне программа предложит список макросов со всех открытых книг. В моем случае открыта только одна книга и в не всего один макрос «Привет». Выделяем его и нажимаем ОК.

Снимаем выделение с прямоугольника. Теперь при нажатии мышкой на него будет выполняться макрос «Привет». Для выделения элементов с назначенными макросам для последующего редактирования используйте правую кнопку мыши.

Создание кнопки элемент управления формой

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

Добавляем элемент: переходим на вкладку Разработчик – Вставить – Выбираем элемент кнопка:

Обратите внимание, как только вы нажали добавить, Excel сам просит вас назначить макрос для нее, вы можете выбрать уже существующий или создать новый. Если же вы макрос не выбрали – это можно сделать позже, нажав правую кнопку мыши на кнопки и выбрав пункт назначить макрос, точно также как мы делали с прямоугольником.

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

Создание кнопки ActiveX на листе и форме.

Как и в предыдущем примере нажимаем на вкладке Разработчик иконку вставить, но теперь выбираем кнопку элемент ActiveX:

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

Далее на панели инструментов нажимаем свойства:

Сейчас нас интересует свойство Caption – именно оно отвечает за надпись на кнопке. Атрибут Name отвечает за обращение к кнопке в коде процедуры, давайте тоже изменим, напишем просто Btn1 (использовать только латинские буквы).

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

Пишем код для запуска процедуры с названием Привет, которую мы создали в самом начале:

Все, кнопка создана, можно проверять (не забудьте перед проверкой отключить режим конструктора).

Читайте также:  Макросы в excel 2010

Кнопка на форме создается аналогично, только сперва создадим форму. Переходим в окно VBA (ALT+F11). Нажимаем правой кнопкой мыши на Microsoft Excel Objects – Insert – UserForm

По умолчанию вызвался инструмент Toolbox из которого мы должны добавить кнопку CommandButton. Вставляем ее на форму и сразу изменим имя. Это делается точно также, как и со случаем кнопки ActiveX на листе, только сейчас для того, чтобы выбрать свойства нажимает правой клавишей на кнопке и выбираем Properties:

Также изменяем свойство Caption на Кнопка, а свойство Name на Btn1. Далее заходим в код кнопки – двойной щелчок на кнопке. Пишем в коде процедуры Call Привет:

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

Свойство Name созданной формы имеет значение UserForm1 (это легко проверить, зайдя в свойства (Properties) самой формы). Для того, чтобы выводить форму, теперь заходим в код кнопки на листе (режим конструктора должен быть включен). И меняем Call Привет на UserForm1.Show вот так:

Все проверяем. Нажимаем кнопку на листе (перед этим отключаем режим конструктора):

Источник: excelinfo.ru

Excel кнопка для макроса

В данной статье я расскажу, как сделать кнопку для запуска своего макроса.

Файлы для скачивания:

Файл Описание Размер файла: Скачивания
Пример 14 Кб 1284

Давайте возьмем файл с предварительно записанным макросом или запишем новый макрос, как это сделать описано в статье ” Как записать макрос не зная языка VBA? “.

Чтобы вставить в рабочий лист Кнопку , необходимо настроить (включить) вкладку “Разработчик” на ленте главного меню ( Как добавить вкладку “Разработчик” на ленту? ).

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

Переходим на страницу, на которой будем размещать кнопку, в главном меню во вкладке “Разработчик” нажимаем кнопку “Вставить”, в выпавшем списке выбираем команду “Кнопка (элемент управления формы)”

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

Откроется диалоговое окно “Назначить макрос объекту”:

В этом окне выбираем наш макрос и нажимаем “ОК”:

Диалоговое окно закроется, а в указанном нами месте на листе появиться кнопка:

Щелкните по любой ячейке левой клавишей мышки, с кнопки снимется выделение:

Щелкните левой клавишей мышки по кнопке – макрос выполниться:

Чтобы макрос выполнялся по нажатию определенных клавиш, читайте статью “Как назначить макросу сочетание клавиш?”

Источник: e-xcel.ru

Как создать кнопку для вызова макроса на листе?

После создания макроса часто возникает вопрос: а как его теперь запустить? Можно, конечно, нажать сочетание клавиш Alt+F8 и выбрать нужный макрос, но. Во-первых это не всегда удобно, особенно если макросов больше 5-ти. Во-вторых: если файлом с макросом будут пользоваться другие люди, не умеющие всего этого делать, придется объяснять им все это, что тоже не очень здорово – многие просто будут вспоминать Вас не очень хорошими словами 🙂

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

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

Кнопка элемент ActiveX
Данная кнопка считается устаревшей и не рекомендуется к использованию. Однако многие все же предпочитают использовать именно её(либо не знают, что можно по-другому). Так же назначить для этой кнопки макрос кому-то покажется сложнее, чем для остальных, рассматриваемых в данной статье. Как создать такую кнопку:

  • В версии Excel 2007 и выше доступ к этим элементам возможен с вкладки Разработчик (Developer) :
    Отобразить вкладку Разработчик (Developer)(если еще не отображена)
    Excel 2007: Параметры Excel (Excel Options)Основные (Popular) – галочка напротив Показывать вкладку Разработчик на ленте (Show Developer Tab on Ribbon)

    Excel 2010: Файл (File)Параметры (Options)Настройка ленты (Customize Ribbon) – галочка напротив Разработчик (Developer)
    Теперь переходим на эту вкладку и видим команду Вставить (Insert) . Жмем и у нас выпадает меню с возможностью выбрать элементы:

    В категории “Элементы ActiveX” выбираем самый первый(это серенький кирпичик). Курсор приобретет вид тоненького крестика. Теперь нам надо на листе нарисовать кнопку. Все, наша кнопка готова.

  • Для обладателей версии Excel 2003 не намного все проще. Сначала необходимо отобразить панель инструментов Элементы управления. Делается это следующим образом: правая кнопка мыши на панели меню- Настройка– вкладка Панели инструментов

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

Теперь осталось назначить созданной кнопке макрос. Для этого, не выходя из режима конструктора (в Excel 2007 он на вкладке Разработчик (Developer) , а в Excel 2003 на панели Visual Basic – ), производим двойной щелчок по созданной кнопке – Excel перейдет в режим редактирования кода из интерфейса VBA и автоматом будет создана пустая процедура: Private Sub CommandButton1_Click(). CommandButton1 – это имя нашей кнопки. У Вас оно может отличаться. Теперь внутрь процедуры мы вписываем строку вызова макроса – Call Макрос1. Вместо Макрос1, естественно, имя необходимого макроса.

Private Sub CommandButton1_Click() Call Макрос1 End Sub

А вот на этом, пожалуй, все для данного элемента.

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

Кнопка элемент управления формы
Здесь чуть проще. Для того, чтобы добавить данный элемент на лист для начала придется выполнить примерно те же действия, что и для создания кнопки ActiveX.
Для пользователей 2007 Excel и выше отобразить вкладку Разработчик (Developer) на ленте(если еще не отображена). Только выбор кнопки теперь надо делать из первой группы – Элементы управления форм.
для пользователей 2003 сначала надо добавить панель инструментов Формы: правая кнопка мыши на панели- Настройка– вкладка Панели инструментов. Жмем на первый элемент – серенький кирпичик. Рисуем. Как только Вы нарисуете кнопку появится меню с просьбой назначить макрос на кнопку(рис.1). Вы можете сделать это сразу, либо позже.

Автофигура
Для пользователей Excel 2007-2010 : вкладка Вставка (Insert)Фигуры (Shapes) . Просто выбираете любую понравившуюся фигуру.
Для пользователей Excel 2003 для начала необходимо отобразить панель инструментов Рисование, как было описано выше. Там выбрать пункт Автофигуры и выбрать из категории понравившуюся фигуру.
После создания фигуры можно кликнуть по ней правой кнопкой мыши, выбрать Формат фигуры и изменить там оформление фигуры: цвет заливки, прозрачность, обводку и еще разные опции – здесь все зависит от фантазии.

Рисунок
для пользователей Excel 2007 : вкладка Вставка (Insert)Рисунок (Picture) . Выбираете любой рисунок из имеющихся на компьютере.
Для пользователей 2003 сначала необходимо отобразить панель инструментов Рисование(если не отображена). Далее жмем на кнопку Добавить рисунок из файла .

как назначить макрос
Для Кнопки элемент управления формы, Автофигуры и Рисунка процедура назначения макроса совершенно одинакова: жмем правой кнопкой мыши на элементе управления формы, фигуре или картинке – Назначить макрос.

Появится диалоговое окно выбора макросов. Выбираете нужный и жмете Ок. Все, наша кнопка готова и по её нажатии выполняется выбранный нами макрос.
рис.1

Таким же образом можно назначить макрос не только указанным элементам, но и Диаграмме, элементу Надпись, обекту WordArt, рисунку SmartArt.

Статья помогла? Поделись ссылкой с друзьями!

Источник: www.excel-vba.ru

Как сделать кнопку в Excel с помощью макроса и гиперссылки

Кнопка в Excel как ссылка на ячейку, какой-либо инструмент, созданный макрос значительно упрощает работу в программе. Чаще всего это графический объект с назначенным макросом или гиперссылкой. Рассмотрим, как сделать такую кнопку.

Как сделать кнопку на листе Excel

Суть работы: создать графический объект и назначить для него макрос или гиперссылку. Рассмотрим подробнее.

Способы создания графического объекта:

  1. Кнопка – элемент ActiveX. Переходим на вкладку «Разработчик». Нажимаем кнопку «Вставить». Открывается меню с набором элементов для вставки. Выбираем первый элемент ActiveX – «кнопку» (в виде серого кирпичика). Теперь рисуем курсором кнопку необходимого размера.
  2. Кнопка – элемент управления формы. Снова переходим на вкладку «Разработчик». Открываем меню инструмента «Вставить». Теперь выбираем элемент «кнопка» из первой группы (такой же серый кирпичик). Рисуем кнопку. Сразу открывается окно для назначения макроса: можно сделать сразу, а можно попозже.
  3. Кнопка – автофигура. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем подходящую фигуру. Рисуем. По готовой фигуре можно щелкнуть правой кнопкой мыши и изменить оформление.
  4. Кнопка – рисунок. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем инструмент «Рисунок». Для выбора будут предложены варианты, которые имеются на компьютере.

Графический объект создан. Теперь нужно сделать его «рабочим».

Как в Excel сделать кнопку с макросом

К примеру, написали макрос для выполнения определенной задачи. Чтобы запускать его, нужно каждый раз заходить в меню «Разработчик». Что неудобно. Гораздо проще создать «рабочую» кнопку.

Если мы использовали элемент ActiveX, то:

  • включаем режим конструктора (он находится на вкладке «Разработчик»);
  • щелкаем два раза кнопкой мыши по созданной кнопке – откроется режим Visual Basic с автоматически созданным пустым каркасом;
  • вписываем между двумя строками команду для вызова макроса.

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

Другие варианты использования кнопок

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

Нарисуем графический объект и выделим его. На вкладке «Вставка» найдем кнопку «Гиперссылка».

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

Достаточно выбрать необходимый вариант и прописать к нему путь. Этот способ не требует написания макросов и предоставляет пользователю широкие возможности.

Подобные задачи можно выполнять и с помощью макросов. Например, чтобы при нажатии, пользователь попадал в определенную ячейку (М6), прописываем следующий код:

Sub Макрос 1()
Range(“M6”).Select
End Sub

Точно так же можно назначить макрос диаграмме, объектам WordArt, SmartAtr.

Как сделать кнопку сортировки в Excel для таблиц

Для показательного примера создайте тестовую таблицу как на рисунке:

  1. Вместо заголовков колонки таблицы добавим автофигуры, которые будут служить кнопками для сортировки по столбцам таблицы.
  2. В режиме Visual Basic – ALT+F11 в папке Modules вставляем новый модуль Module1. Для этого делаем по папке правый щелчок мышкой и выбираем: Insert-Module.
  3. Делаем двойной щелчок по Module1 и вводим в него следующий код: Sub Макрос1()
    ActiveWorkbook.Worksheets(“Лист1”).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(“Лист1″).Sort.SortFields.Add Key:=Range(” A2:A6 “), _
    SortOn:=xlSortOnValues, Order:= xlAscending , DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(“Лист1”).Sort
    .SetRange Range(“A2:D6”)
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос2()
    ActiveWorkbook.Worksheets(“Лист1”).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(“Лист1″).Sort.SortFields.Add Key:=Range(” B2:B6 “), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(“Лист1”).Sort
    .SetRange Range(“A2:D6”)
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос3(
    ) ActiveWorkbook.Worksheets(“Лист1”).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(“Лист1″).Sort.SortFields.Add Key:=Range(” C2:C6 “), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(“Лист1”).Sort
    .SetRange Range(“A2:D6”)
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос4()
    ActiveWorkbook.Worksheets(“Лист1”).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(“Лист1″).Sort.SortFields.Add Key:=Range(” D2:D6 “), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(“Лист1”).Sort
    .SetRange Range(“A2:D6”)
    .Apply
    End With
    End Sub Примечание. Красным текстом отмечены отличающиеся параметры для каждого столбца.
  4. Назначаем каждой автофигуре свой макрос: для «Наименование» – Макрос1, а для «Май» – Макрос2 и т.д.

Все теперь достаточно только кликнуть по заголовку и таблица отсортирует данные относительно определенного столбца. Для удобства столбец «Наименование» Макрос1 сортирует по возрастанию благодаря параметру Order:=xlAscending. Во всех остальных столбцах присвоены макросы (2,3,4) с параметром Order:=xlDescending, который задает тип сортировки по убыванию. Чтобы видно было, в каком месяце было больше продано товара.

Примечание. Такие простые макросы можно создать в автоматическом режиме без программирования или без написания VBA-кода, с помощью инструмента «Запись макроса».

Источник: exceltable.com