Excel блокировка ячейки при условии

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

Как заблокировать ячейку по условию?  
Например если в А1, В1 — числа, то в А2, В2, — можно писать что хочешь, а если в А1, В1, -пусто, то в А2, В2 ничего сделать нельзя.  

  Спасибо.

 

Чувствую, вопрос непростой, раз такой профессионал, как Serge 007 его задаёт.  
Тем не менее решусь предложить вариант.

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

Vlad, спасибо.  
Я опять не указал, что решение нужно на VBA…  
Сори.

 

Да, с VBA я никак не могу подружиться.    
Смотрю, вникаю, пытаюсь, но без форума и макрорекордера никуда.

 

для А1 и А2…

Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

Спасибо, Ёксель, спасибо Дима.  
По-разному, но подходят оба листинга.

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

Вариант Ёкселя очищает нужные ячейки, если не выполнено условие, вариант Димы просто не даёт ввести данные если условие не выполнено.  
Для окончательного закрытия темы задам  ещё вопрос: А как БЛОКИРОВАТЬ ячейку при невыполнении условия? Т.е. надо получить Locked = True на защищённом листе. Диапазон условия формируется формулами. Если в результате формулы получается число, то зависимые ячейки не блокируются, если не число — то блокируются.  

  Замечу что вопрос уже решен, это просто спортивный интерес.

 

Paulster

Пользователь

Сообщений: 1
Регистрация: 01.01.1970

{quote}{login=Vlad}{date=04.08.2010 05:51}{thema=}{post}Чувствую, вопрос непростой, раз такой профессионал, как Serge 007 его задаёт.  
Тем не менее решусь предложить вариант.{/post}{/quote}  

    Ув, Влад, подскажи пожалуйста как ты сделал такой трюк ! )) заранее благодарен! )

 

Да это и не трюк вовсе.  
Выделите ячейку А2. Данные — Проверка — Параметры — Тип данных — Другой.  
В поле Формула введено =ЕЧИСЛО(A1:B1). В ячейке В2 тоже самое.  
Т.е., если в ячейках А2 и В2 можно вводить только числа, если другое — будет ошибка. Почитайте справку Тип данных ЕЧИСЛО.

 

Описка… в последней строке читать А1 и В1 вместо А2 и В2 :-)

 

гость

Гость

#11

30.08.2010 09:28:07

{quote}{login=Serge 007}{date=04.08.2010 07:25}{thema=}{post}Вариант Ёкселя очищает нужные ячейки, если не выполнено условие, вариант Димы просто не даёт ввести данные если условие не выполнено.  
Для окончательного закрытия темы задам  ещё вопрос: А как БЛОКИРОВАТЬ ячейку при невыполнении условия? Т.е. надо получить Locked = True на защищённом листе. Диапазон условия формируется формулами. Если в результате формулы получается число, то зависимые ячейки не блокируются, если не число — то блокируются.  

  Замечу что вопрос уже решен, это просто спортивный интерес.{/post}{/quote}  

  Данный вариант с макросом — не всегда сработает… (визуально ☺)

Прикрепленные файлы

  • post_150437.xls (19 КБ)

Блокировка ячейки по условию

ASM_0408

Дата: Вторник, 25.04.2017, 11:17 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Уважаемые форумчане приветствую вас снова! Подскажите насколько реально средствами эксэль реализовать такую задачу в приложенном файле при установлении признака «на земле» происходила блокировка ячейки E11, или выходило сообщение «Запрещено», а при признаке «на опорах» ячейка E11 была свободна для заполнения. У меня получалось только прописывать по условию выходила собщение «запрещено», соответственно при вводе значений происходил сброс формулы условия. Из соседней ветки понял что решение надо искать здесь, воспользовавшись поиском нашел решение в макросе но как его применить в своем случае не знаю так как ранее с макросами не работал. Направьте пожалуйста. Благодарю!

К сообщению приложен файл:

9607862.xlsm
(17.4 Kb)

Сообщение отредактировал ASM_0408Вторник, 25.04.2017, 11:17

 

Ответить

and_evg

Дата: Вторник, 25.04.2017, 11:33 |
Сообщение № 2

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

ASM_0408, так?
[vba]

Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = «$E$11» And Range(«F5»).Value = 1 Then
    MsgBox «Запрещено»
    Range(«E12»).Select
End If
End Sub

[/vba]

К сообщению приложен файл:

3382536.xlsm
(16.6 Kb)

Сообщение отредактировал and_evgВторник, 25.04.2017, 11:43

 

Ответить

and_evg

Дата: Вторник, 25.04.2017, 11:46 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

или так
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = «$E$11» And Range(«F5»).Value = 1 Then
    MsgBox «Запрещено»
    Application.Undo
End If
Application.EnableEvents = True
End Sub

[/vba]

К сообщению приложен файл:

6234595.xlsm
(15.5 Kb)

Сообщение отредактировал and_evgВторник, 25.04.2017, 11:46

 

Ответить

ASM_0408

Дата: Вторник, 25.04.2017, 11:59 |
Сообщение № 4

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Отлично, благодарю!

Подскажите еще пожалуйста как прописать условие очистки ячейки, через clear или приравнивание к 0. При переходе F5 от 2 к 1?

 

Ответить

and_evg

Дата: Вторник, 25.04.2017, 12:32 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

ASM_0408,

Цитата

условие очистки ячейки

какой ячейки?

 

Ответить

ASM_0408

Дата: Вторник, 25.04.2017, 13:59 |
Сообщение № 6

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

 

Ответить

and_evg

Дата: Вторник, 25.04.2017, 14:09 |
Сообщение № 7

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

ASM_0408, тогда так

К сообщению приложен файл:

1281382.xlsm
(17.5 Kb)

 

Ответить

ASM_0408

Дата: Вторник, 25.04.2017, 14:29 |
Сообщение № 8

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021


То что надо!
respect

 

Ответить

Перейти к содержимому

Вопрос от подписчика: poltorak

Всем доброго дня!
Что я уже сделал: Есть две разные ячейки. В 1-й ставиться постоянная дата. А  2-я загорается красным, при наступлении 30-го дня от постоянной даты.
И если ввести в эту 2-ю ячейку слово «продлено».То ячейка становиться белого цвета с текстом продлено.
Сделал формулу: =И(СЕГОДНЯ()-$A$2>=30;$F2<>»продлено»).
Потом я добавил 2-ю формулу : =ЕПУСТО($A$2). Для того чтобы когда 1-я ячейка пустая, то 2-я не загорается красным.
Нужно : чтобы во 2-ю ячейку нельзя было ввести  «продлено» раньше 30 дней(т.е. блокировало ввод).Но когда наступал срок, начинало работать моё 1-е правило.

Например: я ввожу слово «продлено» раньше 30 дней(срабатывает блокировка), когда подходит срок ячейка вторая загорается красным и я чтобы ячейка не горела пишу слово «продлено» и ячейка становится белой со словом продлено.
Ну очень нужна Ваша помощь!

Ответ на вопрос:

Вам поможет небольшой макрос, который будет запускаться при изменении  выделения на листе в диапазоне B:B и проверять  значение в ячейке справа.

Макрос защиты нужных ячеек приведен ниже:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ‘макрос запускается при изменении выделенного диапазона(при клике на новую ячейку)
Dim a As String
ActiveSheet.Unprotect ‘снимаем защиту с листа
a = «Взято с RuExcel.ru»
On Error Resume Next ‘обработка ошибок, на всякий случай
If Not Intersect(Target, Range(«B:B»)) Is Nothing Then ‘прверяем, чтобы срабатывапло только при клике на диапазон B:B
If Cells(ActiveCell.Row, (ActiveCell.Column — 1)).Value < DateAdd(«d», -30, Now) Then ‘если дата соответствует снимает защиту с активной ячейки
Range(ActiveCell, ActiveCell).Locked = False
Else
Range(ActiveCell, ActiveCell).Locked = True
End If

Else: Exit Sub ‘если кликнуть мимо диапазона В:В — выход из макроса
End If
ActiveSheet.Protect ‘защищаем лист
MsgBox (a) ‘выводим сообщение
End Sub

В некоторых случаях вам может потребоваться заблокировать или разблокировать ячейки на основе значений в другой ячейке. Например, вам нужно, чтобы диапазон B1: B4 был разблокирован, если ячейка A1 содержит значение «Accepting»; и блокироваться, если ячейка A1 содержит значение «Отказано». Как вы можете этого добиться? Эта статья может вам помочь.

Блокировать или разблокировать ячейки на основе значений в другой ячейке с кодом VBA


Блокировать или разблокировать ячейки на основе значений в другой ячейке с кодом VBA

Следующий код VBA может помочь вам заблокировать или разблокировать ячейки на основе значения в другой ячейке в Excel.

1. Щелкните правой кнопкой мыши вкладку листа (лист с ячейками, которые необходимо заблокировать или разблокировать на основе значений в другой ячейке) и нажмите Просмотреть код из контекстного меню.

2. Затем скопируйте и вставьте следующий код VBA в окно кода.

Код VBA: блокировать или разблокировать ячейки на основе значений в другой ячейке

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1") = "Accepting" Then
        Range("B1:B4").Locked = False
    ElseIf Range("A1") = "Refusing" Then
        Range("B1:B4").Locked = True
    End If
End Sub

3. нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

С этого момента, когда вы вводите значение «Принимаю» в ячейку A1, диапазон B1: B4 разблокируется.

При вводе значения «Отказано» в ячейку A1 указанный диапазон B1: B4 автоматически блокируется.


Статьи по теме:

  • Как заблокировать сразу все ссылки на ячейки в формулах в Excel?
  • Как заблокировать или защитить ячейки после ввода данных или ввода в Excel?
  • Как заблокировать изображение / изображение в ячейке или внутри нее в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (52)


Оценок пока нет. Оцените первым!

Содержание

  • Включение блокирования ячеек
    • Способ 1: включение блокировки через вкладку «Файл»
    • Способ 2: включение блокировки через вкладку «Рецензирование»
  • Разблокировка диапазона
  • Вопросы и ответы

Защита ячеек в Microsoft Excel

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

Включение блокирования ячеек

В Экселе не существует специального инструмента, предназначенного для блокировки отдельных ячеек, но данную процедуру можно осуществить с помощью защиты всего листа.

Способ 1: включение блокировки через вкладку «Файл»

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

  1. Выделите весь лист, кликнув по прямоугольнику, который находится на пересечении панелей координат Excel. Кликните правой кнопкой мыши. В появившемся контекстном меню перейдите по пункту «Формат ячеек…».
  2. Переход в формат ячеек в Microsoft Excel

  3. Откроется окно изменения формата ячеек. Перейдите во вкладку «Защита». Снимите галочку около параметра «Защищаемая ячейка». Нажмите на кнопку «OK».
  4. Защита в формате ячеек в Microsoft Excel

  5. Выделите диапазон, который желаете заблокировать. Опять перейдите в окно «Формат ячеек…».
  6. Перемещение в формат ячеек в Microsoft Excel

  7. Во вкладке «Защита» поставьте галочку у пункта «Защищаемая ячейка». Кликните по кнопке «OK».
    Включение защиты в формате ячеек в Microsoft Excel

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

  8. Переходим во вкладку «Файл».
  9. Перемещение во вкладку Файл в программе Microsoft Excel

  10. В разделе «Сведения» кликаем по кнопке «Защитить книгу». В появившемся списке выбираем пункт «Защитить текущий лист».
  11. Переход к влючению защиты листа в Microsoft Excel

  12. Открываются настройки защиты листа. Обязательно должна стоять галочка около параметра «Защитить лист и содержимое защищаемых ячеек». При желании можно установить блокирование определенных действий, изменяя настройки в параметрах, находящихся ниже. Но, в большинстве случаев, настройки выставленные по умолчанию, удовлетворяют потребностям пользователей по блокировке диапазонов. В поле «Пароль для отключения защиты листа» нужно ввести любое ключевое слово, которое будет использоваться для доступа к возможностям редактирования. После того, как настройки выполнены, жмем на кнопку «OK».
  13. Настройки защиты листа в Microsoft Excel

  14. Открывается ещё одно окно, в котором следует повторить пароль. Это сделано для того, чтобы, если пользователь в первый раз ввел ошибочный пароль, тем самым навсегда не заблокировал бы сам себе доступ к редактированию. После ввода ключа нужно нажать кнопку «OK». Если пароли совпадут, то блокировка будет завершена. Если они не совпадут, то придется производить повторный ввод.

Подтверждение пароля в Microsoft Excel

Теперь те диапазоны, которые мы ранее выделили и в настройках форматирования установили их защиту, будут недоступны для редактирования. В остальных областях можно производить любые действия и сохранять результаты.

Способ 2: включение блокировки через вкладку «Рецензирование»

Существует ещё один способ заблокировать диапазон от нежелательного изменения. Впрочем, этот вариант отличается от предыдущего способа только тем, что выполняется через другую вкладку.

  1. Снимаем и устанавливаем флажки около параметра «Защищаемая ячейка» в окне формата соответствующих диапазонов точно так же, как мы это делали в предыдущем способе.
  2. Переходим во вкладку «Рецензирование». Кликаем по кнопке «Защитить лист». Эта кнопка расположена в блоке инструментов «Изменения».
  3. Переход к включению блокировки листа в Microsoft Excel

    Lumpics.ru

  4. После этого открывается точно такое же окно настроек защиты листа, как и в первом варианте. Все дальнейшие действия полностью аналогичные.

Окно настроек защиты листа в Microsoft Excel

Урок: Как поставить пароль на файл Excel

Разблокировка диапазона

При нажатии на любую область заблокированного диапазона или при попытке изменить её содержимое будет появляться сообщение, в котором говорится о том, что ячейка защищена от изменений. Если вы знаете пароль и осознано хотите отредактировать данные, то для снятия блокировки вам нужно будет проделать некоторые действия.

Ячейка заблокирована в Microsoft Excel

  1. Переходим во вкладку «Рецензирование».
  2. Переход во вкладку Рецензирование в Microsoft Excel

  3. На ленте в группе инструментов «Изменения» кликаем по кнопке «Снять защиту с листа».
  4. Переход в снятие защиты с листа в Microsoft Excel

  5. Появляется окошко, в которое следует ввести ранее установленный пароль. После ввода нужно кликнуть по кнопке «OK».

Сеятие защиты в Microsoft Excel

После этих действий защита со всех ячеек будет снята.

Как видим, несмотря на то, что в программе Эксель не имеется интуитивно понятного инструмента для защиты конкретной ячейки, а не всего листа или книги, данную процедуру можно выполнить путем некоторых дополнительных манипуляций через изменение форматирования.

Еще статьи по данной теме:

Помогла ли Вам статья?

Понравилась статья? Поделить с друзьями:
  • Excel блокировка ввода в ячейку
  • Excel блок ячеек это могут быть ячейки
  • Excel ближайший рабочий день
  • Excel ближайшее минимальное значение
  • Excel бланк для печати