Добрый день, Уважаемые! Вся дополнительная инфа в прикрепленннмо файле. |
|
vikttur Пользователь Сообщений: 47199 |
Одна кнопка. При изменении значения в ячейке изменять назначенный кнопке макрос — не вариант? |
The_Prist Пользователь Сообщений: 14183 Профессиональная разработка приложений для MS Office |
В модуль листа(Правый щелчок мыши на ярлыке листа-Исходный текст): Private Sub Worksheet_Change(ByVal Target As Range) Можно упростить, но так Вам будет понятней. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Очень даже хороший вариант. |
|
Вариант с одной кнопкой и одной строкой в макросе =65784= — стрит! |
|
The_Prist Пользователь Сообщений: 14183 Профессиональная разработка приложений для MS Office |
Вариант с чуть большим кол-вом строк: Private Sub Worksheet_Change(ByVal Target As Range) Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Спасибо за быстрый ответ! |
|
The_Prist Пользователь Сообщений: 14183 Профессиональная разработка приложений для MS Office |
{quote}{login=Казанский}{date=13.09.2010 10:16}{thema=}{post}Вариант с одной кнопкой и одной строкой в макросе :){/post}{/quote}Алексей(?), на Print_S80 нужно две копии, кажется….По крайней мере так в макросе…. Можно заменить одной: А у Казанского две копии в зависимости от выбора можно сделать так: Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Да, Дмитрий, я заметил эти две одинаковые строки, но подумал, что это ошибка. |
|
The_Prist Пользователь Сообщений: 14183 Профессиональная разработка приложений для MS Office |
{quote}{login=Казанский}{date=13.09.2010 11:11}{thema=}{post}Да, Дмитрий, я заметил эти две одинаковые строки, но подумал, что это ошибка.{/post}{/quote}Да я смотрю автор все равно уже получил чего хотел…Притом с возможностью выбора вариантов решения Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Pchela Пользователь Сообщений: 38 |
Здравствуйте, Экселеведы! |
Pchela Пользователь Сообщений: 38 |
Я в своем примере написала,что бланк должен распечатываться. Нет. просто сохраняться. Но буду признательна,если подскажите еще кодик,как этот бланк автоматически отправить по электоронке на адрес, указаный в ячейке допустим A1 |
слэн Пользователь Сообщений: 5192 |
может просто обрабатывать текущий лист? кнопку вывести на панель инструментов, выбрать лист, нажать кнопку, 1 макрос напечатает имеено выбранный бланк.. |
Pchela Пользователь Сообщений: 38 |
Сейчас так и есть, но бланков много, и скакать по книге в поисках нужного-неудобно. Да,и система такая,что на одну операцию может заполняться несколько разных бланков. Да,и не хотелось бы,чтобы пользователь залезал в листы с бланками,я их скрыть хочу. Т.к. очень много любителей самодеятельностью заниматься,да и книга так будет более комфортна для работы. |
Hugo Пользователь Сообщений: 23257 |
У Вас разница между двумя модулями только в одном символе: Sheets(«Бланк1»).Range(«A1:CB50»).CopyPicture Appearance:=xlScreen, Format:=xlPicture Можно как-нибудь придумать, как в код передавать соотв. значение переменной n: Насчёт имён — тут нет указания, с какого листа брать значения: |
Pchela Пользователь Сообщений: 38 |
А может быть такое возможно? |
слэн Пользователь Сообщений: 5192 |
тогда выпадающий список бланков и отдельная кнопка для инициации действия( можно и вообще без кнопки — можно после выбора и подтверждения нажатием интер) а диапазоны надо указывать с принадлежностью к листу… не просто range(«a5») — так оно к текущему листу относится, а thisworkbook.sheets(«бланк1»).range(«a5») или еще можно для каждого бланка задать имя и оперировать им, тогда лист указывать необязательно.. |
Pchela Пользователь Сообщений: 38 |
{quote}{login=Hugo}{date=02.03.2012 02:58}{thema=}{post}У Вас разница между двумя модулями только в одном символе: Можно как-нибудь придумать, как в код передавать соотв. значение переменной n: |
Pchela Пользователь Сообщений: 38 |
‘ Сохранить Word-документ |
Hugo Пользователь Сообщений: 23257 |
‘ Сохранить Word-документ Или, что длиннее: ‘ Сохранить Word-документ |
Pchela Пользователь Сообщений: 38 |
Спасибо! вот я напутала с кодами) |
Pchela Пользователь Сообщений: 38 |
#22 02.03.2012 15:33:37 Но вопрос с тем, как лучше организовать сохранение разных бланков пока открыт… Жду… очень… советов! |
Вставка командной кнопки на рабочий лист для начинающих программировать с нуля. Кнопки из коллекций «Элементы управления формы» и «Элементы ActiveX».
Начинаем программировать с нуля
Часть 3. Первая кнопка
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Добавление вкладки «Разработчик»
Вкладка с инструментами, связанными с VBA Excel, называется «Разработчик». Если этой вкладки нет на вашей ленте, добавьте ее через окно «Параметры»:
Порядок действий:
- Откройте окно «Параметры» через меню «Файл».
- Выберите вкладку «Настроить ленту».
- В правой колонке установите галочку у пункта «Разработчик» и нажмите «OK».
Кнопка – элемент управления формы
Вставка кнопки на лист
- Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
- Нажмите на значок кнопки в коллекции «Элементы управления формы».
- Кликните в любом месте на рабочем листе Excel.
- Откроется окно «Назначить макрос объекту». Нажмите «Отмена», так как макрос для этой кнопки еще не готов.
- После нажатия кнопки «Отмена», на рабочем листе появится новая кнопка из коллекции «Элементы управления формы» в режиме редактирования.
Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.
Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.
Чтобы вернуться в режим редактирования кнопки, кликните по ней правой кнопкой мыши и выберите из контекстного меню нужный пункт. Если вы хотите изменить размер или размещение кнопки перетаскиванием, кликните левой кнопкой мыши в любом месте рабочего листа. После первого клика контекстное меню закроется, а кнопка останется в режиме редактирования.
Создание процедуры для кнопки
Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.
Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) и перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.
Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».
В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».
Вставьте внутрь шаблона процедуры следующий код:
‘Записываем в ячейку A1 число 44 Cells(1, 1) = 44 ‘Записываем в ячейку B1 число 56 Cells(1, 2) = 56 ‘Записываем в ячейку C1 формулу, которая ‘вычисляет сумму значений ячеек A1 и B1 Cells(1, 3) = «=A1+B1» |
На этом процедура (подпрограмма, макрос) для кнопки готова.
Назначение макроса кнопке
Кликните правой кнопкой мыши по кнопке на рабочем листе и в контекстном меню выберите строку «Назначить макрос…», откроется окно «Назначить макрос объекту».
Выберите в списке процедуру «NovayaProtsedura» и нажмите «OK». Кликните левой кнопкой мыши по рабочему листу, чтобы командная кнопка вышла из режима редактирования.
Теперь можете нажать созданную кнопку из коллекции «Элементы управления формы» для проверки ее работоспособности.
Кнопка – элемент ActiveX
Вставка кнопки на лист
- Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
- Нажмите на значок кнопки в коллекции «Элементы ActiveX».
- Кликните по рабочему листу и кнопка из коллекции «Элементы ActiveX» появится рядом с курсором.
- Автоматически включится режим редактирования, включение и отключение которого осуществляется кнопкой «Режим конструктора».
Ухватив кнопку за кружок, можно изменить ее размер, а ухватив за границу – перетащить на другое место. Чтобы отредактировать наименование кнопки, нужно кликнуть на ней правой кнопкой мыши и в контекстном меню выбрать «Объект CommandButton» > «Edit».
Добавление процедуры
Кликните дважды по кнопке из коллекции «Элементы ActiveX» левой кнопкой мыши в режиме конструктора. Это приведет к открытию модуля листа, на который вставлена кнопка, и записи шаблона процедуры «CommandButton1_Click».
Вставьте внутрь шаблона процедуры код, который будет очищать ячейки A1, B1 и C1:
Перейдите на рабочий лист и, если кнопка «Режим конструктора» затемнена, нажмите на нее, чтобы выйти из режима редактирования. После этого нажмите кнопку «CommandButton1», и она очистит ячейки, заполненные ранее нажатием кнопки «Кнопка 1».
Теперь кнопка из коллекции «Элементы управления формы» (Кнопка 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 |
такое возможно.
1 |
аналитика здесь больше нет… 3372 / 1670 / 184 Регистрация: 03.02.2010 Сообщений: 1,219 |
||||
18.06.2012, 17:22 |
3 |
|||
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 средствами VBA в зависимости от значения другой ячейки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
Настройка кнопки на два действия с условиями |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Как сделать кнопку в Excel? Войдите в раздел «Разработчик», откройте меню «Вставить», выберите изображение и назначьте макрос, гиперссылку, переход на другой лист или иную функцию. Ниже подробно рассмотрим все способы создания клавиш в Эксель, а также приведем функции, которые им можно присвоить.
Как создать кнопку: базовые варианты
Перед тем как сделать кнопку в Эксель, убедитесь в наличии режима разработчика. Если такой вкладки нет, сделайте следующие шаги:
- Жмите по ленте правой клавишей мышки (ПКМ).
- В появившемся меню кликните на пункт «Настройка ленты …».
- В окне «Настроить ленту» поставьте флажок возле «Разработчик».
- Кликните «ОК».
После того, как сделана подготовительная работа, можно вставить кнопку в Excel. Для этого можно использовать один из рассмотренных ниже способов.
Через ActiveX
Основной способ, как создать кнопку в Excel — сделать это через ActiveX. Следуйте такому алгоритму:
- Войдите в раздел «Разработчик».
- Жмите на кнопку «Вставить».
- В появившемся меню выберите интересующий элемент ActiveX.
- Нарисуйте его нужного размера.
Через элемент управления
Второй вариант — создание кнопки в Excel через элемент управления. Алгоритм действий такой:
- Перейдите в «Разработчик».
- Откройте панель «Вставить».
- Выберите интересующий рисунок в разделе «Элемент управления формы».
- Нарисуйте нужный элемент.
- Назначьте макрос или другую функцию.
Через раздел фигур
Следующий способ, как добавить кнопку в Excel на лист — сделать это с помощью раздела «Фигуры». Алгоритм действий такой:
- Перейдите в раздел «Вставка».
- Войдите в меню «Иллюстрации», где выберите оптимальную фигуру.
- Нарисуйте изображение необходимой формы и размера.
- Кликните ПКМ по готовой фигуре и измените оформление.
В качестве рисунка
Вставка кнопки Excel доступна также в виде рисунка. Для достижения результата пройдите такие шаги:
- Перейдите во вкладку «Вставка».
- Кликните в категорию «Иллюстрации».
- Выберите «Рисунок».
- Определитесь с типом клавиши, который предлагается программой.
Какие кнопки можно создать
В Excel возможно добавление кнопки двух видов:
- Command Button — срабатывает путем нажатия, запускает определенное действие (указывается индивидуально). Является наиболее востребованным вариантом и может играть роль ссылки на страницу, таблицу, ячейку и т. д.
- Toggle Button — играет роль переключателя / выключателя. Может нести определенные сведения и скрывать в себе два параметра — Faste и True. Это соответствует двум состояниям — нажато и отжато.
Также перед тем как поставить кнопку в Эксель, нужно определиться с ее назначением. От этого напрямую зависят дальнейшие шаги. Рассмотрим разные варианты.
Макрос
Часто бывают ситуации, когда необходимо создать кнопку макроса в Excel, чтобы она выполняла определенные задачи. В обычном режиме для запуска нужно каждый раз переходить в раздел разработчика, что требует потери времени. Проще создать рабочую клавишу и нажимать ее по мере неободимости.
Если вы решили сделать клавишу с помощью ActiveX, алгоритм будет таким:
- Войдите в «Режим конструктора».
- Кликните дважды по ней.
- В режиме Visual Basic между двумя строками впишите команду, необходимую для вызова макроса., к примеру, Call Макрос1.
- Установите назначение для остальных графических объектов, если они есть.
Зная, как назначить кнопку в Excel, вы легко справитесь с задачей. Но можно сделать еще проще — жмите на рисунок ПКМ и в списке внизу перейдите в раздел «Назначить макрос». Здесь уже задайте интересующую команду.
Переход на другой лист / ячейку / документ
При желании можно сделать кнопку в Excel, которая будет отправлять к другому документу, ячейке или листу. Для этого сделайте следующее:
- Подготовьте клавишу по схеме, которая рассмотрена выше.
- Выделите ее.
- На вкладке «Вставка» отыщите «Гиперссылка».
- Выберите подходящий вариант. Это может быть файл, веб-страница, e-mail, новый документ или другое место.
- Укажите путь.
Рассмотренный метод не требует указания макросов и предоставляет расширенные возможности. При желании можно также использовать и макросы.
Существует и другой способ, как сделать кнопку в Excel для перехода к определенному листу. Алгоритм такой:
- Создайте рисунок по рассмотренной выше схеме.
- В окне «Назначить макрос» введите имя макроса, а после жмите на клавишу входа в диалоговое окно Microsoft Visual Basic.
- Вставьте код для перехода к другому листу — ThisWorkbook.Sheets(«Sheet1»).Activate. Здесь вместо Sheet1 укажите путь к листу с учетом запроса.
- Сохраните код и закройте окно.
Сортировка таблиц
При желании можно сделать клавишу для сортировки таблиц Excel. Алгоритм действий такой:
- Создайте текстовую таблицу.
- Вместо заголовков добавьте автофигуры, которые в дальнейшем будут играть роль клавиш-ссылок на столбцах таблицы.
- Войдите в Visual Basic режим, где в папке Modules вставьте модуль Module1.
- Кликните ПКМ по папке и жмите на Insert Module.
- Сделайте двойной клик по Module1 и введите код.
- Назначьте каждой фигуре индивидуальный макрос.
После выполнения этих шагов достаточно нажать по заголовку, чтобы таблица сортировала данные в отношении определенного столбца.
По рассмотренным выше принципам несложно разобраться, как в Экселе сделать кнопки выбора и решения других задач. В комментариях расскажите, какой из приведенных методов вам подошел, и как проще всего самому сделать клавишу в программе.
Отличного Вам дня!