Добрый день, уважаемые форумчане обращаюсь к Вам с такой проблемой: есть объект msoControlEdit на ленте, при вводе в него значения и нажатия Enter происходит выборка из базы по условию из msoControlEdit, создается временный лист и на него выводится результат. После выбора нужного значения лист автоматически удаляется. Проблема состоит в том, что если мне необходимо сделать выборку второй раз с тем же самым условием т.е. значение в msoControlEdit не меняется (выделяю текст в msoControlEdit и нажимаю Enter), то вызов макроса не происходит. Не происходит он даже в том случае, если удалить один символ и потом его написать снова. Вопрос как сделать так, чтобы макрос вызывался каждый раз, даже если значение не изменялось.
Никак. Обязательно необходимо провести изменения. Лично я бы советовал после того как сделали выгрузку - менять программно значение поля(очищать или убирать один символ; добавить пробел и т.п.).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
как вариант - рядом с полем нарисовать кнопку и запускать макрос по ней. имхо, это более логично - макрос 100% запустится по команде. и не запустится, если вы отредактировали текст в поле, а потом передумали запускать макрос.
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Спасибо за ответы. Реализовал предложение ikki. To: Юрий М передача фокуса результата не дала. Видимо где-то хранится значение ДО начала редактирования и если оно совпадает с тем что есть на момент окончания редактирования (нажатие Enter), то макрос не вызывается. Еще раз всем спасибо. Вопрос решен.
Тогда вариант в порядке бреда (чтобы не рисовать кнопку): передаём фокус кому-нибудь, запоминаем введённое значение, очищаем контрол и снова заполняем его из переменной.