Страницы: 1
RSS
Запретить изменение ячейки в определенном диапазоне
 
Приветствую всех!

Такой вопрос. Какой код нужен в VBA, чтобы запретить изменение ячейки, например, в столбце А или в столбцах А:В., а если хотим изменить, то только через пароль?
P.s.: не весь лист, а конкретный диапазон. Я новичок.
 
Цитата
romlel написал: например, в столбце А
Ну в общем случае как-то так. Для активного листа
Код
Sub Макрос1()
  With ActiveSheet
    .Cells.Locked = False
    .Columns("A:A").Locked = True
    .Protect Password:="0000"
  End With
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Sub Макрос1()  With ActiveSheet    .Cells.Locked = False    .Columns("A:A").Locked = True    .Protect Password:="0000"  End WithEnd Sub
Благодарю, работает. Уточнение: например, я сам хочу изменить ячейки, для этого нужна пароль, что-то наподобие IputBox "Введите пароль", а то нажимаю на столбец и никак не откликается.
 
Рецензирование - Защита - Снять защиту листа. Там введите '0000'
Согласие есть продукт при полном непротивлении сторон
 
Понял, огромное спасибо. Оказалось куда проще:)
 
Еще последний вопрос: в каждый лист нужно ставить код, если у меня несколько листов?
 
Нет. Макрос вставляйте в общий модуль. Он сработает для АКТИВНОГО в данный момент листа
Согласие есть продукт при полном непротивлении сторон
 
Проверил. Все работает. Новый вопрос появился, при запрете на изменение ячейки не могу скрыть или раскрыть строки/столбцы, Можно как-то написать в коде, чтобы смог скрывать и раскрывать строки/столбцы?
 
Только снимать защиту листа перед скрытием строк и восстанавливать ее потом.
П.С. Событие скрытия/отображения строк штатными средствами не отслеживается
Согласие есть продукт при полном непротивлении сторон
 
Понял, благодарю.
 
Цитата
romlel написал:
Можно как-то написать в коде, чтобы смог скрывать и раскрывать строки/столбцы?
Цитата
Sanja написал:
Только снимать защиту листа перед скрытием строк и восстанавливать ее потом
ну блин...Ведь нет же :)
Код
Sub Макрос1()
  With ActiveSheet
    .Unprotect Password:="0000"
    .Cells.Locked = False
    .Columns("A:A").Locked = True
    .Protect Password:="0000", AllowFormattingRows:=True, AllowFormattingColumns:=True
  End With
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх