Страницы: 1
RSS
Округление значения с уведомлением., Округление заказа в большую сторону с учетом кратности.
 
Добрый день.
Нужна Ваша помощь.

Необходимо сделать автоматическое округление заказа в большую сторону согласно кратности.
Например, при вводе значения "21" при кратности "8" заказ автоматически округляется до "24". При этом округление должно сопровождаться уведомлением "Заказ округлен с учетом кратности".

Заранее спасибо!
 
Формула 1:
=ОКРВВЕРХ(A2;B2)
Формула 2:
=ЕСЛИ(C2=A2;"";"Заказ округлен с учетом кратности")
И формула для УФ:
=$A2<>$C2
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Можно ли сделать так, чтобы значение заказа округлялось сразу в первом столбце? А при округлении появлялось всплывающее окно? Заранее спасибо!
 
Только макросом.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
В модуль нужного листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x As Range, y As Range, k As Long, q As Long
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, [A2:B7]) Is Nothing Then Exit Sub
    Set x = Cells(Target.Row, 1): Set y = Cells(Target.Row, 2)
    If Val(x) = 0 Or Val(y) = 0 Then Exit Sub
    With Application
        .EnableEvents = False
        k = .Ceiling(x, y)
        If x <> k Then
            q = x: x = k
            MsgBox "Заказ округлен с учетом кратности" & vbCrLf & " В ячейке " & _
            Chr(34) & x.Address(RowAbsolute:=False, ColumnAbsolute:=False) & Chr(34) & _
            " значение " & q & " заменено на " & k, vbExclamation, "ВНИМАНИЕ!"
        End If
        .EnableEvents = True
    End With
End Sub
Пример во вложении. Попробуйте изменять значения в диапазоне "A2:B7".
Изменено: SAS888 - 16.08.2017 08:05:32
Чем шире угол зрения, тем он тупее.
 
Цитата
llt88 написал:
округление должно сопровождаться уведомлением
можно УФ
Цитата
Bema написал:
Только макросом
Можно формулой (доп. столбец1); скопировать значения результатов формулы (столбец2); специальная вставка (сложить):
Код
=ЕСЛИ(B2=8;ОКРВВЕРХ.МАТ(A2;8);ОКРВВЕРХ.МАТ(A2;10))-A2
 
Цитата
z_sir написал:
Можно формулой (доп. столбец1)
У автора вопроса есть требование:
Цитата
llt88 написал:
чтобы значение заказа округлялось сразу в первом столбце
На что, совершенно верно ответил
Цитата
Bema написал:
Только макросом.
ИМХО ни формула, ни УФ не могут изменять значение в "собственной" ячейке. Ну, никак не могут...
Чем шире угол зрения, тем он тупее.
 
Цитата
SAS888 написал:
У автора вопроса есть требование
округление в предложенном варианте в первом столбце
Цитата
SAS888 написал:
формула ...не могут изменять значение в "собственной" ячейке
непосредственно нет, а с помощью вспомогательного столбца можно, что и продемонстрировано в предложенном варианте
 
Цитата
z_sir написал:
с помощью вспомогательного столбца можно,
Ну, во-первых, это не "сразу в первом столбце", как просил автор (кстати, где он?), во-вторых, требуется уведомление об изменении: что, на что и где округлилось.
Формулами это не реализовать.
Чем шире угол зрения, тем он тупее.
 
Большое Вам спасибо!
Страницы: 1
Наверх