Macro para recorrer filas y detectar el color, luego escribir en una celda determinada.

Lo que quiero es que la macro recorra un rango de filas por ejemplo desde la celda A2 hasta la celda Z2 dichas celdas tienen colores distintos entre naranja, verde y plomo. También tienen un encabezados desde A1 hasta Z1 (P1, P2, P3, P4...) Así sucesivamente hasta la Z.

Entonces cuando encuentre el color naranja escriba en una celda aparte el encabezado que corresponde así, digamos que la celda A2, B2, B3 es naranja. B4, B5 es verde entonces debe escribir (P1P2P3/AGUA/P4P5/CIELO) si no tiene color no escribe nada.

Y luego realizar la misma búsqueda en la fila siguiente.

1 respuesta

Respuesta

[Hola

Creo que sería bueno que intentes explicar un poquito mejor, de lo que se entiende tienes:

- De A1 a Z1, encabezados, digase P1, P2, P3, etc.

- Tienes datos de A1 a ¿Z2? Eso genera dudas, ya que también mencionas B2, B3, etc. además de decir "fila siguiente" (también)

- Una vez que (re)comentes en que rango están esas celdas con colores, sería bueno que especifiques en donde irá eso que hay que escribir

- Si hay hasta ¿tres? Colores aplicados: ¿A qué responde eso que pones de agua, cielo...? ¿Es uno a cada color? Si son tres colores ¿por qué solo dos elementos?

- Los colores son ¿de formato o de "formato condicional? de ser lo último, la cosa realmente se complica por si acaso

- Ah, algo más sobre los colores ¿qué colores exactos son? Excel soporta millones de colores, habría que saber exactamente cuales aplicaste, quizá mencionar si son personalizados o de la paleta de colores y los que tiene de forma predeterminada.

Abraham Valencia

Me explicó, los encabezados van desde la celda A1 hasta Z1; los encabezados son: para A1 (P1), A2 (P2) Y así sucesivamente.

Los colores están en las celdas B2, C2, D3 también hasta la Z2 (los colores no cambian son solo tres anaranjado, verde y plomo,) algunas celdas no tendrán ningún color en ese caso que no se escriba nada.

No son formatos condicionales, son colores puestos por el usuario.

Lo que quiero es lo siguiente: Que busque primero los colores anaranjados digamos que A2, C2 Y G2 entonces escribiría P1P3P7/ANARANJADO, luego los de color verde que serían D2,E2,J2 (ahora lo que escribiría serí así P1P3P7/ANARANJADO/P4P5P10/VERDE)

Las celdas que faltan mencionar no estarían pintadas.

Ojo sin espacios.

[Hola nuevamente

Varios supuestos:

- Que no tienes datos en las columnas AA, AB y AC

- Que las filas con datos son de la 2 a la 4 (se puede cambiar en la línea respectiva)

- Yo he usado tres tonos de colores (hay miles, millones) debes cambiarlos por los tuyos que solo tú puede ver/saber

- Uso la propiedad "Color" pero se puede usar también "ColorIndex"

Ejemplo:

Sub Cualquiercosa()
Dim x As Long
Dim Celda As Range
Application.ScreenUpdating = False
For x = 2 To 4 'suponiendo datos entre las filas 2 y 4
    For Each Celda In Range("A" & x & ":Z" & x)
        If Celda.Interior.Color = 49407 Then 'esto es un tono de anaranjado
            Range("AA" & x) = Range("AA" & x) & Cells(1, Celda.Column).Value
        ElseIf Celda.Interior.Color = 5287936 Then 'esto es un tono de verde
            Range("AB" & x) = Range("AB" & x) & Cells(1, Celda.Column).Value
        ElseIf Celda.Interior.Color = 8421504 Then 'esto es un tono de gris
            Range("AC" & x) = Range("AC" & x) & Cells(1, Celda.Column).Value
        End If
    Next Celda
     Range("AA" & x) = Range("AA" & x) & "/Anaranjado"
     Range("AB" & x) = Range("AB" & x) & "/Verde"
     Range("AC" & x) = Range("AC" & x) & "/Gris"
Next x
Columns("AA:AC").EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub

Comentas

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas