Como posso tornar a fonte de uma célula transparente?

14

Estou criando um mapa de calor usando a formatação condicional do Excel. Não quero que os valores da célula sejam exibidos no plano de fundo de cor. Existe uma maneira de tornar a formatação da fonte transparente, semelhante ao que é encontrado na formatação de preenchimento da célula?

Como é um mapa de calor, não posso usar uma única cor (por exemplo, branco) e prefiro não ter que formatar individualmente a propriedade de fonte de cada célula para a cor apropriada.

EDITAR: Para ajudar a esclarecer, o mapa de calor é colorido usando a Formatação condicional > Escala de cores > Vermelho-branco-azul (onde o branco foi modificado para cinza claro), portanto o valor de preenchimento da célula é não definido diretamente, mas sim um valor calculado em um gradiente de cor.

    
por dav 21.05.2013 / 19:26

4 respostas

25

Encontrei uma solução alternativa que não altera a cor da fonte, mas remove efetivamente o texto das células. Ajuste o formato do número de células para Personalizado, com um valor de ;;; .

    
por 21.05.2013 / 19:27
3

Embora não tenha conhecimento de nenhuma funcionalidade de planilha para corresponder a cor da fonte de uma célula à cor de preenchimento (diferente de manualmente), é muito fácil fazer com uma macro. A primeira macro abaixo altera as cores da fonte nas células de um intervalo selecionado para corresponder às cores de preenchimento. O segundo retorna as cores da fonte de volta ao preto padrão.

Sub HideFont()
    Dim cell As Variant
    For Each cell In Selection
        cell.Font.Color = cell.Interior.Color
    Next cell
End Sub

Sub UnhideFont()
    Dim cell As Variant
    For Each cell In Selection
        cell.Font.Color = 0
    Next cell
End Sub

Para instalar as macros, selecione Developer / Visual Basic da faixa de opções principal e escolha Insert / Module no menu. Cole o código no painel de edição que é aberto. As macros aparecerão na lista de macros acessíveis escolhendo Developer / Macros da faixa principal. Basta selecionar com o mouse o intervalo que você deseja modificar e escolher a macro que deseja executar.

    
por 22.05.2013 / 01:12
1

Ok, esta é a primeira vez que eu envio código, então aqui vai. Eu pensei que a rota macro seria o caminho a percorrer, mas como você não pode definir a fonte para ser o mesmo que a cor da célula usando formatação condicional, a única outra maneira seria mudar tanto com uma macro que funciona de forma semelhante ao efeito do formato condicional, veja abaixo:

Sub change()

    Dim Rstart, Rmid, Rend, Gstart, Gmid, Gend, Bstart, Bmid, Bend, Rsd, Rdd,_
    Gsd, Gdd, Bsd, Bdd, Rcell, Gcell, Bcell As Integer
    Dim maxsel, minsel, halfsel, halfval, v As Double



    Rstart = 0
    Rmid = 230
    Rend = 255
    Gstart = 0 
    Gmid = 230
    Gend = 0
    Bstart = 255
    Bmid = 230
    Bend = 0

    Rsd = Rmid - Rstart
    Rdd = Rend - Rmid

    Gsd = Gmid - Gstart
    Gdd = Gend - Gmid

    Bsd = Bmid - Bstart
    Bdd = Bend - Bmid

    maxsel = Application.WorksheetFunction.Max(Selection)
    minsel = Application.WorksheetFunction.Min(Selection)
    halfsel = (maxsel - minsel) / 2
    halfval = minsel + halfsel
    If halfval = 0 Then Exit Sub

    Dim cell As Variant
    For Each cell In Selection
        v = cell.Value
        If v >= minsel And v < halfsel Then
            Rcell = Round((Rstart + ((halfval - v) / halfsel) * Rsd), 0)
            Gcell = Round((Gstart + ((halfval - v) / halfsel) * Gsd), 0)
            Bcell = Round((Bstart + ((halfval - v) / halfsel) * Bsd), 0)
        Else
            Rcell = Round((Rmid + ((v - halfval) / halfsel) * Rdd), 0)
            Gcell = Round((Gmid + ((v - halfval) / halfsel) * Gdd), 0)
            Bcell = Round((Bmid + ((v - halfval) / halfsel) * Bdd), 0)
        End If

    cell.Font.Color = RGB(Rcell, Gcell, Bcell)
    cell.Interior.Color = RGB(Rcell, Gcell, Bcell)

    Next cell

    End Sub

Espero que isso ajude alguém, mesmo que seja três anos atrasado para a pergunta original.

    
por 11.10.2016 / 21:05
1

É assim que eu faço.

.Cells (RowTo, ColHcpDiP) .Font.Color = .Cells (RowTo, ColHcpDiP) .Interior.Color 'Definir cor invisível

    
por 14.01.2017 / 12:32