Страницы: 1
RSS
Определение цвета текста в ячейке
 
Здравствуйте, помогите пожалуйста решить следующую проблему:
Записал себе макрос, а он не работает как надо.
В колонку G должна вставляться формула ЕСЛИ(ЕОШ(ПОИСК("*витяжка*";B8)>0);F8*0,85;F8*0,88), но если текст в RC[-1] красный, то должно встать просто =RC[-1].
Как я понимаю проблема в том что Selection.FillDown отказывается работать с фильтром.
Каким образов можно определить цвет текста в ячейке, что бы обойтись без использования фильтра?
файл для примера прикрепил - лист2 - как должно быть.
код макроса:
Код
Sub ПрайсМакро()

    Columns("G:G").Select
    Selection.ClearContents
    Range("H3").Select
    ActiveCell.FormulaR1C1 = "курс:"
    Range("I3").Select
    ActiveCell.FormulaR1C1 = "25"
    Range("G7").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERR(SEARCH(""*витяжки*"",RC[-5])>0),RC[-1]*0.85,RC[-1]*0.88)"
    Range("G7").Select
    Selection.AutoFill Destination:=Range("G7:G205")
    Range("G7:G205").Select
    ActiveSheet.Range("$A$6:$F$205").AutoFilter Field:=6, Criteria1:=vbRed, Operator:=xlFilterFontColor
    Range("G7").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]"
    Range("G7").Select
    Selection.FillDown
    ActiveWindow.SmallScroll Down:=-138
    Selection.AutoFilter
    Range("I7").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[2]/R3C9-RC[-2]<15,RC[-2]+15,RC[2]/R3C9)"
    Range("I7").Select
    Selection.AutoFill Destination:=Range("I7:I227"), Type:=xlFillDefault
    Range("I7:I227").Select
    ActiveWindow.SmallScroll Down:=-210
    Range("H7").Select
End Sub

Изменено: VectorXXX - 07.04.2016 22:54:26 (Смена названия темы)
 
Цитата
Возможно ли определить цвет шрифта в условии формулы?
Может быть, посмотреть с другой стороны - обойтись без формулы и все вычислять в коде?
 
к сожалению не тот у меня уровень знаний)
но если кто поможет написать - буду очень признателен
 
Чтобы именно формулами  цвет ячейки получать  это пользовательскую функцию писать надо.
Арфы - нет, возьмите бубен.
 
Код
 If Range("B23").Font.Color = 255 Then
  'действие если красный шрифт
  Else
  'действие если шрифт не красный
  End If
Изменено: Фродо - 07.04.2016 22:54:59
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Критичен ли цвет в столбце F?
Ведь есть еще и атрибут столбца D (пустой/не пустой), который передает те же условия что и цвет в столбце F

Или там могут быть и другие значения?
Если нет то:
=ЕСЛИ(D7="";ЕСЛИ(ЕОШ(ПОИСК("*витяжка*";B7)>0);F7*0,85;F7*0,88);F7)
Изменено: ts-79 - 07.04.2016 18:01:54
 
насколько я помню стандартные функции не могут узнать какой цвет у шрифта

на всякий случай выложу свой пример через УДФ, может пригодится .
трактовка =ЕСЛИ(КрасныйЦвет(F7);"ячейка красная";"ячейка Не красная")
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Кроме ЯЧЕЙКА("формат";...) со скудным функционалом, не припомню стандартных функций отслеживающих цвет шрифта.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
ts-79 написал: Критичен ли цвет в столбце F?
не всегда в примечаниях пишут спец цена, бывают всякие акции и тд.
 
Фродо, Спасибо большое, взял Вашу функцию.
Страницы: 1
Читают тему
Наверх