Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Код по созданию переключателя/кнопки типа ВКЛ/ВЫКЛ - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Код по созданию переключателя/кнопки типа ВКЛ/ВЫКЛ (Макросы/Sub)
Код по созданию переключателя/кнопки типа ВКЛ/ВЫКЛ
Yar4i Дата: Пятница, 02.12.2016, 15:27 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Доброе время дамы и господа.
В простом файле (книге) Excel нужно создать переключатель (кнопку) ActiveX.
Я заметил, что данный элемент (переключатель) имеет два положения "впуклое") и выпуклое, но не могу назначить на него две задачи.
Задачи простые:
1. ширину столбцов №9, 10 и 11 сделать 0,5, при нажатой кнопке-переключателе:
[vba]
Код
Columns("I:K").Select
Selection.ColumnWidth = 0.5
[/vba]
2. ширину столбцов №9, 10 и 11 сделать 5, при отжатой кнопке-переключателе:
[vba]
Код
Columns("I:K").Select
Selection.ColumnWidth = 5
[/vba]
Расскажу суть: файл "05" - простой экселевский файл, коих множество и во всех в них необходимо создать эту кнопку-переключатель, регулирующую ширину столбцов №9,10,11, но создать с помощью макроса. Сам макрос по созданию кнопки хранится в другом файле на рабочем столе и зовётся "Макрос" (с поддержкой собственно макросов). Запуск макроса осуществляю путем нажатия на панели быстрого доступа специально выведенной кнопки *. Т.е. жму кнопку * на панели задач в файле "05" и запускается макрос по созданию кнопки - переключателя, который присваивает переключателю две задачи (ширину 05 и 5).
Один раз вышла ошибка: Excel ругалсся на простоту файла "05", при последующем его сохранении и требовал сохранить как файл с поддержкой макросов. Но вроде она самоликвидировалась, но окошко "Будьте внимательны! В документе могут быть персональные данные..." всегда выскакивает после моего кода. Собственно сам код:
[vba]
Код
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ToggleButton.1", Link:=False, _
DisplayAsIcon:=False, Left:=140, Top:=100, Width:=22.5, Height:= _
31.5).Select
Selection.Verb Verb:=xlPrimary
Range("K8").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
Selection.Verb Verb:=xlPrimary
Range("K9").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
With Selection
.Placement = xlFreeFloating
.PrintObject = True
End With
Range("K10").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
Range("K7").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveWorkbook.Save
[/vba]
Прикрепляю два файла (в одном похоже модуль сохранился...) запутался в общем я
К сообщению приложен файл: 05.xlsm (22.9 Kb) · 05.xlsx (11.0 Kb)
 
Ответить
СообщениеДоброе время дамы и господа.
В простом файле (книге) Excel нужно создать переключатель (кнопку) ActiveX.
Я заметил, что данный элемент (переключатель) имеет два положения "впуклое") и выпуклое, но не могу назначить на него две задачи.
Задачи простые:
1. ширину столбцов №9, 10 и 11 сделать 0,5, при нажатой кнопке-переключателе:
[vba]
Код
Columns("I:K").Select
Selection.ColumnWidth = 0.5
[/vba]
2. ширину столбцов №9, 10 и 11 сделать 5, при отжатой кнопке-переключателе:
[vba]
Код
Columns("I:K").Select
Selection.ColumnWidth = 5
[/vba]
Расскажу суть: файл "05" - простой экселевский файл, коих множество и во всех в них необходимо создать эту кнопку-переключатель, регулирующую ширину столбцов №9,10,11, но создать с помощью макроса. Сам макрос по созданию кнопки хранится в другом файле на рабочем столе и зовётся "Макрос" (с поддержкой собственно макросов). Запуск макроса осуществляю путем нажатия на панели быстрого доступа специально выведенной кнопки *. Т.е. жму кнопку * на панели задач в файле "05" и запускается макрос по созданию кнопки - переключателя, который присваивает переключателю две задачи (ширину 05 и 5).
Один раз вышла ошибка: Excel ругалсся на простоту файла "05", при последующем его сохранении и требовал сохранить как файл с поддержкой макросов. Но вроде она самоликвидировалась, но окошко "Будьте внимательны! В документе могут быть персональные данные..." всегда выскакивает после моего кода. Собственно сам код:
[vba]
Код
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ToggleButton.1", Link:=False, _
DisplayAsIcon:=False, Left:=140, Top:=100, Width:=22.5, Height:= _
31.5).Select
Selection.Verb Verb:=xlPrimary
Range("K8").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
Selection.Verb Verb:=xlPrimary
Range("K9").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
With Selection
.Placement = xlFreeFloating
.PrintObject = True
End With
Range("K10").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
Range("K7").Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveWorkbook.Save
[/vba]
Прикрепляю два файла (в одном похоже модуль сохранился...) запутался в общем я

Автор - Yar4i
Дата добавления - 02.12.2016 в 15:27
Udik Дата: Пятница, 02.12.2016, 15:51 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Чет я не понял смысла манипуляций. Вот создали Вы переключатель в файле 05.xlsx и что дальше? Файл макросы не поддерживает и соответственно своих макросов в нем нет. Чтобы вызывать макросы по нажатию/отжатию нужно прописывать это в макросах событий элемента, но таких макросов нет т.к. формат файла не тот.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеЧет я не понял смысла манипуляций. Вот создали Вы переключатель в файле 05.xlsx и что дальше? Файл макросы не поддерживает и соответственно своих макросов в нем нет. Чтобы вызывать макросы по нажатию/отжатию нужно прописывать это в макросах событий элемента, но таких макросов нет т.к. формат файла не тот.

Автор - Udik
Дата добавления - 02.12.2016 в 15:51
nilem Дата: Пятница, 02.12.2016, 15:52 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
...коих множество и во всех в них необходимо создать эту кнопку-переключатель...

Может стоит добавить 2 кнопочки на ПБД - одна будет уменьшать ширину столбцов, другая увеличивать (и одной можно обойтись)?


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
...коих множество и во всех в них необходимо создать эту кнопку-переключатель...

Может стоит добавить 2 кнопочки на ПБД - одна будет уменьшать ширину столбцов, другая увеличивать (и одной можно обойтись)?

Автор - nilem
Дата добавления - 02.12.2016 в 15:52
Yar4i Дата: Пятница, 02.12.2016, 16:10 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Чтобы вызывать макросы по нажатию/отжатию нужно прописывать это в макросах событий элемента

Макросы в файле "05" сохранять не хочу, т.к. данный файл я передаю в другие руки и каждое лишнее сообщение (объект) на экране для них не желательно, поэтому и привязался я к условию, чтобы 05 не содержал макросов.
2 кнопочки на ПБД

я думал об этом, но для меня странно, что есть переключатель ВКЛ/ВЫКЛ и он не двузадачен.
 
Ответить
Сообщение
Чтобы вызывать макросы по нажатию/отжатию нужно прописывать это в макросах событий элемента

Макросы в файле "05" сохранять не хочу, т.к. данный файл я передаю в другие руки и каждое лишнее сообщение (объект) на экране для них не желательно, поэтому и привязался я к условию, чтобы 05 не содержал макросов.
2 кнопочки на ПБД

я думал об этом, но для меня странно, что есть переключатель ВКЛ/ВЫКЛ и он не двузадачен.

Автор - Yar4i
Дата добавления - 02.12.2016 в 16:10
nilem Дата: Пятница, 02.12.2016, 16:27 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Он вполне двузадачен. Нужно проверять его значение: нажат Value=1, отжат Value<>1

Или обойтись одной кнопкой: если ширина столбцов =0,5, то делаем ее 5, если нет, то 0,5
как-то так


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Пятница, 02.12.2016, 16:29
 
Ответить
СообщениеОн вполне двузадачен. Нужно проверять его значение: нажат Value=1, отжат Value<>1

Или обойтись одной кнопкой: если ширина столбцов =0,5, то делаем ее 5, если нет, то 0,5
как-то так

Автор - nilem
Дата добавления - 02.12.2016 в 16:27
Yar4i Дата: Пятница, 02.12.2016, 16:47 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
но таких макросов нет

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


Сообщение отредактировал Yar4i - Пятница, 02.12.2016, 16:48
 
Ответить
Сообщение
но таких макросов нет

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

Автор - Yar4i
Дата добавления - 02.12.2016 в 16:47
Udik Дата: Пятница, 02.12.2016, 16:54 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Так если Вы хотите задействовать макросы, без включения макросов никак, неважно где они расположены.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеТак если Вы хотите задействовать макросы, без включения макросов никак, неважно где они расположены.

Автор - Udik
Дата добавления - 02.12.2016 в 16:54
Yar4i Дата: Суббота, 03.12.2016, 06:12 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
без включения макросов никак

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

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

Автор - Yar4i
Дата добавления - 03.12.2016 в 06:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Код по созданию переключателя/кнопки типа ВКЛ/ВЫКЛ (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!