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

Вход

Регистрация

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

 

= Мир MS Excel/После защиты и снятия защиты текущий лист переключается - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » После защиты и снятия защиты текущий лист переключается (Макросы/Sub)
После защиты и снятия защиты текущий лист переключается
vvgotsev Дата: Среда, 01.12.2021, 19:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

В файле 3 листа.

На первом листе - кнопка защиты листов 2-3:
[vba]
Код
ThisWorkbook.Worksheets("Лист2").Protect Password:="1"
ThisWorkbook.Worksheets("Лист3").Protect Password:="1"
[/vba]

и кнопка снятия защиты с этих листов:
[vba]
Код
ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
[/vba]

После последовательного нажатия на кнопку "Защита" (Лист1) и на кнопку "Снять защиту" (Лист1) почему-то становится активным Лист2...
Если запускать из контекстного меню, то лист не переключается.

Что за эффект и как его убрать?
Спасибо!

У меня:
Microsoft® Excel® для Microsoft 365 MSO (версия 2109 Сборка 16.0.14430.20292) 64-разрядная
К сообщению приложен файл: TryProtect_1.xlsm (26.3 Kb)


Сообщение отредактировал vvgotsev - Среда, 01.12.2021, 19:52
 
Ответить
СообщениеВ файле 3 листа.

На первом листе - кнопка защиты листов 2-3:
[vba]
Код
ThisWorkbook.Worksheets("Лист2").Protect Password:="1"
ThisWorkbook.Worksheets("Лист3").Protect Password:="1"
[/vba]

и кнопка снятия защиты с этих листов:
[vba]
Код
ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
[/vba]

После последовательного нажатия на кнопку "Защита" (Лист1) и на кнопку "Снять защиту" (Лист1) почему-то становится активным Лист2...
Если запускать из контекстного меню, то лист не переключается.

Что за эффект и как его убрать?
Спасибо!

У меня:
Microsoft® Excel® для Microsoft 365 MSO (версия 2109 Сборка 16.0.14430.20292) 64-разрядная

Автор - vvgotsev
Дата добавления - 01.12.2021 в 19:51
wild_pig Дата: Среда, 01.12.2021, 22:59 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Это с книгой проблема. Закинул в чистую и не скачет.
 
Ответить
СообщениеЭто с книгой проблема. Закинул в чистую и не скачет.

Автор - wild_pig
Дата добавления - 01.12.2021 в 22:59
vvgotsev Дата: Четверг, 02.12.2021, 09:37 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

wild_pig, закинул в чистую - все равно переключается (файл аттачу).
М.б. это что-то с моим Excel'ем ?
К сообщению приложен файл: Try2.xlsm (19.7 Kb)
 
Ответить
Сообщениеwild_pig, закинул в чистую - все равно переключается (файл аттачу).
М.б. это что-то с моим Excel'ем ?

Автор - vvgotsev
Дата добавления - 02.12.2021 в 09:37
and_evg Дата: Четверг, 02.12.2021, 09:55 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
  ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
  ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - and_evg
Дата добавления - 02.12.2021 в 09:55
vvgotsev Дата: Четверг, 02.12.2021, 09:58 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

and_evg, тоже к сожалению не помогает.
 
Ответить
Сообщениеand_evg, тоже к сожалению не помогает.

Автор - vvgotsev
Дата добавления - 02.12.2021 в 09:58
and_evg Дата: Четверг, 02.12.2021, 10:11 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
vvgotsev,
под
становится активным Лист2

вы имеете ввиду моргание?
Если да, то отключение обновления экрана мне помогает
 
Ответить
Сообщениеvvgotsev,
под
становится активным Лист2

вы имеете ввиду моргание?
Если да, то отключение обновления экрана мне помогает

Автор - and_evg
Дата добавления - 02.12.2021 в 10:11
vvgotsev Дата: Четверг, 02.12.2021, 10:19 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

and_evg, нет - в момент нажатия на кнопки был активным Лист1, а после нажатия активным становится Лист3
 
Ответить
Сообщениеand_evg, нет - в момент нажатия на кнопки был активным Лист1, а после нажатия активным становится Лист3

Автор - vvgotsev
Дата добавления - 02.12.2021 в 10:19
and_evg Дата: Четверг, 02.12.2021, 10:25 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Хммм... У меня происходит просто моргание листов (видимо последовательная активация) но в итоге остается активным лист 1

ну тогда как заплатка:

[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
  ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
  ThisWorkbook.Worksheets("Лист1").Activate
Application.ScreenUpdating = True
End Sub
[/vba]


Сообщение отредактировал and_evg - Четверг, 02.12.2021, 10:27
 
Ответить
СообщениеХммм... У меня происходит просто моргание листов (видимо последовательная активация) но в итоге остается активным лист 1

ну тогда как заплатка:

[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
  ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
  ThisWorkbook.Worksheets("Лист1").Activate
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - and_evg
Дата добавления - 02.12.2021 в 10:25
vvgotsev Дата: Четверг, 02.12.2021, 10:38 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

and_evg, это ненаучно :)

Лист1 в примере не защищается.

Такой код вызывает переключение на Лист3
[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
Application.ScreenUpdating = True
End Sub
[/vba]

а такой вызывает переключение на Лист2
[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
Application.ScreenUpdating = True
End Sub
[/vba]

В проекте защищаются/разблокируются все листы книги в общем цикле.
Надо переделывать, а смысл - м.б. еще что-то начнет переключаться не так - причин же не понимаю...

Пока перешел с кнопок на контекстное меню.
 
Ответить
Сообщениеand_evg, это ненаучно :)

Лист1 в примере не защищается.

Такой код вызывает переключение на Лист3
[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
Application.ScreenUpdating = True
End Sub
[/vba]

а такой вызывает переключение на Лист2
[vba]
Код
Public Sub Full_UnProtect()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Лист2").Unprotect Password:="1"
ThisWorkbook.Worksheets("Лист3").Unprotect Password:="1"
Application.ScreenUpdating = True
End Sub
[/vba]

В проекте защищаются/разблокируются все листы книги в общем цикле.
Надо переделывать, а смысл - м.б. еще что-то начнет переключаться не так - причин же не понимаю...

Пока перешел с кнопок на контекстное меню.

Автор - vvgotsev
Дата добавления - 02.12.2021 в 10:38
and_evg Дата: Четверг, 02.12.2021, 11:56 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Лист1 в примере не защищается.

а мы его и не защищаем... мы его после всех манипуляций активируем:
[vba]
Код
ThisWorkbook.Worksheets("Лист1").Activate
[/vba]
К сообщению приложен файл: 6349409.xlsm (22.9 Kb)


Сообщение отредактировал and_evg - Четверг, 02.12.2021, 11:57
 
Ответить
Сообщение
Лист1 в примере не защищается.

а мы его и не защищаем... мы его после всех манипуляций активируем:
[vba]
Код
ThisWorkbook.Worksheets("Лист1").Activate
[/vba]

Автор - and_evg
Дата добавления - 02.12.2021 в 11:56
doober Дата: Четверг, 02.12.2021, 13:04 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Microsoft® Excel® для Microsoft 365 MSO
Это у Вас офис кривой.Все прекрасно работает.


 
Ответить
Сообщение
Microsoft® Excel® для Microsoft 365 MSO
Это у Вас офис кривой.Все прекрасно работает.

Автор - doober
Дата добавления - 02.12.2021 в 13:04
vvgotsev Дата: Четверг, 02.12.2021, 14:22 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

and_evg, да - принудительная активация работает :)
Попробую так сделать: вполне себе метод.
Спасибо!
 
Ответить
Сообщениеand_evg, да - принудительная активация работает :)
Попробую так сделать: вполне себе метод.
Спасибо!

Автор - vvgotsev
Дата добавления - 02.12.2021 в 14:22
vvgotsev Дата: Четверг, 02.12.2021, 14:24 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

doober, потестирую на других компьютерах.
Однако уже на другом форуме подтвердили эффект.
Я и хотел понять - м.б. нужно какой-то патч применить?
 
Ответить
Сообщениеdoober, потестирую на других компьютерах.
Однако уже на другом форуме подтвердили эффект.
Я и хотел понять - м.б. нужно какой-то патч применить?

Автор - vvgotsev
Дата добавления - 02.12.2021 в 14:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » После защиты и снятия защиты текущий лист переключается (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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