Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.81
ronick.ru
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 72
#1

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

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

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

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

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

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

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

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

Макрос для переноса (с удалением) данных с одного листа на другой при появлении дополнительных данных в ячейке - VBA
Уважаемые форумчане, доброго дня. Прошу помочь по следующему вопросу: Во вложении файл Excel, необходимо переносить строки (с...

8
Димит
85 / 32 / 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
2146 / 1020 / 414
Регистрация: 01.12.2010
Сообщений: 2,156
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
2146 / 1020 / 414
Регистрация: 01.12.2010
Сообщений: 2,156
20.12.2010, 04:05 #5
Макрос Дмита отменяет действия выполненные стандартными средствами (т.е. то ,что собственно и вызвало этот макрос к жизни, например, ввод в ячейку данных)
0
ronick.ru
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 72
20.12.2010, 11:39  [ТС] #6
ну не знаю...у меня тут ещё несколько действий происходит во время проверки изменений на листе...и возврат не доступен, стоит изменит букевку или удалить наименование кнопой дел или бекспейс и всё...возврата назад нет..
но попробую именно проверить этот код в чистом виде так как дали...
0
Димит
85 / 32 / 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
Сообщений: 88
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
Привет! Вот еще темы с ответами:

Функция по проверке данных в ячейке - VBA
В ячейке допускается наличие только английских букв (за исключением I, O, Q) и цифр (0-9) в любом сочетании. Помогите пжл составить...

Определение типа данных в ячейке - VBA
Необходимо определять, являются ли данные в ячейке датой, проблема из-за того, что при переносе в textbox дата принимает не удобочитаемый...

Как определить тип данных в ячейке - VBA
Есть объект Range (фактически столбец листа Excel), как определить тип данных в каждой из ячеек?

Выполнить действие на изминение данных в ячейке - VBA
Добрый день! Сразу хочу извиниться за глупый вопрос , никогда не углублялся в написание макросов для excel , да и вообще далек от...


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

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

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