Страницы: 1 2 3 След.
RSS
Макрос: сумма/разница значений ячеек по условию
 
Привет ВСЕМ.
Являюсь юниором в написании кода . И казалась бы задача проста , но не понимаю как сделать . Коды для элементов на форме не проблема написать . А вот код для действий на самом листе , не получается . Нужно чтобы код был с условием . Т.е. Если в ячейке А1 = "Х" , то значение ячейки А2 плюсуется к значению ячейки А3 . Иначе если ячейка А1 = " " то значение ячейки А2 минус от значения А3 .
Если можно , то полностью с началом и окончанием .
 
Цитата
БАТОНОВОЗ написал:
значение ячейки А2 плюсуется к значению ячейки А3
И где эта сумма должна отображаться?
 
Вся сумма отображается в ячейке А3
 
Ничего сложного ))
Код
Sub Macro1()
    If Range("A1") = "Х" Then
        Range("A3") = Range("A3") + Range("A2")
    Else
        Range("A3") = Range("A3") - Range("A2")
    End If
End Sub
Х - русская
 
Этот код нужно в модуле наверное писать ?  
 
Цитата
БАТОНОВОЗ написал:
Этот код нужно в модуле наверное писать ?  
Любой код пишется в модуле. Этот в стандартном (общем).
У меня работает. Может Вы его не запускали, а надеялись, что он сработает автоматически?
 
Ну вообще да , нужно чтобы при вводе Х , все сработало  
 
И Вы об этом СРАЗУ сказали?
 
Нет .
извиняюсь . Я юниор в этом деле .  
 
В модуль листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        If Target = "Х" Then ' Х русская
            Range("A3") = Range("A3") + Range("A2")
         Else
            Range("A3") = Range("A3") - Range("A2")
        End If
    End If
    Application.EnableEvents = True
End Sub

 
Спасибо Юрий .
 
Работает , но не правильно .
Каждый раз при выделении ячейки А1   вычитается из А3 , значение А2 . Уходит в глубокий минус , если много раз выделять А1.
 
При выделении ячейки ничего не происходит. Только при изменении.
Про глубокий минус Вы ничего не говорили. Перечитайте условия в стартовом сообщении: нужно или суммировать, или вычитать. Именно это макрос и делает.
 
Значение в А2 число 3.
Ставлю курсор на А1,чтобы поставить Х, а в А 3 , уже -3
 
Цитата
БАТОНОВОЗ написал:
Ставлю курсор на А1,чтобы поставить Х, а в А 3 , уже -3
Делаю то же самое - в ячейке А2 остаётся тройка.
 
В А2, значение , в А3 должна собираться сумма . А условие , что если в А1 =Х , то значение из А2 плюсуется или минусуется в ячейке А3
 
Именно так макрос и работает.
Не писать же мне видео?
 
Не могу с телефона фото загрузить .
Но у меня минусует , при выделении А1
 
У меня нет. Будете у компьютера - сбросьте файл.
 
Вот файл
 
Цитата
БАТОНОВОЗ написал:Вот файл
В приложенной книге Worksheet_SelectionChange, а  в сообщении #10 же Worksheet_Change
Нужно было просто скопировать код из того сообщения и вставить в модуль листа.
 
А , понял . Спасибо
Изменено: БАТОНОВОЗ - 23.09.2019 14:09:24
 
Еще небольшое недопонимание.
Прописываю в условие "Х" английскую , то при срабатывании , выдает ошибку . Почему ?  
 
Цитата
БАТОНОВОЗ написал: Прописываю в условие "Х" английскую , то при срабатывании , выдает ошибку .
Какое условие и какую именно ошибку? Лучше приложите проблемный пример и поясните порядок действий, приводящих к ошибке,
 
Цитата
БАТОНОВОЗ написал:
Прописываю в условие "Х" английскую
Почему Вы упорно используете событие Worksheet_SelectionChange, когда надо Worksheet_Change?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дим, у автора одна отмазка:
Цитата
БАТОНОВОЗ написал:
Я юниор в этом деле
:)  
 
В строку с условием сделал добавление и выдает ошибку. Файл приглашаю. Комментарий написал в  в строке куда сделал добавление .
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Почему Вы упорно используете событие Worksheet_SelectionChange, когда надо Worksheet_Change?
Извиняюсь , это моя не внимательность . Копировал только код , без события .  
 
См. файл.
 
Спасибо Юрий !!!
То что нужно  
Страницы: 1 2 3 След.
Наверх