Доброго времени суток. Помогите решить вопрос, если вас не затруднит, туплю сижу. Есть 2 ячейки, первая постоянно изменяющееся число, во второй должно сохранятся максимальное значение первой ячейчи. т.е. первый день 1 сохранилось число 1, второй 2 сохранилось число 2, третий 5 сохранилось число 5, четвертый 3, но так как оно меньше 5, то остается число 5... Заранее благодарен, совсем зеленый человечек =)
Доброго времени суток. Помогите решить вопрос, если вас не затруднит, туплю сижу. Есть 2 ячейки, первая постоянно изменяющееся число, во второй должно сохранятся максимальное значение первой ячейчи. т.е. первый день 1 сохранилось число 1, второй 2 сохранилось число 2, третий 5 сохранилось число 5, четвертый 3, но так как оно меньше 5, то остается число 5... Заранее благодарен, совсем зеленый человечек =)m0uz3
Сначала сделайте это: Файл - Параметры - Формулы - поставьте флажок "Включить итеративные вычисления" - Предельное число итераций: 1. Во вложенном файле изменяйте число в "A1" и смотрите, что происходит в "C1".
Сначала сделайте это: Файл - Параметры - Формулы - поставьте флажок "Включить итеративные вычисления" - Предельное число итераций: 1. Во вложенном файле изменяйте число в "A1" и смотрите, что происходит в "C1".Karataev
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then [a2] = WorksheetFunction.Max(Range("a1:a2")) End If End Sub
[/vba] меняйте значения в a1
вариант [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then [a2] = WorksheetFunction.Max(Range("a1:a2")) End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False If Target > Target.Offset(, 1) Then Target.Offset(, 1) = Target Application.EnableEvents = True End Sub
[/vba] [p.s.]Код исправлен![/p.s.]
Или так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False If Target > Target.Offset(, 1) Then Target.Offset(, 1) = Target Application.EnableEvents = True End Sub
Уважаемый модератор, я зашел за помощью. Я не прошу готового решения моей простой или непростой(для меня) задачи. С первым примером(ОГРОМНОЕ СПАСИБО ЗА ГОТОВЫЕ ВАРИАНТЫ) разобрался сижу читаю дальше, если есть вариант ускорить этот процесс решения задачи, то почему бы и нет. Я никого не заставляю, если у кого то есть время помочь или готовое решение, вам жалко? [moder]Для максимума понятно, Вы решения не знали, но, имея решение для него, Вы способны поменять знак > на знак <? Просто включите логику. Впрочем, это я так, бурчу. Просто в личку сейчас стучится гражданка с подобными же вопросами - наболело уже.
Уважаемый модератор, я зашел за помощью. Я не прошу готового решения моей простой или непростой(для меня) задачи. С первым примером(ОГРОМНОЕ СПАСИБО ЗА ГОТОВЫЕ ВАРИАНТЫ) разобрался сижу читаю дальше, если есть вариант ускорить этот процесс решения задачи, то почему бы и нет. Я никого не заставляю, если у кого то есть время помочь или готовое решение, вам жалко? [moder]Для максимума понятно, Вы решения не знали, но, имея решение для него, Вы способны поменять знак > на знак <? Просто включите логику. Впрочем, это я так, бурчу. Просто в личку сейчас стучится гражданка с подобными же вопросами - наболело уже.m0uz3
Сообщение отредактировал _Boroda_ - Четверг, 31.03.2016, 11:14
Karataev, все варианты отличны, все подошли) использую ваш, т.к. самый простой, вот только ни как не могу сообразить как сделать добавив ячейку для сохранения минимального значения, при использовании макроса сделал, добавив [a3] = WorksheetFunction.Min(Range("a1:a3")) а без макроса не могу понять( PS: +'ы дал, спасибо за ответы)))
Karataev, все варианты отличны, все подошли) использую ваш, т.к. самый простой, вот только ни как не могу сообразить как сделать добавив ячейку для сохранения минимального значения, при использовании макроса сделал, добавив [a3] = WorksheetFunction.Min(Range("a1:a3")) а без макроса не могу понять( PS: +'ы дал, спасибо за ответы)))m0uz3
Karataev, так я уже делал, в таком случаи значении либо всегда отрицательное либо 0, как сделать без использование макроса, что бы точкой отсчета пошло первое введенное число?
Karataev, так я уже делал, в таком случаи значении либо всегда отрицательное либо 0, как сделать без использование макроса, что бы точкой отсчета пошло первое введенное число?m0uz3
но она не устанавливала первоначальное значение. Затем я закрыл файл и через некоторое время еще раз решил посмотреть. После чего эта же формула стала работать. Какой-то баг что ли? Чтобы установить первоначальное значение в C2, установите первоначальное значение в A2, затем выделите C2, щелкните в строке формул и нажмите Enter. Должно установиться то число, которое находится в A2. Недостаток этой формулы - если в A2 будет ноль, то в C2 тоже станет ноль и при следующем изменении в A2 в C2 будет то, что в A2. Например, если в A2 будет 1 (а до этого было ноль), то и в C2 станет 1. То есть формула требует доработки.
P.S. создал новый пост, чтобы автор темы увидел (если вносить изменения в существующий пост, то уведомления не приходят).
сначала я пробовал использовать эту формулу:
Код
=ЕСЛИ(C2=0;A2;ЕСЛИ(A2<C2;A2;C2))
но она не устанавливала первоначальное значение. Затем я закрыл файл и через некоторое время еще раз решил посмотреть. После чего эта же формула стала работать. Какой-то баг что ли? Чтобы установить первоначальное значение в C2, установите первоначальное значение в A2, затем выделите C2, щелкните в строке формул и нажмите Enter. Должно установиться то число, которое находится в A2. Недостаток этой формулы - если в A2 будет ноль, то в C2 тоже станет ноль и при следующем изменении в A2 в C2 будет то, что в A2. Например, если в A2 будет 1 (а до этого было ноль), то и в C2 станет 1. То есть формула требует доработки.
P.S. создал новый пост, чтобы автор темы увидел (если вносить изменения в существующий пост, то уведомления не приходят).Karataev