powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / блокировать закрытие листа
25 сообщений из 27, страница 1 из 2
блокировать закрытие листа
    #36431682
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте подскажите как блокировать закрытие листа Excel крестом.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36431740
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
активировать программу обработки события:
Private Sub Workbook_BeforeClose(Cancel As Boolean)


в коде объекта "эта книга"
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36431752
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А точнее поместить в ЭтаКнига такой макрос:

Код: plaintext
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Cancel = True
End Sub
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36431821
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как это проделать через кнопки одной кнопкой блокировать, другой кнопкой разблокировать?Djon PlayerА точнее поместить в ЭтаКнига такой макрос:

Код: plaintext
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Cancel = True
End Sub
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36431979
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot segail]Например так, прикладываю файл:
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36431998
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или проверяй положение кнопки на листе, писать меньше, весь код:
Код: plaintext
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If Sheets( 1 ).ToggleButton1.Value = True Then Cancel = True
End Sub
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36432039
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Djon Player
Опа, а я и не знал такого...
Код: plaintext
Public blokirovka As Boolean
Подскажите, пожалуйста, каким оно образом держит значения переменной?
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36432058
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36432734
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m Djon Player
Опа, а я и не знал такого...
Код: plaintext
Public blokirovka As Boolean
Подскажите, пожалуйста, каким оно образом держит значения переменной?Эта обычная переменная типа Public, их особенностью (а может и не только их) является то, что она сохраняет значение с последнего запуска программы (пока не закроете книгу).
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36432743
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Или проверяй положение кнопки на листе, писать меньше, весь код:
Код: plaintext
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If Sheets( 1 ).ToggleButton1.Value = True Then Cancel = True
End Sub
С кнопкой выключателем конечно лучше, т.к. при закрытии и открытии файла сохраняется блокировка (разблокировка).
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36432905
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Djon PlayerЭта обычная переменная типа Public, их особенностью (а может и не только их) является то, что она сохраняет значение с последнего запуска программы (пока не закроете книгу).
Понял. Интересно. Спасибо!
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36433605
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоько учтите, что переменные живут недолго :) достаточно зайти в конструктор или ошибка вылетит и конец блокировке..

или проверять кнопку или еще где хранить - в именах, например, или где-то на листе
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36433752
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю другой вариант блокировки, без использования каких-либо переменных.
Прилагаю файл. В том виде в каком он есть, этот файл можно открыть и закрыть.
Если его переименовать, а затем открыть, то закрыть просто так уже не получится.
Разумеется макросы должны быть включены.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36433777
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
2 _slan_, Ok, Спасибо!
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36434803
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player[quot segail]Например так, прикладываю файл:
А в одной кнопки код блокировки, а в другой кнопки разблокировки без модуля и Public прописать как то можно? У меня всего один лист.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435215
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
segail
А в одной кнопки код блокировки, а в другой кнопки разблокировки без модуля и Public прописать как то можно? У меня всего один лист.
Можно на переключателе, как я выше сделал, или на OptionButton, весь код из одной-двух строчек. Зачем именно кнопками?
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435232
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailА в одной кнопки код блокировки, а в другой кнопки разблокировки без модуля и Public прописать как то можно? У меня всего один лист.Можно использовать кучу вариантов блокировки, того что уже написано вполне достаточно.
Вместо переменной, статус блокировки можно хранить где-угодно, хотя бы например на скрытом листе в какой-нибудь ячейке. Можно для этого использовать свойства какой-нибудь ячейки, например цвет или как я привел пример, вообще без использования кнопок и переменных. Блокировка работает или не работает в зависимости от названия файла.
Так-же Hugo121 привел пример с выключателем , там всего одна кнопка, которая имеет два статуса включено и выключено и переменные не используются.

Вы не написали для чего вам в принципе всё это нужно, опишите саму задачу, для которой это нужно.
Потому что, если это защита от пользователей, то какой в ней толк, если пользователи точно так-же сами могут отключить блокировку кнопкой.
А защита от самого себя выглядит странно.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435298
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну смысл есть - например если куча файлов открыта в одном окне (как у меня), можно случайно закрыть все, нажав не тот крест. И если супернужный файл закрывается без запроса на сохранение... А так можно при открытии сразу заблокировать его закрытие и подстраховаться от случайностей.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435407
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Ну смысл есть - например если куча файлов открыта в одном окне (как у меня), можно случайно закрыть все, нажав не тот крест. И если супернужный файл закрывается без запроса на сохранение... А так можно при открытии сразу заблокировать его закрытие и подстраховаться от случайностей.Ну получается страховка от самого себя, ну если ещё кто-тона вашем компьютере работает, то ещё от других. В принципе согласен, в этом случае смысл есть.
Хотя от всего не застраховаться, например свет моргнул, а UPS не успел сработать и комп перезагрузился. А авто сохранение было выключено, т.к. работает долго и мешает работать. Либо настроен большой промежуток времени и как раз так получилось, что были набиты какие-то важные данные и после восстановления, эти данные уже не восстановятся, т.к. их ещё не сохраняли.
P.S. Был у меня как-то похожий случай. Коллеги уехали в Питер в командировку в Питерский филиал, надо было с ними связаться. Позвонил знакомой, которая там работает, спросить телефон.
Она телефона не знала, сказала, что сходит к ним и узнает. А идти надо было куда-то на другой этаж.
В общем через некоторое время она вернулась, продиктовала мне номер, я записал его в блокнот (Notepad.exe, а не бумажный). У меня при этом было открыто ещё парочка окон блокнота.
Закончил говорить со знакомой, потом стал закрывать лишние окна блокнота и случайно закрыл и то, в котором был написан номер. Получился облом, а номер я не запомнил.
А второй раз звонить знакомой и напрягать этим вопросом уже не хотелось, т.к. не исключено, что она мне номер по памяти сказала. К счастью потом выяснилось, что кое-кто из моих коллег до меня выяснил их номер, так что я спросил номер у него и записал уже на бумажку.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435614
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon PlayersegailА в одной кнопки код блокировки, а в другой кнопки разблокировки без модуля и Public прописать как то можно? У меня всего один лист.Можно использовать кучу вариантов блокировки, того что уже написано вполне достаточно.
Вместо переменной, статус блокировки можно хранить где-угодно, хотя бы например на скрытом листе в какой-нибудь ячейке. Можно для этого использовать свойства какой-нибудь ячейки, например цвет или как я привел пример, вообще без использования кнопок и переменных. Блокировка работает или не работает в зависимости от названия файла.
Так-же Hugo121 привел пример с выключателем , там всего одна кнопка, которая имеет два статуса включено и выключено и переменные не используются.

Вы не написали для чего вам в принципе всё это нужно, опишите саму задачу, для которой это нужно.
Потому что, если это защита от пользователей, то какой в ней толк, если пользователи точно так-же сами могут отключить блокировку кнопкой.
А защита от самого себя выглядит странно.
Открыта форма VBA и лист “Расход” при открытой форме лист закрыть нельзя форма не дает, после клика по кнопке на форме VBA, форма закрывается. Естественно пользователь может закрыть книгу или лис кликом по кресту, что в данный момент категорически нельзя (вот для этого кликом по кнопке на форме необходимо выполнить код блокировке). На листе “Расход” тоже установлена кнопка, которая выполняет код открытия формы VBA, вовремя открытия формы выполняется разблокировка “Книги” в действии формы Initialize.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435648
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailОткрыта форма VBA и лист “Расход” при открытой форме лист закрыть нельзя форма не дает, после клика по кнопке на форме VBA, форма закрывается. Естественно пользователь может закрыть книгу или лис кликом по кресту, что в данный момент категорически нельзя (вот для этого кликом по кнопке на форме необходимо выполнить код блокировке). На листе “Расход” тоже установлена кнопка, которая выполняет код открытия формы VBA, вовремя открытия формы выполняется разблокировка “Книги” в действии формы Initialize.Раз у вас уже есть некоторая форма, которая запускается, то проще не создавать дополнительных кнопок, а в самом коде этой формы прописать изменение переменной blokirovka на true или false (в зависимости что надо, заблокировать или разблокировать), используя код из файла, который я приложил в сообщении .
Это при условии, что вы разработчик этой формы. А если не вы, то попросить разработчика внести изменения.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435685
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп стоп, кнопка не дополнительная она выполняет определенные действия, и одно из условий это закрытие формы (так нужно).Djon Player,
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435816
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailСтоп стоп, кнопка не дополнительная она выполняет определенные действия, и одно из условий это закрытие формы (так нужно).Djon Player,Для начала определимся с ситуацией. верно ли я понял. Вот какие я сделал выводы из ваших сообщений.
У вас есть книга в Excel, как я понял, там всего один лист, называется Расходы.
Так-же как я понял, у вас есть как минимум одна кнопка, которая запускает некую форму?
Когда вы нажимаете эту кнопку, запускается форма.
Так-же вы уже написали, что в действии формы Initialize вы уже прописали блокировку книги.
Что мешает прописать код разблокировки книги в действии Unload (вроде так называется) формы, т.е. когда форма закрывается.

В общем я хотел сказать, что не вижу смысла в дополнительной кнопке разблокирования.

Если что-то я написал неверно, поправьте.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36435945
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player,
Если все описать просто не реально форм много листов тоже. Просто на одном из периодов пользователь попадает на лист Расход с открытой формой, на данном этапе блокировки листа нет пока открыта форма (то есть само свойство формы не дает закрыть лист, тут естественно блокировка не нужна). Но при определенных условиях, форма на листе закрывается (то есть лист оголен и не защищен от закрытия крестом, вот тут в силу вступает блокировка листа). С этого листа после выполнения необходимых действий пользователь должен опять попасть на форму (на листе стоит кнопка для открытия формы), после открытия или вовремя открытия формы блокировка уже не нужна.
...
Рейтинг: 0 / 0
блокировать закрытие листа
    #36436397
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так что-ли надо?
Код: plaintext
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveSheet.Name = "Расход" Then Cancel = True
End Sub
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / блокировать закрытие листа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]