Условия для кнопок в excel

 

Добрый день, Уважаемые!  
Прошу Вас помочь в решении следующей задачи.  
Необходимо чтобы в зависимости от значения ячейки на листе с данными автоматически появлялась уже существующая кнопка с определенным макросом.  

  Вся дополнительная инфа в прикрепленннмо файле.  
Буду рад любой помощи

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Одна кнопка. При изменении значения в ячейке изменять назначенный кнопке макрос — не вариант?

 

The_Prist

Пользователь

Сообщений: 14183
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

В модуль листа(Правый щелчок мыши на ярлыке листа-Исходный текст):  

  Private Sub Worksheet_Change(ByVal Target As Range)  
If Target.Address(0, 0) <> «D2» Then Exit Sub  
Select Case [D2]
Case «Серия_20»  
Me.Shapes(«Кнопка 14»).Visible = True  
Me.Shapes(«Кнопка 16»).Visible = False  
Me.Shapes(«Кнопка 17»).Visible = False  
Case «Серия_40»  
Me.Shapes(«Кнопка 14»).Visible = False  
Me.Shapes(«Кнопка 16»).Visible = True  
Me.Shapes(«Кнопка 17»).Visible = False  
Case «Серия_80»  
Me.Shapes(«Кнопка 14»).Visible = False  
Me.Shapes(«Кнопка 16»).Visible = False  
Me.Shapes(«Кнопка 17»).Visible = True  
End Select  
End Sub  

  Можно упростить, но так Вам будет понятней.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Очень даже хороший вариант.  
Я плоховато разбираюсь в макросах, то что было создано сделано макрорекордером.  
Сможете помочь?

 

Вариант с одной кнопкой и одной строкой в макросе :)  

  =65784= — стрит!

 

The_Prist

Пользователь

Сообщений: 14183
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Вариант с чуть большим кол-вом строк:  

  Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target.Address(0, 0) <> «D2» Then Exit Sub  
   With Me.Shapes(«Кнопка 14»)  
       .OnAction = «Print_S» & Right$([D2], 2): .OLEFormat.Object.Text = «Распечатать Паспорт на Серия_» & Right$([D2], 2)
   End With  
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Спасибо за быстрый ответ!  
Очень помогло!

 

The_Prist

Пользователь

Сообщений: 14183
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

{quote}{login=Казанский}{date=13.09.2010 10:16}{thema=}{post}Вариант с одной кнопкой и одной строкой в макросе :){/post}{/quote}Алексей(?), на Print_S80 нужно две копии, кажется….По крайней мере так в макросе….  
Хотя эти строки:  
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  

  Можно заменить одной:        
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True  

    А у Казанского две копии в зависимости от выбора можно сделать так:  
Sheets(Range(«D2»).Value).PrintOut Copies:=Abs([D2] = «Серия_80») + 1, Collate:=True

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

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

 

The_Prist

Пользователь

Сообщений: 14183
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

{quote}{login=Казанский}{date=13.09.2010 11:11}{thema=}{post}Да, Дмитрий, я заметил эти две одинаковые строки, но подумал, что это ошибка.{/post}{/quote}Да я смотрю автор все равно уже получил чего хотел…Притом с возможностью выбора вариантов решения :-)  
Так что вопрос с тем, ошибка у него в макросе или нет, я думаю он уже сам решит.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

Здравствуйте, Экселеведы!    
Есть листы с бланками,которые заполняются автоматически. Я создала отдельный лист,поместила туда кнопки (каждому бланку своя),присвоила макрос,который копирует данные из определенного листа и диапазона как рисунок, вставляет и сохраняет в ворде. Наименование вордовского файла ДОЛЖНО формироваться из данных конкретных ячеек. У меня как раз это не получается. посмотрите,в чем я ошиблась.  
И еще, посоветуйте,может есть более изящное и мудрое решение как организовать весь этот процесс. Меня волнует то,что каждой кнопке — отдельный макрос. количество видов бланков растет.А это нагромождение. Очень жду ваших советов

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

Я в своем примере написала,что бланк должен распечатываться. Нет. просто сохраняться. Но буду признательна,если подскажите еще кодик,как этот бланк автоматически отправить по электоронке на адрес, указаный в ячейке допустим A1

 

слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

может просто обрабатывать текущий лист?  

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

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

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

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

У Вас разница между двумя модулями только в одном символе:  

   Sheets(«Бланк1»).Range(«A1:CB50»).CopyPicture Appearance:=xlScreen, Format:=xlPicture  
 Sheets(«Бланк2»).Range(«A1:CB50»).CopyPicture Appearance:=xlScreen, Format:=xlPicture  

  Можно как-нибудь придумать, как в код передавать соотв. значение переменной n:  
 Sheets(«Бланк» & n).Range(«A1:CB50»).CopyPicture Appearance:=xlScreen, Format:=xlPicture  

  Насчёт имён — тут нет указания, с какого листа брать значения:  
 objWord.ActiveDocument.SaveAs ThisWorkbook.Path & «/» & Range(«A5») & «_» & Range(«A6»)  
т.е. будет браться с активного листа.

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

А может быть такое возможно?  
прописать в макросе такое:  
ищем по листам в ячейке A5 значение,которое совпадает с названием кнопки и при нахождении такового совершает вышеописаные действия. может я бред пишу?) Но тогда была бы одна кнопочка на все и создавай бланков сколько хочешь.

 

слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

тогда выпадающий список бланков и отдельная кнопка для инициации действия( можно и вообще без кнопки — можно после выбора и подтверждения нажатием интер)  

  а диапазоны надо указывать с принадлежностью к листу…  

  не просто range(«a5») — так оно к текущему листу относится, а  

  thisworkbook.sheets(«бланк1»).range(«a5»)  

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

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

{quote}{login=Hugo}{date=02.03.2012 02:58}{thema=}{post}У Вас разница между двумя модулями только в одном символе:  

   Можно как-нибудь придумать, как в код передавать соотв. значение переменной n:  
 Sheets(«Бланк» & n).Range(«A1:CB50»).CopyPicture Appearance:=xlScreen, Format:=xlPicture  
{/post}{/quote}  
Все сложнее. Эти названия я взяла для примера. А на самом деле они будут соответствовать названию самих бланков,т.е. так же как будет написано в ячейке A5

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

‘ Сохранить Word-документ  
 objWord.SaveAs ThisWorkbook.Sheets(«Бланк1»).Path & «/» & Range(«A5») & «_» & Range(«A6»)  
   FName = objWord.ActiveDocument.FullName  
Что в строке нужно поправить,подскажите?

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

‘ Сохранить Word-документ  
 With ThisWorkbook.Sheets(«Бланк1»)  
 objWord.ActiveDocument.SaveAs ThisWorkbook.Path & «/» & .Range(«A5») & «_» & .Range(«A6»)  
 End With  
 FName = objWord.ActiveDocument.FullName  

    Или, что длиннее:  

   ‘ Сохранить Word-документ  
 objWord.ActiveDocument.SaveAs ThisWorkbook.Path & «/» & ThisWorkbook.Sheets(«Бланк1»).Range(«A5») & «_» & ThisWorkbook.Sheets(«Бланк1»).Range(«A6»)  
 FName = objWord.ActiveDocument.FullName

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

Спасибо! вот я напутала с кодами)

 

Pchela

Пользователь

Сообщений: 38
Регистрация: 01.01.1970

#22

02.03.2012 15:33:37

Но вопрос с тем, как лучше организовать сохранение разных бланков пока открыт… Жду… очень… советов!

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

Начинаем программировать с нуля
Часть 3. Первая кнопка
[Часть 1] [Часть 2] [Часть 3] [Часть 4]

Добавление вкладки «Разработчик»

Вкладка с инструментами, связанными с VBA Excel, называется «Разработчик». Если этой вкладки нет на вашей ленте, добавьте ее через окно «Параметры»:

Окно «Параметры Excel»

Порядок действий:

  • Откройте окно «Параметры» через меню «Файл».
  • Выберите вкладку «Настроить ленту».
  • В правой колонке установите галочку у пункта «Разработчик» и нажмите «OK».

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

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

  1. Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
  2. Нажмите на значок кнопки в коллекции «Элементы управления формы».

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

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

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

Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.

Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.

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

Создание процедуры для кнопки

Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.

Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) и перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».

Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.

Вставка модуля в редакторе VBA Excel

Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.

Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

Вставка процедуры в редакторе VBA Excel

В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».

Окно добавления процедуры в редакторе VBA Excel

В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».

Шаблон процедуры в редакторе VBA Excel

Вставьте внутрь шаблона процедуры следующий код:

‘Записываем в ячейку A1 число 44

Cells(1, 1) = 44

‘Записываем в ячейку B1 число 56

Cells(1, 2) = 56

‘Записываем в ячейку C1 формулу, которая

‘вычисляет сумму значений ячеек A1 и B1

Cells(1, 3) = «=A1+B1»

Процедура в редакторе VBA Excel

На этом процедура (подпрограмма, макрос) для кнопки готова.

Назначение макроса кнопке

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

Окно «Назначить макрос объекту»

Выберите в списке процедуру «NovayaProtsedura» и нажмите «OK». Кликните левой кнопкой мыши по рабочему листу, чтобы командная кнопка вышла из режима редактирования.

Теперь можете нажать созданную кнопку из коллекции «Элементы управления формы» для проверки ее работоспособности.

Кнопка – элемент ActiveX

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

  1. Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
  2. Нажмите на значок кнопки в коллекции «Элементы ActiveX».

Добавление кнопки на рабочий лист (элемент ActiveX)

  1. Кликните по рабочему листу и кнопка из коллекции «Элементы ActiveX» появится рядом с курсором.
  2. Автоматически включится режим редактирования, включение и отключение которого осуществляется кнопкой «Режим конструктора».

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

Ухватив кнопку за кружок, можно изменить ее размер, а ухватив за границу – перетащить на другое место. Чтобы отредактировать наименование кнопки, нужно кликнуть на ней правой кнопкой мыши и в контекстном меню выбрать «Объект CommandButton» > «Edit».

Добавление процедуры

Кликните дважды по кнопке из коллекции «Элементы ActiveX» левой кнопкой мыши в режиме конструктора. Это приведет к открытию модуля листа, на который вставлена кнопка, и записи шаблона процедуры «CommandButton1_Click».

Шаблон процедуры в модуле рабочего листа Excel

Вставьте внутрь шаблона процедуры код, который будет очищать ячейки A1, B1 и C1:

Процедура в модуле рабочего листа Excel

Перейдите на рабочий лист и, если кнопка «Режим конструктора» затемнена, нажмите на нее, чтобы выйти из режима редактирования. После этого нажмите кнопку «CommandButton1», и она очистит ячейки, заполненные ранее нажатием кнопки «Кнопка 1».

Две кнопки на рабочем листе Excel

Теперь кнопка из коллекции «Элементы управления формы» (Кнопка 1) будет заполнять ячейки диапазона «A1:C1», а кнопка из коллекции «Элементы ActiveX» (CommandButton1) очищать их.


bagryanova

1

Активность кнопки на листе в зависимости от значения ячейки

18.06.2012, 17:05. Показов 2895. Ответов 3


Студворк — интернет-сервис помощи студентам

Добрый день!
Подскажите, можно сделать кнопку на листе в экселе, что бы она появлялась(становилась активной) при определенном значение одной из ячеек, в других случаях была бы невидимой или неактивной.
Если такое возможно, то как это реализовать???

призрак

3261 / 889 / 119

Регистрация: 11.05.2012

Сообщений: 1,702

Записей в блоге: 2

18.06.2012, 17:15

2

такое возможно.
с помощью обработчиков событий листа Worksheet_Change() и/или Worksheet_Calculate()



1



аналитика

здесь больше нет…

3372 / 1670 / 184

Регистрация: 03.02.2010

Сообщений: 1,219

18.06.2012, 17:22

3

Visual Basic
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$6" Then
        CommandButton1.Enabled = (Target.Value = 1)
    End If
End Sub



2



bagryanova

19.06.2012, 09:12

4

Спасибо за помощь. Именно это и было нужно!

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

19.06.2012, 09:12

Помогаю со студенческими работами здесь

Активность кнопки в зависимости от корректности введенных данных
Подскажите, пожалуйста, каким образом сделать проверку внесения данных на форме чтобы кнопке…

Задать значения ячейки excel, в зависимости от значения другой ячейки
Всем, доброго времени суток. Нужно помощь при работе в excel. Перечитал кучу форумов, кое-что на…

Из одной ячейки на одном листе раскидать данные в другие ячейки в другом листе
Помогите пожалуйста! Экстренная ситуация, вплоть до увольнения:(
Надо из одной ячейки на одном…

Привязать значение ячейки на одном листе к значению ячейки в другом листе
как привязать значение ячейки на одном листе к значению ячейки в другом листе, чтобы при сортировке…

Как задать значение для ячейки в зависимости от значения другой ячейки
Здравствуйте! Подскажите, как задать значение для ячейки в зависимости от значения другой ячейки….

Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки
Здравствуйте.
Столкнулся с проблемой. Необходимо на листе Excel Залить, предположим, ячейку &quot;C4&quot;…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

4

Настройка кнопки на два действия с условиями

mower07

Дата: Суббота, 16.01.2016, 17:19 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

День добрый!

Подскажите, что не так с кнопкой?

[vba]

Код

Private Sub CommandButton1_Click()
If CommandButton1 Then
If CommandButton1.Caption = «Показать» Then
Call CommandButton1_Click1
CommandButton1.Caption = «Скрыть»
Else
Call CommandButton1_Click2
CommandButton1.Caption = «Показать»
End If
End If

End Sub

[/vba]
Макросы, которые вызывает Call работают, проверил

Должны выполняться два макроса в зависимости от названия кнопки
[moder]Обрамляйте код спецтегами. Кнопка #. Поправил Вам.

Сообщение отредактировал _Boroda_Суббота, 16.01.2016, 18:26

 

Ответить

Udik

Дата: Суббота, 16.01.2016, 17:36 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 1588


Репутация:

192

±

Замечаний:
0% ±


Excel 2016 х 64

Может таки приложите файл? Хотя
[vba]

Код

If CommandButton1 Then

[/vba]
уже вызывает сомнения. Что Вы этим проверить хотите?


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com

 

Ответить

mower07

Дата: Суббота, 16.01.2016, 17:46 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Udik, файл не могу приложить, т.к. в нем дорогая рабочая база :(

Цитата

Что Вы этим проверить хотите?

Этот код я взял на каком то сайте, по сути: если кликаешь на кнопку, то идет обработка условия и выполняется один из двух макросов

 

Ответить

Udik

Дата: Суббота, 16.01.2016, 17:50 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1588


Репутация:

192

±

Замечаний:
0% ±


Excel 2016 х 64

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


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com

 

Ответить

mower07

Дата: Суббота, 16.01.2016, 17:55 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Этот код я вводил в Worksheet

Сейчас высветилось вот такое

Перебил все макросы в код конпки и заработало, спасибо, тему можно закрыть

 

Ответить

_Boroda_

Дата: Суббота, 16.01.2016, 18:38 |
Сообщение № 6

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А почему не хотите просто вот так?
[vba]

Код

Private Sub CommandButton1_Click()
    If CommandButton1.Caption = «Скрыть» Then
        ActiveSheet.Range(«$A$1:$C$10″).AutoFilter Field:=3, Criteria1:=»<>»
        CommandButton1.Caption = «Показать»
    Else
        ActiveSheet.Range(«$A$1:$C$10»).AutoFilter Field:=3
        CommandButton1.Caption = «Скрыть»
    End If
End Sub

[/vba]
Диапазоны свои поставьте.

К сообщению приложен файл:

1756871.xlsm
(19.3 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

mower07

Дата: Суббота, 16.01.2016, 20:20 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Такой вопрос, посмотрите на скрине плывет кнопка почему-то
Есть идеи?

_Boroda_, можно и так, будет попроще

К сообщению приложен файл:

6238359.png
(34.5 Kb)

Сообщение отредактировал mower07Суббота, 16.01.2016, 20:20

 

Ответить

_Boroda_

Дата: Суббота, 16.01.2016, 20:54 |
Сообщение № 8

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Что значит «плывет»? Возможно, вы о свойстве TakeFocusOnClick.
Разработчик — Конструктор — ПКМ на своей кнопке — Свойства — в TakeFocusOnClick поставьте False.
Посмотрите у меня в предыдущем моем файле, там так и сделано.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

mower07

Дата: Суббота, 16.01.2016, 21:05 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

_Boroda_, да, действительно. Спасибо!

 

Ответить

Wasilich

Дата: Понедельник, 18.01.2016, 13:05 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

Информация для размышления! :)

К сообщению приложен файл:

___.xls
(35.0 Kb)

 

Ответить

mower07

Дата: Понедельник, 18.01.2016, 17:06 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Информация для размышления!
К сообщению приложен файл: ___.xls(35Kb)

Спасибо, интересно :)

 

Ответить

Как сделать кнопку в Excel? Войдите в раздел «Разработчик», откройте меню «Вставить», выберите изображение и назначьте макрос, гиперссылку, переход на другой лист или иную функцию. Ниже подробно рассмотрим все способы создания клавиш в Эксель, а также приведем функции, которые им можно присвоить.

Как создать кнопку: базовые варианты

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

  1. Жмите по ленте правой клавишей мышки (ПКМ).
  2. В появившемся меню кликните на пункт «Настройка ленты …».
  3. В окне «Настроить ленту» поставьте флажок возле «Разработчик».
  4. Кликните «ОК».

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

Через ActiveX

Основной способ, как создать кнопку в Excel — сделать это через ActiveX. Следуйте такому алгоритму:

  1. Войдите в раздел «Разработчик».
  2. Жмите на кнопку «Вставить».
  3. В появившемся меню выберите интересующий элемент ActiveX.
  4. Нарисуйте его нужного размера.

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

Второй вариант — создание кнопки в Excel через элемент управления. Алгоритм действий такой:

  1. Перейдите в «Разработчик».
  2. Откройте панель «Вставить».
  3.  Выберите интересующий рисунок в разделе «Элемент управления формы».
  4. Нарисуйте нужный элемент.
  5. Назначьте макрос или другую функцию.

Через раздел фигур

Следующий способ, как добавить кнопку в Excel на лист — сделать это с помощью раздела «Фигуры». Алгоритм действий такой:

  1. Перейдите в раздел «Вставка».
  2. Войдите в меню «Иллюстрации», где выберите оптимальную фигуру.
  3. Нарисуйте изображение необходимой формы и размера.
  4. Кликните ПКМ по готовой фигуре и измените оформление.

В качестве рисунка

Вставка кнопки Excel доступна также в виде рисунка. Для достижения результата пройдите такие шаги:

  1. Перейдите во вкладку «Вставка».
  2. Кликните в категорию «Иллюстрации».
  3. Выберите «Рисунок».
  4. Определитесь с типом клавиши, который предлагается программой.

Какие кнопки можно создать

В Excel возможно добавление кнопки двух видов:

  1. Command Button — срабатывает путем нажатия, запускает определенное действие (указывается индивидуально). Является наиболее востребованным вариантом и может играть роль ссылки на страницу, таблицу, ячейку и т. д.
  2. Toggle Button — играет роль переключателя / выключателя. Может нести определенные сведения и скрывать в себе два параметра — Faste и True. Это соответствует двум состояниям — нажато и отжато.

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

Макрос

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

Если вы решили сделать клавишу с помощью ActiveX, алгоритм будет таким:

  • Войдите в «Режим конструктора».

  • Кликните дважды по ней.
  • В режиме Visual Basic между двумя строками впишите команду, необходимую для вызова макроса., к примеру, Call Макрос1.

  • Установите назначение для остальных графических объектов, если они есть.

Зная, как назначить кнопку в Excel, вы легко справитесь с задачей. Но можно сделать еще проще — жмите на рисунок ПКМ и в списке внизу перейдите в раздел «Назначить макрос». Здесь уже задайте интересующую команду.

Переход на другой лист / ячейку / документ

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

  • Подготовьте клавишу по схеме, которая рассмотрена выше.
  • Выделите ее.
  • На вкладке «Вставка» отыщите «Гиперссылка».

  • Выберите подходящий вариант. Это может быть файл, веб-страница, e-mail, новый документ или другое место.
  • Укажите путь.

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

Существует и другой способ, как сделать кнопку в Excel для перехода к определенному листу. Алгоритм такой:

  1. Создайте рисунок по рассмотренной выше схеме.
  2. В окне «Назначить макрос» введите имя макроса, а после жмите на клавишу входа в диалоговое окно Microsoft Visual Basic.
  3. Вставьте код для перехода к другому листу — ThisWorkbook.Sheets(«Sheet1»).Activate. Здесь вместо Sheet1 укажите путь к листу с учетом запроса.
  4. Сохраните код и закройте окно.

Сортировка таблиц

При желании можно сделать клавишу для сортировки таблиц Excel. Алгоритм действий такой:

  • Создайте текстовую таблицу.
  • Вместо заголовков добавьте автофигуры, которые в дальнейшем будут играть роль клавиш-ссылок на столбцах таблицы.

  • Войдите в Visual Basic режим, где в папке Modules вставьте модуль Module1.
  • Кликните ПКМ по папке и жмите на Insert Module.
  • Сделайте двойной клик по Module1 и введите код.
  • Назначьте каждой фигуре индивидуальный макрос.

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

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

Отличного Вам дня!

Понравилась статья? Поделить с друзьями:
  • Условия для значений фильтр excel
  • Условия для вычисления формулы excel
  • Условия для выделения цветом в excel
  • Условия выполнения программы word
  • Условия выполнения программы excel