Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 2
1

Запрет удаления содержимого нескольких ячеек в строке при установке значения в ячейке

22.10.2015, 08:49. Показов 3789. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день
К сожалению не смог решить сам свою задачу, прошу помощи

Есть таблица excel с диапазоном A1:F10
Необходимо запретить удаление содержимого строки в диапазоне A1:E1 если в ячейке F1 установлено значение 1, а если не установлено то не запрещать.
Итак для каждой строки в таблице, т.е. проверять стоит ли значение 1 в ячейке F2, F3, F4...F10 и если да то запретить удаление содержимого строки в диапазоне A2:E2, A3:E3 и т.д., если нет разрешить.

Добавлено через 2 часа 54 минуты
Написал код для одного диапазона таблицы
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F1") = 1 Then
         If Not Intersect(Range("A1:E1"), Target) Is Nothing Then
            Application.EnableEvents = False
                Application.Undo
                MsgBox "Изменение ячеек запрещено", vbCritical, "Нарушение процедуры"
            Application.EnableEvents = True
         End If
End If
End Sub
Подскажите как переделать код чтобы он работал для каждого следующего диапазона в строках таблицы
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2015, 08:49
Ответы с готовыми решениями:

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

Объединение содержимого нескольких ячеек при различных условиях
Excel Т.е. мне должны предоставить документы (список документов - 1-й столбец) 2-й столбец -...

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

Перемещение содержимого ячейки Б в ячейку А при удалении содержимого в ячейке А
Суть проблемы следующая. Имеется диапазон ячеек с текстом в каждой. При выделении любой из ячеек и...

3
85 / 82 / 31
Регистрация: 13.10.2014
Сообщений: 167
22.10.2015, 09:03 2
...
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1:e10]) Is Nothing Then Exit Sub
If Not IsEmpty(Target) Then Exit Sub
If Cells(Target.Row, 6) <> 1 Then Exit Sub
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Sub
0
Заблокирован
22.10.2015, 09:04 3
Лучший ответ Сообщение было отмечено golan77 как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1:E10"), Target) Is Nothing Then
  If Cells(Target.Row, 6) = 1 Then
    Application.EnableEvents = False
      Application.Undo
      MsgBox "Изменение ячеек запрещено", vbCritical, "Нарушение процедуры"
    Application.EnableEvents = True
  End If
End If
End Sub
1
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 2
22.10.2015, 09:20  [ТС] 4
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1:e10]) Is Nothing Then Exit Sub
If Not IsEmpty(Target) Then Exit Sub
If Cells(Target.Row, 6) <> 1 Then Exit Sub
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Sub
Спасибо за ответ, но к сожалению ваш код не работает если выделить сразу несколько ячеек, происходит удаление. Необходимо запретить удаление содержимого ячеек если сразу выделить несколько

Добавлено через 1 минуту
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1:E10"), Target) Is Nothing Then
If Cells(Target.Row, 6) = 1 Then
Application.EnableEvents = False
Application.Undo
MsgBox "Изменение ячеек запрещено", vbCritical, "Нарушение процедуры"
Application.EnableEvents = True
End If
End If
End Sub
Спасибо, а возможно при этом сделать исключения для определенных столбцов в таблице?
0
22.10.2015, 09:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2015, 09:20
Помогаю со студенческими работами здесь

Объединение содержимого нескольких ячеек
Здравствуйте! Задача такая: объединить содержимое нескольких ячеек через запятую без пробела. Ячеек...

Перевод содержимого нескольких ячеек в одну ячейку
Добрый вечер! Такой вопрос. Есть StringGrid, в нем есть строка, в которой в первых восьми ячейках...

Запрет на выделение ячеек в строке
Всем доброго времени суток! Есть таблица dataGridView1 и в ней 7 строк по 7 столбцов. Нужно...

Скопировать значения ячеек, ориентируясь по соседней ячейке
Здравствуйте, подскажите, пожалуйста как можно сделать такую манипуляцию: Необходимо скопировать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru