Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как убрать фокус с созданной макросом кнопки
 
Что-то непонятное произошло с сообщением. Сам не понял, как это всё вставилось...

Юрий М спросил: "Зачем вставлять кнопки программно?"
Суть в том, чтобы при запуске файла появлялось что-то вроде меню: 2 кнопки ("Редактирование файла расчетной модели" и "Создание ссылок на чертежах"), которые должны запустить несколько разных процедур. Делать ради этого форму смысла не вижу. При этом при нажатии каждой из кнопок запускаются отдельные макросы, которые создают другие кнопки для дальнейшей работы с ними. Оставлять при этом начальные кнопки было бы нецелесообразно, поэтому, они удаляются до тех пор, пока пользователь снова не выйдет в главное меню.


Спасибо всем, кто ответил! Обнаружил много разных вариантов решения проблемы. Обязательно все испробую :-)
Изменено: JohnMC - 23.11.2017 13:05:05
Как убрать фокус с созданной макросом кнопки
 
Юрий М, спасибо за подсказку. Намек-то я видел. А вот, как сделать правильно, не знал. Буду разбираться.
Как убрать фокус с созданной макросом кнопки
 
Hugo, честно говоря, у меня ваш вариант не прошел. VBA выдал ошибку в другом месте " Нельзя установить свойство  Locked класса Range" (у меня в проге просто блокируются ячейки, которые не нужно трогать лишний раз). Не знаю, как это связано, но не суть. Я просто добавил перед каждой записью-параметра текста
".Characters ( Start:=1, Length:=37).Font"

Код макрорекордера на имя кнопки меня немного удивил. Я сам, насколько помню, из макрорекордера код на кнопку брал. И он был основан, как я и привёл выше, на методе Add и координатах кнопки.
Попробую, то, что вы написали, возможно подойдет )
Как убрать фокус с созданной макросом кнопки
 
Hugo, спасибо за вариант! Я сделал немного по-другому. Мне просто не понятно, к какому объекту относится свойство .Characters в вашем варианте...
Как убрать фокус с созданной макросом кнопки
 
Спасибо всем ещё раз! Я разобрался, что нужно делать. Вариант Андрея VG подходит как нельзя лучше!
Просто добавил код для оформления текста в блок With - End With.

Единственный вопрос, который остался - можно ли обращаться к таким кнопкам на листе по имени? Буду весьма благодарен за ответ.
Как убрать фокус с созданной макросом кнопки
 
Спасибо всем, кто откликнулся!
Насчёт того, что "Просто ТС нагло ленится оформить код". Это не так. Так как сижу в форуме с телефона, то код писал вручную, а это, как сами понимаете не проще, чем скопировать из редактора. Просто, если честно, я понятия не имею, как нужно оформлять код. Уж извините.

Андрей VG, попробовал ваш вариант. Всё получилось, спасибо! Но есть маленькая проблемка: после создания кнопки у меня была ещё такая запись по оформлению надписи на кнопке:
Код
With Selection.Characters(Start:=1, Length:=37).Font
        .Name = "Calibri"
        .FontStyle = "Regular"
        .Size =10
End With

Как понимаете, эта часть кода не срабатывает, так как нет объекта  Selection. Как быть в этом случае?
Простите, что код по-прежнему не оформлен )
Как убрать фокус с созданной макросом кнопки
 
     Приветствую всех, кто читает данную тему!

    Имеется вопрос по работе кнопки, добавленной просто на лист Excel (без формы) из элементов управления формы.

    Ситуация такова: имеются несколько процедур в VBA, которые запускаются кнопками на листе. Эти кнопки создаются с помощью кода, помещённого в модуль "ЭтаКнига" при помощи события Workbook_Open. Всё работает за исключением одной вещи: после создания кнопка оказывается выделенной рамкой и при щелчке клавишей мыши по ней вместо запуска макроса вовнутрь кнопки помещается курсор с возможностью редактирования надписи на ней. Приходится щелкать дополнительно по любой ячейке листа, чтобы снять выделение с кнопки. Существует ли команда для убирания редактируемого состояния кнопки после её создания, такая, чтобы при щелчке сразу запускался макрос?

Как ни странно, нигде не нашёл ответа на этот вопрос. Создаётся впечатление, будто только у меня возникла такая проблема.

Кнопка создаётся следующим образом:
Код
This Workbook.Worksheets (" Лист1").Buttons.Add (690, 250, 240, 25).Select
With Selection
    .Name = "ISO_DRAWING_BUTTON"
    .OnAction = "ISO_DRAWING_FILE"
    .Characters.Text = "Создание ссылок на чертежах"
End With

Благодарю всех за помощь!
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 
Просмотрел внимательно ваш файл. Обнаружил макрос )) Я с макросами раньше дело не имел, так что это мне в новинку ) Вроде даже понял, как он работает - по аналогии с условным форматированием для границ таблицы, если не ошибаюсь ) Правда, у меня выпадающие списки все равно видны за пределами таблицы... Видимо, я просто как-то не правильно использую макрос )
Большое вам спасибо за помощь! Буду теперь разбираться с макросом, чтобы всё правильно заработало )
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 
Немного удивительно, как в вашем файле оказался макрос, так как специально заходил на вкладку "Разработчик", чтобы проверить его наличие. Ну, вероятно, не разглядел ) Сейчас у меня компьютера рядом нет. Как вернусь, посмотрю обязательно ваш вариант. Спасибо большое )
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 
         Уважаемый Юрий М!
        Спасибо вам за участие в решении моих нестандартных задумок! :) К сожалению, это не совсем то, что требуется. Как я понял из предложенного вами решения, вы создали динамический диапазон значений для выпадающего списка. Однако необходимо создать динамический диапазон НЕ значений, а ячеек, в которых будут располагаться выпадающие списки. Если вы выберите различные значения в приложенном мною файле в ячейках AH2 и A4, то увидите, что количество строк в таблице меняется (границы таблицы подсвечиваются при помощи условного форматирования). Необходимо, чтобы выпадающие списки были в конкретном столбце во всех ячейках внутри указанной границы.

        В первую очередь меня интересует, возможно ли это осуществить в принципе (формулами, макросом или еще каким-либо способом). Нашел только решение, как создать активные выпадающие списки внутри таблицы, а те, которые будут находиться за ее пределами, просто не будут открываться. Это, конечно, альтернатива, но хотелось бы ее использовать в крайнем случае. К тому же это потребует значительных усилий и больших затрат времени. Буду рад выслушать любые предложения по данному вопросу.
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 
P.S. Наверное, я неправильно назвал это "таблицей". Вернее будет сказать - "совокупность данных".
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 
Спасибо всем, кто откликнулся!
Чтобы суть вопроса стала более ясной, прикладываю образец файла. В таблице заполнил только один столбик, чтобы не загромождать файл данными. В ячейках AH2, A4 находятся выпадающие списки, от значений в которых зависит содержимое и размер таблицы. Хотелось бы добавить выпадающие списки в ячейки столбца D так, чтобы в зависимости от числа строк в таблице менялось и количество выпадающих списков в ячейках.
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 
Спасибо большое, Sanja!
На самом деле ответ "возможно" меня вполне устраивает. Просто не хочется, чтобы за пределами таблицы были ячейки с выпадающими списками, в которых находились бы пустые строчки или, что еще хуже, какие-либо данные...
Теперь осталось только понять, как это сделать :-)
Выпадающий список в ячейках столбца внутри границы таблицы, Создание выпадающих списков во всех ячейках одного столбца таблицы, содержимое и размеры которой изменяются
 

Всем доброго времени суток!
Хотелось бы узнать, существует ли возможность создания выпадающих списков только в тех ячейках, которые находятся внутри создаваемой таблицы. Таблица формируется формулами из данных на листе в зависимости от выбранного значения в выпадающем списке (в определенной ячейке) и имеет разное содержимое и количество строк. В одном из столбцов таблицы хотелось бы организовать выпадающие списки для предоставления возможности выбора дополнительных параметров. Но, как я понимаю, с помощью Проверки данных невозможно указать условия наличия или отсутствия  выпадающего списка в конкретной ячейке. Возможно, это можно организовать при помощи макроса? Помогите, пожалуйста, если кто знает, как решить подобную задачу (достаточно краткого описания). Заранее спасибо!

Страницы: 1
Наверх