Всем здравствуйте, подскажите, пожалуйста, как реализовать удаление строки по условию?
У меня имеется таблица с данными, но данные в ней находятся на 14 строке и ниже, нужно, чтобы при удалении данных со столбца O14:O150 вылезало сообщение и при положительном ответе удалялась выбранная строка, если ответ отрицательный, то данные остаются и строка не удаляется. Сообщение не формой, а такого типа:
[vba]
Код
Delete = MsgBox("Удалить строку?", 48 + 4, "Удаление строки", vbYesNo, BOX) If Delete <> vbYes Then Exit Sub
[/vba]
Всем здравствуйте, подскажите, пожалуйста, как реализовать удаление строки по условию?
У меня имеется таблица с данными, но данные в ней находятся на 14 строке и ниже, нужно, чтобы при удалении данных со столбца O14:O150 вылезало сообщение и при положительном ответе удалялась выбранная строка, если ответ отрицательный, то данные остаются и строка не удаляется. Сообщение не формой, а такого типа:
[vba]
Код
Delete = MsgBox("Удалить строку?", 48 + 4, "Удаление строки", vbYesNo, BOX) If Delete <> vbYes Then Exit Sub
Kioto, привет наверное, так (в модуль листа Лист1) [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("O14:O150")) Is Nothing Then Exit Sub If Len(Target) Then Exit Sub If MsgBox("Удалить строку?", 36, "Удаление строки") = vbYes Then Target.EntireRow.Delete End Sub
[/vba]
Kioto, привет наверное, так (в модуль листа Лист1) [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("O14:O150")) Is Nothing Then Exit Sub If Len(Target) Then Exit Sub If MsgBox("Удалить строку?", 36, "Удаление строки") = vbYes Then Target.EntireRow.Delete End Sub
nilem, да, почти так, можно только поправить, чтобы если нажимаешь удалить данные в ячейке они сразу не стирались, а сначала вылезало это сообщение, иначе, получается я данные всё равно удаляю, а потом спрашиваю можно ли удалить строку и при отрицательном ответе я теряю данные в ячейке.
nilem, да, почти так, можно только поправить, чтобы если нажимаешь удалить данные в ячейке они сразу не стирались, а сначала вылезало это сообщение, иначе, получается я данные всё равно удаляю, а потом спрашиваю можно ли удалить строку и при отрицательном ответе я теряю данные в ячейке.Kioto
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("O14:O150")) Is Nothing Then Exit Sub If Len(Target) Then Exit Sub If MsgBox("Удалить строку?", 36, "Удаление строки") = vbYes Then Target.EntireRow.Delete Else With Application .EnableEvents = False .Undo .EnableEvents = True End With End If End Sub
[/vba]
попробуйте вот так: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("O14:O150")) Is Nothing Then Exit Sub If Len(Target) Then Exit Sub If MsgBox("Удалить строку?", 36, "Удаление строки") = vbYes Then Target.EntireRow.Delete Else With Application .EnableEvents = False .Undo .EnableEvents = True End With End If End Sub