|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.08.2010, 17:01 | #1 |
Регистрация: 23.07.2010
Сообщений: 4
|
Сделать ячейку активной / неактивной по условию
Подскажите, плиз, чайнику, можно ли запретить править ячейку при выполнении условия в другой ячейке? Т.е. к примеру, чтобы в B1 можно было что-то вводить руками, если A1=1, и нельзя, если A1<>1.
|
02.08.2010, 17:58 | #2 |
Форумчанин
Регистрация: 14.05.2009
Сообщений: 311
|
правой кнопкой по ярлыку листа - Исходный текст, сюда вставляешь это
Код:
|
10.08.2010, 13:46 | #3 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
Встроенными инструментами.
Меню Данные-Проверка-Тип_данных-Другой-Формула =A1=1 |
29.07.2015, 12:33 | #4 |
Новичок
Джуниор
Регистрация: 28.07.2015
Сообщений: 5
|
Добрый день!
Подскажите пожалуйста, использовал код, предложенный выше, Подточил под свои нужды, все работатет: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim Не_трогать As Range If Range("G9") = "Почасовая" Then Exit Sub Set Не_трогать = Range("D9:F9") If Not Intersect(Target, Не_трогать) Is Nothing Then MsgBox "Выбери тип оплаты: Почасовая", vbCritical, "Тупим))))" Application.EnableEvents = False CommandBars("Standard").Controls("О тменить").Execute Application.EnableEvents = True End If End Sub НО. Мне нужно ввести второе условие. Попробовал сделать так: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim Не_трогать As Range If Range("G9") = "Почасовая" Then Exit Sub Set Не_трогать = Range("D9:F9") If Not Intersect(Target, Не_трогать) Is Nothing Then MsgBox "Выбери тип оплаты: Почасовая", vbCritical, "Тупим))))" ElseIf Range("G9") = "По километражу" Then Exit Sub Set Не_трогать = Range("D10:F10") If Not Intersect(Target, Не_трогать) Is Nothing Then MsgBox "Выбери тип оплаты: По километражу", vbCritical, "Тупим))))" Application.EnableEvents = False CommandBars("Standard").Controls("О тменить").Execute Application.EnableEvents = True End If End Sub Выскакивает ошибка: Block If without End If. Подскажите, что можно придумать. |
29.07.2015, 14:01 | #5 | |
Форумчанин
Регистрация: 07.07.2015
Сообщений: 121
|
Цитата:
Код:
Код:
|
|
29.07.2015, 14:46 | #6 |
Новичок
Джуниор
Регистрация: 28.07.2015
Сообщений: 5
|
Огромное спасибо!
Ошибка пропала, но теперь новая беда: код не работает. Вернее верхняя половина работает, а нижняя - нет. Если выбираю в ячейке G9 "По километражу" и пытаюсь изменить значения в диапазоне D9:F9 - все прекрасно работает (выскакивает окошко). Если же в ячейке G9 ставлю "Почасовая" и пытаюсь в диапазоне D10:F10 поменять значения, то все меняется, несмотря на условие... |
29.07.2015, 15:32 | #7 | |
Форумчанин
Регистрация: 07.07.2015
Сообщений: 121
|
Цитата:
Код:
|
|
29.07.2015, 19:27 | #8 |
Новичок
Джуниор
Регистрация: 28.07.2015
Сообщений: 5
|
Неа.. Код, как и раньше, работает наполовину.
|
30.07.2015, 09:49 | #9 |
Новичок
Джуниор
Регистрация: 28.07.2015
Сообщений: 5
|
Может быть эту задачу можно решить другим способом?
|
30.07.2015, 16:20 | #10 |
Форумчанин
Регистрация: 07.07.2015
Сообщений: 121
|
А попробуйте так:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать, чтобы модальное окно закрылось по условию? | DrMcSheen | Общие вопросы C/C++ | 2 | 24.08.2009 15:54 |
Как обозначить ячейку на одну правее от активной ячейки? | ru3000 | Microsoft Office Excel | 4 | 28.07.2009 08:03 |
Извлечь в одну ячейку несколько значений из строки которые удовлетворяют заданному условию. | Dorvir | Microsoft Office Excel | 5 | 08.04.2008 16:12 |
Как сделать форму всегда активной? | londoner | Общие вопросы Delphi | 3 | 04.03.2007 14:44 |
как сделать так чтобы при открытии второй формы олько она была активной | doncova1 | Общие вопросы Delphi | 2 | 03.02.2007 19:34 |