Страницы: 1
RSS
Изменение значений при изменения другого значения из выпадающего списка
 
Всем добрый день!
появилась новая задача. Возникла необходимость задавать цену (помимо установленных - "мин.", "макс.", "средняя";) вручную:

то есть, по колонке R можно выбирать - "да" или "нет", если "да" - то по колонке S появляются заданные цены (там сейчас формула), если "нет" - то юзер вручную забивает цену. Нужно чтобы по колонке S excel позволял выбирать заданные цены либо позволял вручную забить цену. Использование формулы по колонке S не желательно, потому как юзер может передумать забивать вручную, тогда придется заново копировать/писать формулу.

то есть нужно сделать так, чтобы так где прописана формула, при выборе "нет" формулы не стало  :D  как-то так)
Файл прикреплен

Всем спасибо заранее!
 
Формула сама себя не изменяет.
Введите доп.столбец для ввода ручной цены, а в формуле в S добавьте проверку - если в R "да", то такая формула, а если "нет" то брать значение из доп.столбца
Кому решение нужно - тот пример и рисует.
 
спасибо за комментарий, Пытливый. Да, вы правы, а есть ли все-таки какой-нибудь нетрудный способ посредством макроса?
Изменено: Dimas_79 - 07.03.2015 03:37:29
 
а с помощью УФ, доп столбца и подправленных формул нельзя обойтись?
Учимся сами и помогаем другим...
 
спасибо! но это реализация идеи, которую предложил  Пытливый. Босс хочет, чтобы не было отдельной колонки(:(
 
Сперва прочитал "Пытливый Босс" :-)
Учимся сами и помогаем другим...
 
БРАВИССИМО!!!!!1111111111
 
помогите, пж-та, не могу реализовать на реальном деле. Спасибо!
 
1) меняйте диапазон ячеек, в которых стоит да-нет. В коде это "[P7:P19]"
2) у Вас поменялась формула в ячейке с ценой
3) ячейка с ценой расположена на одну ячейку правее, чем в изначальном примере.
4) Вместо "да" Вы используете "Да". Для программы это разные строки.

Вот решение:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    
    If Not Intersect(Target, [P7:P19]) Is Nothing Then
        If LCase(Target) = "да" Then
            Target.Offset(0, 2).FormulaLocal = "=ЕСЛИ(RC[-2]=""да"";RC[-13];"""")"
        Else
            Target.Offset(0, 2) = ""
        End If
    End If
End Sub
Учимся сами и помогаем другим...
Страницы: 1
Наверх