Страницы: 1
RSS
Полное очищение ячейки в vba
 
Добрый вечер.
Подскажите, пожалуйста, как дописать условие, что если ячейка O5 очищается (вручную пользователем), то ячейка O4 должна стать девственно пустой. (чтобы потом на листе при проверке формулой ЕПУСТО возвращало = истина).
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("O5")) Is Nothing Then
If Range("O5").Value = "Да" Then Range("O4").Value = Range("M10").Value
End If
End Sub
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, [O5]) Is Nothing Then
        If [O5] = "Да" Then [O4] = [M10]
        If [O5] = "" Then [O4].Clear
    End If
End Sub

Изменено: buchlotnik - 26.05.2020 00:13:29
Соблюдение правил форума не освобождает от модераторского произвола
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells.Count > 1 Then Exit Sub
  If Not Intersect(Target, Range("O5")) Is Nothing Then
    If Range("O5").Value = "Да" Then Range("O4").Value = Range("M10").Value
    If IsEmpty(Range("O5")) then Range("O4").Clear
  End If
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо большое!
 
Цитата
bagdasarov86 написал:
очищение ячейки
От грехов? ))
 
Юрий М,
Цитата
Юрий М написал:
От грехов? ))
:D  :D

Столкнулся с такой проблемой, когда на лист ставлю защиту, макрос ломается, т.к., видимо, не может внести изменения в ячейки [AK9] и [O4].
Если я эти ячейки сделаю заранее незащищенными, то после команды .Clear макрос снова ломается, т.к. эта команда делает ячейку по умолчанию защищенной.

Вопрос что делать? Как обеспечить работу макроса, защитить лист и чтобы в ячейках была пустота (с проверкой ЕПУСТО = истина)?
Код
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, [M9]) Is Nothing Then
        If [M9] = "ДА" Then [AK9] = [O7]
                            [O4] = [M8]
        If [M9] = "" Then Range("O4").Clear
        If [M9] = "" Then Range("AK9").Clear
    End If
 
Операторы Unprotect, Protect
Снять защиту, выполнить действие, поставить защиту. Это все в макросе прописывается элементарно.

Вопрос не по теме.
 
Спасибо за наводку. Нашел инфо в статье
https://www.planetaexcel.ru/techniques/5/64/
Страницы: 1
Наверх