Visual Basic para Aplicaciones - Cambiar color de fuente dependiendo del color de celda

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Cambiar color de fuente dependiendo del color de celda

Publicado por Alan Ceballos (4 intervenciones) el 06/04/2016 20:29:33
Hola a todos!

En un reporte tengo diferentes celdas en color marrón con datos, el resto de las celdas también tiene datos pero no tienen ningún color. Lo que necesito es hacer una macro donde busque las celdas en color marrón y cambie el color de fuente (color de las letras) a rojo.
En una página encontré la siguiente macro (que podría adaptar) pero no me funciona ni siquiera como está y nunca había empezado una macro con la palabra Function:

1
2
3
4
5
6
7
8
9
Function CheckColor()
    If range.Interior.Color = RGB(255, 204, 0) Then
        CheckColor1 = "Stop"
    ElseIf range.Interior.Color = RGB(0, 256, 0) Then
        CheckColor1 = "Go"
    Else
        CheckColor1 = "Neither"
    End If
End Function

¿Alguien me podría ayudar a encontrar la macro correcta para llevar a cabo lo que necesito?
Muchas gracias por su apoyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Cambiar color de fuente dependiendo del color de celda

Publicado por Antonio (5 intervenciones) el 08/04/2016 10:38:34
Buenos días,
es sencillo lo que quieres hacer, pero no perdamos el norte. Me explico, si en una hoja excel todas las celdas que aparecen con fuente en color MARRÓN quieres que sean de color ROJO lo único que debes hacer es crearte un filtro en las columnas y filtrar por color de fuente Marrón, luego lo único que tienes que hacer es cámbialas manualmente a color ROJO (marcándolas todas de una vez).
SI le encuentro sentido a hacer una macro si tiene más de 25 columnas y 50 documentos con esa tipología. Con todo esto quiero decirte que la herramientas de excel son bastante útiles, deberás recurrir al VBA en los casos en los que quieras minimizar tiempos (cuando realmente creas que es una perdida de tiempo), depurar errores humanos o acciones repetitivas que no solo vas a aplicar en ese documento concreto sino en tu día a día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 28
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Cambiar color de fuente dependiendo del color de celda

Publicado por Andres Leonardo (26 intervenciones) el 09/04/2016 01:11:10
Antonio

Estoy de acuerdo con tu comentario la verdad...esto es para reducir tiempos .

Sobre el tema del amigo acabe de ver un archivo ejemplo del amigo son casi 20 columnas y filtrar una a una ... por color cambiar a color ... y de verdad qeu un CTRL Q te minimiza esta labor operativa increibleent... como te digo esto si pararece q debe ser automatizo

SAludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 28
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Cambiar color de fuente dependiendo del color de celda

Publicado por Andres Leonardo (26 intervenciones) el 08/04/2016 16:20:42
Puedes subir tu archivo para ayudarte mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambiar color de fuente dependiendo del color de celda

Publicado por Alan (4 intervenciones) el 08/04/2016 20:05:16
Capture

Hola, Andrés.

Subo una imagen del archivo. El asunto es que descargo este archivo 2 veces a la semana y, entre otras cosas, tengo que poner en rojo las fechas que se encuentran en las celdas anaranjadas (esto lo hice manualmente). Dependiendo del día (en que descargo el archivo), son diferentes celdas en color anaranjado las cuales tengo que poner las fechas en color rojo.

Espero quede más clara mi explicación.

Saludos y gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 28
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Cambiar color de fuente dependiendo del color de celda

Publicado por Andres Leonardo (26 intervenciones) el 08/04/2016 20:11:46
Ok ya lo revisoo no.lo veo dificil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 28
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Cambiar color de fuente dependiendo del color de celda

Publicado por Andres Leonardo (26 intervenciones) el 09/04/2016 01:06:36
Crea una hoja 2 ... y pones los parametros de las celdas

filas = A1 de la hoja 2 a recorrer y revisar
Cols= A2 de la hoja 2 a recorre y revisar
Color de fondo B1 de hoja 2 color a buiscar
Color de fuente b2 hoja 2 color de fuente a poner

Y aqui grabas una macro con ctrl + q
te adjunto ejemplo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub CambiColorLetrasCelda()
'
' CambiColorLetrasCelda Macro
' Cambia de color las letras de las celdas qeu estan de color de la hoja parametros.
'
' Acceso directo: CTRL+q
'
    Range("A1").Select
 
    Dim i, j As Integer
    i = Sheets(2).Range("A1").Value
    j = Sheets(2).Range("A2").Value
    c = Sheets(2).Range("B1").Interior.Color
    f = Sheets(2).Range("B2").Font.Color
    Sheets(1).Select
    For k = 1 To i
        For l = 1 To j
            'Debug.Print Chr(64 + k) & l & " - " & Range(Chr(64 + k) & l).Interior.Color
            If Range(Chr(64 + k) & l).Interior.Color = c Then
                Range(Chr(64 + k) & l).Font.Color = f
            End If
        Next l
    Next k
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Cambiar color de fuente dependiendo del color de celda

Publicado por Alan (4 intervenciones) el 11/04/2016 23:29:25
Hola Andrés! Muchas gracias por tu respuesta

He abierto el archivo ejemplo que me mandaste y funciona exactamente como lo requiero, el problema es que a la hora de correr la macro en mi archivo no me funciona. Supongo que tiene que ver con poner los parámetros en las celdas ya que nunca he hecho eso antes. Me podrías decir cómo hacerlo, por favor?
De igual forma anexo mi archivo por si te facilita más.

Una vez más, muchas gracias por tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 28
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Cambiar color de fuente dependiendo del color de celda

Publicado por Andres Leonardo (26 intervenciones) el 12/04/2016 00:25:15
Alan

Deberas cambiar a un excle que acepte macrros ... Extension (Xlsm)

Adicional graba la macro que se ejecute con Control Q y para la grabacion

PEga el codigo que te di

Creas la hoja dos y colocas los parametros que te di..... numeros y listo

Pero si no puedes te dejo.... no demora ni un segundo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambiar color de fuente dependiendo del color de celda

Publicado por Alan (4 intervenciones) el 15/04/2016 17:14:48
Andrés,

Muchas gracias por tu respuesta, me funcionó a la perfección. No entiendo por qué no pude hacerlo con el primer archivo que enviaste, si lo ajuste acorde a mis parámetros y la macro la guardé en mi archivo personal para que esté disponible para todos los archivos de excel.

De cualquier forma, ya quedó solucionado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar