Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/32: Рейтинг темы: голосов - 32, средняя оценка - 4.53
ronick.ru
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 72
1

Запретить изменение данных в ячейке.

18.12.2010, 16:40. Просмотров 5906. Ответов 8
Метки нет (Все метки)

Можно ли запретить изменение данных в определенном диапазоне листа (программно) не используя функции защиты т.е. как-то иначе отслеживать попытку изменения и прерывать её или спрашивать 'а нужно ли...'
Вся проблема в том что фаил должен работать в локальной сети, а в открытом доступе постоянно ставить и снимать защиту не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2010, 16:40
Ответы с готовыми решениями:

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

Реагировать на изменение в ячейке
Доброго времени суток, Нужно как то отследить изменение в ячейке. Написал...

Изменение текста в ячейке
Здравствуйте, добрые форумчане! Помоги с решением вопроса: Имеется таблица с...

Событие на изменение в ячейке
Как перехватить это событие из другого листа ? Допустим из Листа 1 "Листы...

Автоматическое изменение номера в ячейке
Добрый день форумчане, такой вопрос по Microsoft Exel 2016 Есть документ , а...

8
Димит
87 / 34 / 14
Регистрация: 03.11.2010
Сообщений: 429
19.12.2010, 21:42 2
Можно разместить например такую процедуру в блоке листа:
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
'Проверяем входит ли изменённая ячейка в заданный диапазон(для примера'A1:C3')
    If Union(Лист1.Range('A1:C3'), Target).Address = Лист1.Range('A1:C3').Address Then
        If MsgBox('Эта ячейка защищена, изменить её?', vbYesNo) = vbNo Then
'отменяем изменение с помощью кнопки 'Отменить'(для русской версии)
            CommandBars('Standard').Controls('Отменить').Execute
        End If
    End If
End Sub
Дмит
0
pashulka
2404 / 1226 / 499
Регистрация: 01.12.2010
Сообщений: 2,478
19.12.2010, 21:48 3
А кто-нибудь отключит макросы при открытии файла и тогда ... все мучения напрасны, так что необходимо защитить лист паролем, а пароль снимать при открытии файла программно Private Sub Workbook_Open(),
тогда при отключении макросов уже никто не сможет изменить в этом файле.
0
ronick.ru
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 72
19.12.2010, 22:03  [ТС] 4
Если я не ошибаюсь при работе макроса т.е. после его работы (любого макроса) кнопка отменить не срабатывает, по крайней мере она не доступна, разве можно вызвать её программно?
Именно не разрешать ни удалять ни изменять...т.е. предупреждать действие а не исправлять его...
Странно, что пункт меню 'правка прямо в ячейке' срабатывает только на мышинные клики а не на кнопку del например или вообще на на любую кнопу на клаве...т.е. если галку убрать то нельзя править в ячейке только с помощью мышки, а с помощью клавы можно...
Вот думаю...и не как придумать не могу....
0
pashulka
2404 / 1226 / 499
Регистрация: 01.12.2010
Сообщений: 2,478
20.12.2010, 04:05 5
Макрос Дмита отменяет действия выполненные стандартными средствами (т.е. то ,что собственно и вызвало этот макрос к жизни, например, ввод в ячейку данных)
0
ronick.ru
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 72
20.12.2010, 11:39  [ТС] 6
ну не знаю...у меня тут ещё несколько действий происходит во время проверки изменений на листе...и возврат не доступен, стоит изменит букевку или удалить наименование кнопой дел или бекспейс и всё...возврата назад нет..
но попробую именно проверить этот код в чистом виде так как дали...
0
Димит
87 / 34 / 14
Регистрация: 03.11.2010
Сообщений: 429
20.12.2010, 21:23 7
ronick
Если код не будет работать, уточни задачу.
Попробуем справится вместе.
Дмит
0
ronick.ru
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 72
20.12.2010, 21:25  [ТС] 8
Хорошо попробую ...поставлю и скажу результат...но пока не работает..проверю код в читом виде.
0
esboy21
0 / 0 / 0
Регистрация: 14.02.2015
Сообщений: 90
22.07.2015, 00:03 9
Подскажите пожалуйста макрос который бы запрещал редактирование ячеек определенного цвета. Именно запретить Ввод данных в них.
0
22.07.2015, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2015, 00:03

Excel, как отследить изменение в ячейке?
При выходе пользователя из ячейки должен запуститься Макрос. Можно ли это...

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

Можно ли запретить изменение размера окна документа (Word) ?
Привет, всем ! Можно ли запретитьизменение размера окна документа (Word) ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru