LibreCalc: altera a cor de fundo

3

Eu tenho 3 colunas: RG B. Eu quero que a 4ª coluna tenha a cor de fundo correspondente ao RGB nas 3 primeiras colunas.

Então, mais ou menos:

<td bgcolor="#"+A1*10000+B1*100+C1> Cell content </td>

Como faço isso?

Eu encontrei formatação condicional, mas parece que isso não torna possível calcular o valor RGB que eu quero.

    
por Ole Tange 07.11.2017 / 22:36

1 resposta

2

A solução a seguir é um tanto estranha porque requer uma folha separada, como explicado no comentário do @ tohuwawohu.

Primeiro, vá para Tools -> Macros -> Organize Macros -> LibreOffice Basic e adicione a seguinte função definida pelo usuário em algum lugar nas macros Padrão.

Function BGCOLOR(rgb_array, address)
    Dim red, green, blue As Integer
    Dim positionOfMatch As Integer
    Dim sheet_name, cell_name As String
    Dim oSheet, oCell As Object
    red = rgb_array(1, 1)
    green = rgb_array(1, 2)
    blue = rgb_array(1, 3)
    positionOfMatch = InStr(address, ".")
    sheet_name = Mid(address, 2, positionOfMatch - 2)  'start after initial $
    cell_name = Right(address, Len(address) - positionOfMatch)
    oSheet = ThisComponent.getSheets().getByName(sheet_name)
    oCell = oSheet.getCellRangeByName(cell_name)
    oCell.CellBackColor = RGB(red, green, blue)
    BGCOLOR="BG Color for " & address
End Function

Depois, como exemplo, inicie uma nova planilha do Calc e digite =RANDBETWEEN(0,255) em A1. Arraste e preencha esta fórmula até C10.

Em seguida, adicione uma nova planilha. Digite na célula A1 da nova planilha:

=BGCOLOR($Sheet1.A1:C1, CELL("ADDRESS", $Sheet1.D1))

Esses endereços também podem ser inseridos automaticamente clicando na fórmula, indo até essa folha e selecionando o intervalo ou a célula. No entanto, BGCOLOR pode tentar executar enquanto você ainda está editando a fórmula, o que pode ser irritante.

Por fim, arraste a fórmula para A10. Aqui está um exemplo de como a folha 1 parece como resultado.

Umaperguntasemelhantefoifeitaem .

    
por 08.11.2017 / 20:38