Нет фокуса в excel

 

Здравствуйте уважаемые форумчане.
Есть экранная форма отображаемая на экране инструкцией : UserForm.Show vbModalless , режим vbModalless обязателен.
На ней есть пара кнопок. По нажатию на кнопку отрабатывает макрос, но форма, оставаясь отображённой на экране, теряет фокус.
Для продолжения работы с формой приходится кликать мышкой на окне формы для её активации.

Пробовал, но не помогло  :
UserForm.ActiveControl.SetFocus
 и
UserForm.Enabled=True  

Подскажите, пож-та :  как при отображённой, но не активной,  UseForm  программно её активировать, т.е. вернуть на неё фокус?
Спасибо за помощь / совет.

Изменено: AndyGrouve24.01.2014 14:41:27

 

The_Prist

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

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

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

Самое простое — Hide и снова Show

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

 

Юрий М

Модератор

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

Контакты см. в профиле

#3

24.01.2014 14:51:28

Вариант:

Код
Sub Test()
    UserForm1.Hide
    UserForm1.Show 0
End Sub
 
 
The_Prist

Т.к. перед окончанием работы макроса у меня идёт информационный MsgBox , то получается не очень красиво для визуального восприятия пользователя :
1. Гаснет UserForm
2. Выводится MsgBox
3. Опять появляется UserForm
Предложенный вами вариант конечно рабочий, спасибо.
Может есть VBA-альтернатива сделать это одной командной?

 

The_Prist

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

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

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

Тогда поиском по форуму: API окно поверх всех
Но это куда более сложный вариант.

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

 

Dima S

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

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

че то мне кажется что там не так все просто.
от обычного  MsgBox фокус не теряется.
че там ваш макрос чудит?

 
Dima S

Вы правы. Причина в коде самого макроса : работа с ячейками, функции активации рабочих листов и т.д.
Собственно говоря, причина потери фокуса экранной формой именно в vba-коде макроса.
Думалось мне,  что проще найти решение по принудительнй установки фокуса чем переписывать «узкие» места vba-кода — оказалось иначе.
Посмотрел рекомендации уважаемого

The_Prist

— достаточно сложное для меня решение.  
Теперь склоняюсь к мысли, что может оставить предложенный вариант с
   UserForm1.Hide
   UserForm1.Show

 

Dima S

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

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

все равно у меня фокус не теряется.
клавишу таб пробовали?

 

AndyGrouve

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

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

#9

24.01.2014 15:42:12

Dima S

Цитата
клавишу таб пробовали?

Нет не пробовал.
Хочется что бы после нажатия Ок в MsgBox оставалась активной UserForm, но этого не происходит, фокус уходит на рабочий лист Экселя.
Спасибо.

 

Юрий М

Модератор

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

Контакты см. в профиле

#10

24.01.2014 15:47:37

Цитата
1. Гаснет UserForm
2. Выводится MsgBox
3. Опять появляется UserForm

Меняем местами п.п. 1 и 2 ))

 

AndyGrouve

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

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

#11

24.01.2014 16:08:51

Цитата
Юрий М
Меняем местами п.п. 1 и 2 ))

Отличный рецепт, попробовал — то что нужно!  :)  
БОЛЬШОЕ всем спасибо за помощь! Тему считаем закрытой.

Изменено: AndyGrouve24.01.2014 16:09:18

 

Dima S

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

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

#12

24.01.2014 16:09:43

Цитата
фокус уходит на рабочий лист Экселя.

а с чего вы взяли, что фокус уходит на лист?

 

The_Prist

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

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

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

Dima S, уходит по-любому. Т.к. для MsgBox родитель Excel, а не форма. И фокус возвращается родителю после закрытия Msgbox. Увы, неизлечимо.

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

 

Dima S

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

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

блин, то ли лыжи не едут…
вот переделал пример из форума.
по событию клика на форме делаются вышеперечисленные действия и фокус в комбобоксе простым SetFocus.
или не так?

Прикрепленные файлы

  • пример.xlsm (21.23 КБ)

 
Dima S

На моей UserForm только кнопки, ComboBox-ов нет.
Я так понял, что воспользоваться инструкцией SetFocus в моём случае не получится  :cry:  
Остановился на методе предложенном The_Prist и Юрий М
MsgBox » «
UserForm.Hide
UserForm.Show
Оказался не сложный и вполне рабочий вариант. Спасибо!

 

Михаил С.

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

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

#16

25.01.2014 20:38:01

Код
Private Sub CommandButton1_Click()
MsgBox ("")
Me.CommandButton1.SetFocus
End Sub

Private Sub CommandButton2_Click()
MsgBox ("")
Me.CommandButton2.SetFocus
End Sub
 

Игорь

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

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

#17

26.01.2014 11:50:59

Цитата
Т.к. для MsgBox родитель Excel, а не форма. И фокус возвращается родителю после закрытия Msgbox

Может, я что-то не так делаю, — но у меня фокус с немодальной формы никуда не уходит.

Создал файл Excel, добавил форму, в стандартном модуле написал макрос:

Код
Sub test()
    UserForm1.Show
    MsgBox 1
End Sub 

после выполнения кода — фокус на форме.

 

The_Prist

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

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

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

Теперь осталось выделить лист и ячейку на нем. После этого показать MsgBox. Фокус уйдет.

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

 

Hugo

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

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

Я думаю что переписать основной код, убрав лишние селекшены и активейты — в любом случае полезно :)
Да и работы там обычно не очень много.

 

AndyGrouve

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

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

#20

27.01.2014 11:49:00

Михаил С.

Цитата
Me.CommandButton2.SetFocus

Михаил, предложенный вами метод у меня тоже работает, спасибо вам большое !  :)

Изменено: AndyGrouve04.01.2018 12:09:44

 

NikVentura

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

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

#21

04.01.2018 09:03:39

UserForm.Hide — не надо
Работает и так:

Код
UserForm.Show
UserForm.TextBox.SetFocus 

Причин, по которым в Экселе не двигается курсор по ячейкам не так уж и много. Перечислим их в порядке частоты встречаемости:

  1. Нажата клавиша «Scroll Lock»;
  2. Включено закрепление областей (где-то на странице);
  3. Активирован режим «Расширение выделения»;
  4. Случился глюк с функцией залипания клавиш;
  5. Конфликт элементов надстройки Excel;
  6. Сбой в работе приложения Excel или всего Office;
  7. Вирусы в компе;
  8. Поломка клавиш клавиатуры.

Проблема проявляется по-разному:

  • При нажатии стрелок вместо перемещения по клеточкам двигается вся страница;
  • Вместо перехода начинается выделение ячеек;
  • Курсор вообще никак не реагирует на нажатие стрелочек;
  • Вся программа «висит» и «вылетает».

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

Клавиша «Scroll Lock»

Эту кнопку используют только выборочные приложения, поэтому она не всегда присутствует на клавиатуре. В Excel она активна. Из-за случайного нажатия на «Scroll Lock» вы могли активировать режим блокировки курсора, поэтому он и не двигается.

Слово «Scroll» с английского языка переводится, как «прокручивать», «пролистывать». «Lock» — «закрыть», «заблокировать». Дословный перевод обозначения передает функционал клавиши: блокировка прокрутки.

Достаточно одного нажатия и ваш курсор «замрет». Для отключения режима Scroll Lock нужно просто щелкнуть по этой клавише еще раз. Не можете ее найти?

  • На некоторых клавиатурах она совмещена с другими кнопками и обозначена сокращенно: «ScrLc», «ScLc»;
  • Ищите ее где-то между кнопками «Pause», «Delete» и «Insert»;
  • Включение/отключение режима также осуществляется по нажатию сочетания клавиш, чаще всего «Shift+F14». Иногда вместо «Shift» используется «Command», «Ctrl» или «Option»;
  • Если на вашей клавиатуре «Scroll Lock» нет, это не значит, что режим блокировки не функционирует. Просто его активация заложена под другие кнопки. На ноутбуках часто требуется комбинация с клавишей «FN»;
  • Если вы перебрали все варианты комбинаций клавиш, но курсор в Эксель все равно не двигается и не переходит по ячейкам стрелками, откройте экранную клавиатуру одним из 2 способов:
  1. Пуск — Специальные возможности — Экранная клавиатура.
  2. Вызовите командное меню «Win+R», вбейте команду «osk» (без кавычек) и нажмите «Enter».

Теперь просто щелкните мышкой упомянутую выше кнопку, здесь она точно есть.

Закрепление областей

Продолжим разбирать, почему в Экселе ячейки не передвигаются стрелками. Следующее объяснение – вы активировали режим закрепления областей (возможно, где-то в центре документа). Снимете закрепление, курсор снова будет двигаться по ячейкам. Вот как это сделать:

  • Перейдите во вкладку «Вид»;
  • Щелкните по значку «Закрепление областей»;
  • Выберите «Снять закрепление».

Режим «Расширение выделения»

Если курсор не двигается по ячейкам, а выделяет их, значит вы включили опцию «Расширение выделения». Чаще всего она выключается нажатием сочетания клавиш «FN+F8» или просто кнопки F8.

Узнать, активен ли один из дополнительных режимов, поможет строка состояния внизу экрана. Это такая узкая серая полоса со словом «Готово» в левой части. Если вы включили режимы Scroll Lock, «Расширить выделенный фрагмент» или любой другой, на ней будет соответствующая надпись.

Таким образом, если в Excel курсор не двигается и не переходит по ячейкам стрелками, первым делом взгляните на строку состояния.

«Глючит» опция залипания кнопок

Иногда стрелки в Экселе не перемещаются по ячейкам из-за зависшей опции залипания кнопок. Система воспринимает такую ошибку, как активный режим Scroll Lock.

  • Вызовите командное меню «Win+R» и наберите слово «control» (без кавычек), затем щелкните по клавише «Ввод»;

  • В появившемся окне (Панель управления) в поле для ввода поискового запроса (справа вверху) введите «Центр специальных возможностей»;

  • Выберите команду «Облегчение работы с клавиатурой», зайдите внутрь и поставьте галку в пункте «Включить залипание клавиш»;

  • Нажмите «Применить»;
  • Через полминуты повторите указанные действия, но теперь галку уберите. Снова щелкните по «Применить»;
  • Проверьте в Эксель, двигается ли курсор.

Конфликт элементов надстройки

Часто курсор в Экселе не двигается и не переходит по ячейкам стрелками из-за сбоя в надстройках программы. В этом случае рекомендуем отключить все дополнительные настройки, а затем поочередно их включать. Действуйте методично, проверяя после каждого изменения, двигается ли курсор по ячейкам.

Чтобы найти надстройки, сделайте следующее:

  • Зайдите в Excel и выберите вкладку «Файл»;
  • В столбце с разделами в самом низу найдите «Параметры»;

  • Перейдите в «Надстройки»;
  • В подразделе «Управление» щелкните по кнопке «Перейти»;
  • Уберите флажки со всех пунктов;
  • Сохраните изменения;
  • Теперь вернитесь к подразделу «Управление» и нажмите на значок выпадающего меню. Выберите пункт «Надстройки СОМ»;
  • Также снимите все флажки и сохранитесь;
  • Готово, теперь надо двигаться по ранее намеченному плану. Поочередно включайте надстройки и проверяйте курсор.

Сбой в работе Excel

Если предыдущие варианты не подошли и курсор в Excel все равно не двигается по ячейкам, возможно программа глючит. Разбираться, почему это случилось – долго и муторно. Самый простой способ решить проблему – снести с компа весь Office и поставить его заново.

Вирусы на компе

Вполне вероятно, у вас в Эксель ячейки не переключаются стрелками из-за вредоносного действия какого-то мелкого вируса. Он не дает курсору двигаться по ячейкам, что бы вы не предпринимали. Рекомендуем запустить антивирусную программу и инициировать полную проверку.

Сломалась клавиатура

Ну и, конечно, не стоит исключать вариант поломки клавы. Возможно, ваш курсор не двигается по ячейкам из-за того, что стрелки на ней перестали работать. Вспомните, не случалось ли с данным устройством в последнее время чего-то нестандартного? Чай не проливали? Кот десятикилограммовый не запрыгивал? Не роняли?

Если есть другая клавиатура, подключите и проверьте. Курсор двигается? Замечательно, проблема решена, несите старую клаву в ремонт.

На этом у нас все, мы перечислили все возможные ситуации, из-за которых курсор не двигается по ячейкам документа в Экселе. Один из них наверняка сработает, причем, скорее всего, самый первый! Удачного вам и продуктивного дня!

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

О том, как вычерпать море ситечком…

Кто часто анализирует таблицы с помощью автофильтра согласятся, что это инструмент удобный, но пользоваться им не совсем комфортно. Чтобы найти ячейки, содержащие тот или иной текст необходимо проделать несколько действий — щелкнуть по фильтру, выбрать пункт «Текстовые фильтры», выбрать пункт «содержит…», ввести соответствующий текст и нажать «ОК». Вот было бы здоров вводить текст в ячейку, а таблица бы автоматически фильтровалась.

Кто хоть раз пытался сделать ABC-анализ в MS Excel знает, что в принципе делается это легко, но все-таки приходится помучиться, ввести формулы, воспользоваться условным форматированием в общем потерять какую-то часть своего времени. В данной статье я расскажу, как можно очень сильно сократить время на выполнение этой рутинной операции.

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

Стандартный способ решения этой задачи — скопировать выделенные ячейки и вставить их как значения, воспользовавшись специальной вставкой. Но если формул много или нам необходимо заменить формулы на значения во всех листах рабочей книги? Через операцию копирования и вставки можно и до ночи промучиться.

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

Типичная задача. Есть много листов названия которых нас не устраивают. Мы хотим их переименовать. Делать это вручную очень долго.

Допустим мы «нарисовали» на листе некую таблицу и нам необходимо продублировать ее на несколько листов, допустим на 10. Простым копированием это делать достаточно лениво. Как можно сделать это быстро?

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

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

Стандартные функции MS Excel позволяют посчитать только количество символов в ячейке, чтобы посчитать количество слов необходимо написать сложную формулу. С надстройкой ЁXCEL это не проблема.

В MS Excel нет команды, которая бы устанавливала защиту сразу на все листы рабочей книги. Поэтому я сделал такую команду в надстройке ЁXCEL.

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

Получение фокуса в Excel

artic

Дата: Вторник, 02.02.2016, 16:37 |
Сообщение № 1

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

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

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


Excel 2013

Дали задание в Excel, но действия с фокусами поставили меня в тупик. Пожалуйста помогите люди умные…

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

4910078.xlsx
(11.3 Kb)

 

Ответить

_Boroda_

Дата: Вторник, 02.02.2016, 16:46 |
Сообщение № 2

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

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

Сообщений: 16618


Репутация:

6465

±

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


2003; 2007; 2010; 2013 RUS

Используйте в макросе событие Worksheet_SelectionChange. Почтайте в интернете куча информации по такому запросу.
для счетчика Target = Target + 1
Для даты Target = Date
Для времени Target = Time


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

 

Ответить

Решение разных по сложности задач в Microsoft Excel — быстро, просто и в гифках.

10 быстрых трюков с Excel

Юлия Перминова

Тренер Учебного центра Softline с 2008 года.

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

Все 10 лайфхаков доступны в любых версиях Microsoft Excel. Смотрите на движущиеся картинки, повторяйте на своих компьютерах и становитесь настоящими джедаями электронных таблиц!

1. Двойной щелчок по маркеру автозаполнения скопирует формулу до конца таблицы.

2. Растягивание ячейки с числовым значением за маркер автозаполнения при удерживании Ctrl создаёт список чисел по порядку.

3. Нажатие F11 при выделенном диапазоне создаёт на новом листе диаграмму на основе выделенных ячеек.

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

5. Можно одинаково изменить ширину сразу нескольких столбцов, изменив ширину только первого столбца при нескольких выделенных.

6. Ячейки можно объединять построчно в пределах большого блока, выбрав команду «Объединить по строкам» на вкладке «Главная».

7. Скопировать значение ячейки на множество соседних можно командой «Заполнить» с вкладки «Главная».

8. Принудительно перенести текст в ячейке по строкам позволит сочетание клавиш Alt + Enter.

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

10. Можно выделить все ячейки с формулами на листе, чтобы проверить, где формулы, а где значения. В этом поможет команда «Найти и выделить» → «Формулы».

Надеюсь, эти решения будут вам полезны при дальнейшей работе!

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