Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2011, 14:12   #1
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию VBA блокировка ячеек кнопкой

необходимо в VBA кнопкой заблокировать несколько ячеек.
Т.е. кнопка "заблокировать" и кнопка "разблокировать", чтобы потом можно было ввести другие данные.
Вариант Сервис-Защита-Защитить лист не подходит.
Заранее спасибо за помощь!
johny_03 вне форума Ответить с цитированием
Старый 29.03.2011, 14:41   #2
Dog_DinGo
Пользователь
 
Аватар для Dog_DinGo
 
Регистрация: 16.02.2011
Сообщений: 36
По умолчанию

Чем тебе не подходить команда защитить лист?
Dog_DinGo вне форума Ответить с цитированием
Старый 29.03.2011, 14:48   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от johny_03 Посмотреть сообщение
Вариант Сервис-Защита-Защитить лист не подходит.
Может Вы просто не в курсе, что вот так можно?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 29.03.2011, 15:32   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение
если на кнопке написано "ЗаБлокировать" значит сейчас серые ячейки разблокированы и можно их править как угодно.
и наоборот:
если на кнопке написано "РазБлокировать" значит сейчас серые ячейки заблокированы данные в них изменить нельзя.
Вложения
Тип файла: rar Книга638.rar (10.8 Кб, 49 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.03.2011, 16:24   #5
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
см.вложение
если на кнопке написано "ЗаБлокировать" значит сейчас серые ячейки разблокированы и можно их править как угодно.
и наоборот:
если на кнопке написано "РазБлокировать" значит сейчас серые ячейки заблокированы данные в них изменить нельзя.
пишет Methd "Add" of Object "Validation" falled
johny_03 вне форума Ответить с цитированием
Старый 29.03.2011, 16:54   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а Вы не успели случайно лист защитить? что ни разу не сработало?
там кода, то 10 строк:
Код:
Private Sub CommandButton1_Click()
  With Range("C2:C4").Validation
  If ActiveSheet.CommandButton1.Caption = "ЗаБлокировать" Then
    ActiveSheet.CommandButton1.Caption = "РазБлокировать"
    .Delete
    .Add xlValidateCustom, xlValidAlertStop, xlBetween, False
  Else
    ActiveSheet.CommandButton1.Caption = "ЗаБлокировать"
    .Delete
  End If
  End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.03.2011, 17:00   #7
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а Вы не успели случайно лист защитить? что ни разу не сработало?
там кода, то 10 строк:
Код:
Private Sub CommandButton1_Click()
  With Range("C2:C4").Validation
  If ActiveSheet.CommandButton1.Caption = "ЗаБлокировать" Then
    ActiveSheet.CommandButton1.Caption = "РазБлокировать"
    .Delete
    .Add xlValidateCustom, xlValidAlertStop, xlBetween, False
  Else
    ActiveSheet.CommandButton1.Caption = "ЗаБлокировать"
    .Delete
  End If
  End With
End Sub
нет, не защищен лист, я уже новый создал, заново прописал, все-равно пишет ошибку в строке:


Код:
.Add xlValidateCustom, xlValidAlertStop, xlBetween, False
johny_03 вне форума Ответить с цитированием
Старый 29.03.2011, 17:11   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

офис 2003? у меня 2007
пробуйте так:
Код:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=        xlBetween, Formula1:="=ложь"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.03.2011, 17:27   #9
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
офис 2003? у меня 2007
пробуйте так:
Код:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=        xlBetween, Formula1:="=ложь"
Да, 2003. Но и так тоже не хочет
johny_03 вне форума Ответить с цитированием
Старый 29.03.2011, 17:54   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ладно. пойдем другим путем.
идея была такова: ставлю на группу ячеек проверку на ввод данных. ставлю такое условие проверки, которое не выполнится не при каких условиях.
придумайте такое условие, запишите свои действия макрорекордером и поставьте вместо того .add что я написал.
все получится
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение нескольких ячеек в VBA tohdom Microsoft Office Excel 22 27.06.2012 05:48
Блокировка ячеек, работа с цветом Dims Microsoft Office Excel 9 11.07.2011 12:14
Автоматическое заполнение ячеек (VBA) Warhead Microsoft Office Excel 11 15.03.2010 13:07
Помогите с кнопкой в vba aleksha Microsoft Office Excel 0 27.11.2009 14:38
Форма с командной кнопкой!(VBA) Versifikator Помощь студентам 1 06.12.2007 20:25