Изменение значения ячейки в зависимости от другой ячейки Excel

Доброго времени суток.
Перерыл кучу информации, но так и не понял, как присвоить значение ячейке в зависимости от значения другой, при этом сделать это не возвращением, а именно присвоением, чтобы если что ячейки которым присвоят значение могли меняться.
Пример:
Есть ячейка B3, в которой на данный момент внесено значение 100
Есть ячейка B4, в которой на данный момент значение 0.
Как сделать так, что при внесении любого числа больше 0 в ячейку B4, ячейка B3 автоматически станет равна 0 и наоборот.
Т.е. эти ячейки должны остаться редактируемыми, но при этом автоматически меняющимися в зависимости от значений друг друга.

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

UPD ответ найден в комментарии #comment_196491784

MS, Libreoffice & Google docs

719 постов15K подписчика

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Вы смотрите срез комментариев. Показать все
6
Автор поста оценил этот комментарий

Примерно так

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
          If Target.Column = 2 And Target.Row = 3 And Target.Value > 0 Then
               Cells(4, 2) = 0
          ElseIf Target.Column = 2 And Target.Row = 4 And Target.Value > 0 Then
               Cells(3, 2) = 0
          End If
End Sub
раскрыть ветку (11)
1
Автор поста оценил этот комментарий

Чуть-чуть средактирую, чтоб немного удобнее было ориентироваться по столбцам и колонкам, а букв чуть-чуть меньше:


Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Address = "$B$3" And Target.Value > 0 Then

Cells(4, "B").Value = 0

ElseIf Target.Address = "$B$4" And Target.Value > 0 Then

Cells(3, "B").Value = 0

End If


End Sub

3
DELETED
Автор поста оценил этот комментарий

Что с этим необходимо сделать? я далёк от программирования.

раскрыть ветку (6)
11
Автор поста оценил этот комментарий

В Excel ALT+F11

Выбираете в окне свой Лист

Вставляете код

Меняете ячейки B3, B4


По аналогии можете скопировать на любое кол-во строк

Target.Column - номер столбца

Target.Row - номер строки


Если все это не поможет, то вам лучше на биржу фриланса

Иллюстрация к комментарию
раскрыть ветку (5)
1
DELETED
Автор поста оценил этот комментарий

О, получилось, т.е. по аналогии я могу заменять значения 3,4 и номер столбца на свои ячейки и будет тоже самое?
UPD По вашему рецепту я оказывается картошку делал)

раскрыть ветку (4)
5
Автор поста оценил этот комментарий
Про картошку сейчас совсем неожиданно было
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

На самом деле нет разницы) Что картошка, что VBA - всё алгоритмы, только синтаксис разный :)

1
Автор поста оценил этот комментарий

Ну раз картошка) На скриншоте выделен блок кода, который можно копировать и указывать нужную ячейку

Иллюстрация к комментарию
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Я так и понял, уже разобрался, спасибо за подробный ответ.

DELETED
Автор поста оценил этот комментарий

О, вы специалист! А скажите, ещё пожалуйста, как в формуле обратится к ячейке с переменной координатой, ну то есть если надо написать не  "=А2+5", а "=А(вот тут заместо индекса формула, дающая целое значение) -5". Там, наверное, надо какие-то хитрые скобки ставить?

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Сложно так ответить, не зная точной задачи. Возможно вам подойдет

=АДРЕС(6*2-5;1)
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Спасибо! Да, это то, что мне было нужно.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку