Страницы: 1
RSS
Заливка ячеек по RGB или HEX, по параметрам из другой ячейки
 
Подскажите, пожалуйста, как можно залить ячейку цветом, параметры которого (RGB или HEX-код цвета) указаны в соседней ячейке?
Необходимо сделать карту цветов, но из исходных данных только параметры цветов. Цветов много, поэтому вручную через меню заливки - не вариант.
Спасибо.
 
Соседняя - это где? Справа?
 
Слева)
 
Ячейки столбца А будут залиты аналогично ячейкам столбца В
Код
Sub TestColor()
Dim i As Integer
    For i = 1 To 10
        Cells(i, 1).Interior.ColorIndex = Cells(i, 2).Interior.ColorIndex
    Next
End Sub
 
 
как-то так
 
Мне надо, чтоб по параметрам заливка происходила.
Вот табличка. Есть HTML-код цвета, есть RGB параметры, надо чтобы брались эти параметры и закрашивались соответствующими цветами ячейки в столбце ColorName  :|
 
Код
Sub Заливка()
Dim c As Range
    For Each c In Range(Range("E2"), Range("E2").End(xlDown))
    c.Interior.Color = RGB(c.Offset(0, -3).Value, c.Offset(0, -2).Value, c.Offset(0, -1).Value)
    Next
End Sub 
 
Красота! То что надо. Огромное спасибо!
Изменено: vikttur - 15.09.2021 09:02:44
 
Цитата
V написал:
Sub Заливка()
Этот макрос работает по RGB
Возможно ли сделать именно по HEX ?
С hex работать быстрее - скопировал одно значение и вставил)
 
Формулами RGB в HEX перевести точно можно) В файле
Изменено: Михаил Л - 15.09.2021 09:42:34
 
Код
c.Interior.Color=val(replace(c.Offset(, -4),"#","&H"))
Изменено: БМВ - 15.09.2021 10:49:54
По вопросам из тем форума, личку не читаю.
 
Ведмедь дальтоник?  :D  
 
Цитата
RAN написал:
Ведмедь дальтоник?
ну перевернул, зеленый то на месте :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
Михаил Л написал:
Возможно ли сделать именно по HEX ?
как вариант, формулы из ячеек загнать в код.
Код
For Each c In Range(Range("E2"), Range("E2").End(xlDown))
    n1 = WorksheetFunction.Hex2Dec(Mid(Cells(c.Row, 1), 2, 2))
    n2 = WorksheetFunction.Hex2Dec(Mid(Cells(c.Row, 1), 4, 2))
    n3 = WorksheetFunction.Hex2Dec(Mid(Cells(c.Row, 1), 6, 2))
    c.Interior.Color = RGB(n1, n2, n3)
Next
 
ну тогда уж
Код
For Each c In Range(Range("E2"), Range("E2").End(xlDown))
with c.offset(,-4)
c.Interior.Color = RGB(val("&H"& Mid(.value, 6, 2)), val("&H"& Mid(.value, 4, 2)), val("&H"& Mid(.value, 2, 2)))
end With
Next
Изменено: БМВ - 15.09.2021 11:26:59
По вопросам из тем форума, личку не читаю.
 
БМВ, RAN, V, большое вам спасибо!
Страницы: 1
Наверх