¿Cómo puedo hacer que la fuente de una celda sea transparente?


18

Estoy creando un mapa de calor usando el formato condicional de Excel. No quiero que los valores de la celda se muestren en el fondo de color. ¿Hay alguna manera de hacer que el formato de la fuente sea transparente, similar a lo que se encuentra en el formato de relleno de la celda?

Dado que es un mapa de calor, no puedo usar un solo color (por ejemplo, blanco) y preferiría no tener que formatear individualmente la propiedad de fuente de cada celda con el color apropiado.

EDITAR: para ayudar a aclarar, el mapa de calor se colorea con Formateo condicional> Escala de colores> Rojo-Blanco-Azul (donde el blanco se modificó a gris claro), por lo que el valor de relleno de la celda no se establece directamente, sino que es un valor calculado en un degradado de color

Mapa de calor

Respuestas:


29

He encontrado una solución alternativa que no cambia el color de la fuente, pero elimina efectivamente el texto de las celdas. Ajuste el formato del número de celda a Personalizado, con un valor de ;;;.


Genial, esto funciona como cualquier cosa
Dev_Man

3

Si bien no conozco ninguna funcionalidad de la hoja de trabajo para hacer coincidir el color de fuente de una celda con su color de relleno (que no sea manualmente), es muy fácil hacerlo con una macro. La primera macro a continuación cambia los colores de fuente en las celdas de un rango seleccionado para que coincidan con sus colores de relleno. El segundo devuelve los colores de fuente al negro predeterminado.

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 las macros, seleccione Developer/ Visual Basicde la cinta principal y luego elija Insert/ Moduledel menú. Pegue el código en el panel de edición que se abre. Las macros aparecerán en la lista de macros accesible seleccionando Developer/ Macrosdesde la cinta principal. Simplemente seleccione con el mouse el rango que desea modificar y elija la macro que desea ejecutar.


Enfoque muy interesante. Lo probé y funciona en una celda llena con forma noramial (es decir, donde el formato de celda se selecciona directamente). Desafortunadamente, no funciona donde el color de la celda es un formato condicional en un gradiente, entonces solo cambia a blanco. ¿Alguna idea?
DAV

Eso es muy malo. Las respuestas en esta publicación de StackOverflow sugieren un enfoque. Saldrá más tarde hoy.
chuff

Gracias, por ahora estoy usando mi truco de formato de número, pero voy a trabajar en el VBA al que se hace referencia en su enlace para obtener una mejor solución a largo plazo.
DAV

Perdón por cambiar la respuesta aceptada, pero con la disparidad de votos me pareció apropiado. Además, coincide con el método que uso regularmente ahora.
dav

1

Bien, esta es la primera vez que envío un código, así que aquí va. Pensé que la ruta macro sería el camino a seguir, pero como no puede configurar la fuente para que sea igual al color de la celda usando el formato condicional, entonces la única otra forma sería cambiar ambas con una macro que funcione de manera similar a efecto del formato condicional, ver abajo:

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 esto ayude a alguien, aunque es tres años demasiado tarde para la pregunta original.


1

Así es como lo hago.

.Cells (RowTo, ColHcpDiP) .Font.Color = .Cells (RowTo, ColHcpDiP) .Interior.Color 'Establecer color invisible

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.