Quiero saber como se puede copiar el contenido de una celda en función del color y según el color es

Tengo una libro de excel con dos hoja, en la hoja 1 tengo una serie de datos y sin color y, en función de las circunstancias las casillas las pongo de color verde, amarillo o rojo. Quisiera saber como puedo trasladar el contenido automáticamente, de las celdas cuando las pongo el color verde a la hoja 2 en la columna B y ademas se borre de la hoja 1, y cuando es de color amarillo a la hoja 2 en la columna E sin eliminarlo de la hoja 1.

2 respuestas

Respuesta
1

¿Me puedes comentar qué versión de excel tienes?

Y también necesito saber el número de color que manejas: del verde, amarillo y rojo.

Te explico un poco, internamente excel le pone un número a cada color, por eso necesito saber el número de color que elegiste.

¿Cómo puedes verificar el número de color que tienes en la celda?

Te envío una macro para saber el color que tiene cada celda

Instrucciones para ejecutar macro
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Sub color()
numcolor = ActiveCell.Interior.ColorIndex
MsgBox numcolor
End Sub

Indicaciones, pon el cursor en una celda que tenga el color rojo, cámbiate a la ventana de VBa y ejecuta la macro con F5, te debe aparecer una ventana con un número; apunta ese número para el rojo. Repite los pasos para el verde y para el amarillo.

De esta forma obtienes los número por color y me los envías.

Saludos. Dam

Gracias por responder.

TRabajo en el puesto de trabajo, que para donde lo necesito con el Windows xp, y la versión del office 2010 plus. Respecto a los colores los números son los siguiente, verde: 14, amarillo: 6, rojo: 3.

En casa tengo 2 ordenadores, uno con el Wxp y otro con el W8 con el office 2013, no se si es lo mismo para el planteamiento.

No te pregunté en qué columna se encuentra la celda que va a copiarse, suponiendo que es la columna A y los datos están en la Hoja1, ocupa la siguiente macro.
Instrucciones para ejecutar macro
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Sub color2()
'copia celdas por su color
'Por.Dam
Application.ScreenUpdating = False
ufila = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To ufila
    Cells(i, 1).Select
    numcolor = ActiveCell.Interior.ColorIndex
    Select Case numcolor
    Case 14 'verde corta y pega en la hoja2-B
        'Range("C3").Select
        Selection.Cut
        Sheets("Hoja2").Select
        Range("B" & i).Select
        ActiveSheet.Paste
    Case 6 'amarillo copia y pega en la hoja2-E
        Selection.Copy
        Sheets("Hoja2").Select
        Range("E" & i).Select
        ActiveSheet.Paste
    Case 3
    End Select
    Sheets("Hoja1").Select
Next
    Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Saludos.Dam
Si es lo que necesitas.

Gracias por la respuesta. Funciona.

Una aclaración sobre el código, los datos de la hoja 1, se encuentran dentro del rango de las celdas ( C5:C88 ), bastaría con modificar el código en donde pone Application.ScreenUpdating = False
ufila = Range("A" & Rows.Count).End(xlUp).Row

por el siguiente,

Application.ScreenUpdating = False
ufila = Range("C5:C88" & Rows.Count).End(xlUp).Row

para cambiar la selección de origen de los datos (lo e hecho asi pero no me funciona)

En la hoja 2, los datos que aparecen en la columna B, podrían cuando se ejecuta la macro empezar a ponerse desde la celda B4 hacia abajo, sin dejar celdas vacías entre ellas, ejemplo, si hay tres casillas en verde en la hoja 1, las celdas C1, C4, C8, C9, estos datos aparezcan en la hoja 2 columna B a partir de la casilla B4, y el siguiente dato en la B2, B3 y asi sucesivamente.

Cuando dices: "las celdas C1, C4, C8, C9, estos datos aparezcan en la hoja 2 columna B a partir de la casilla B4, y el siguiente dato en la B2, B3 y asi sucesivamente.", quieres decir: a partir de la casilla B4, y el siguiente dato en la B5, B6 y asi sucesivamente

Te doy la macro actualizada. Tiene los cambios para empezar a copiar de C5 y hasta C88. También te va a pegar en la columna B desde B4 y luego B5, B6 y así sucesivamente

Sub color()
'copia celdas por su color
'Por.Dam
Application.ScreenUpdating = False
'ufila = Range("A" & Rows.Count).End(xlUp).Row
Sheets("Hoja1").Select
ufila = 88
j = 4
For i = 5 To ufila
    Cells(i, 3).Select
    numcolor = ActiveCell.Interior.ColorIndex
    Select Case numcolor
    Case 14 'verde corta y pega en la hoja2-B
        Selection.Cut
        Sheets("Hoja2").Select
        Range("B" & j).Select
        ActiveSheet.Paste
        j = j + 1
    Case 6 'amarillo copia y pega en la hoja2-E
        Selection.Copy
        Sheets("Hoja2").Select
        Range("E" & i).Select
        ActiveSheet.Paste
    Case 3
    End Select
    Sheets("Hoja1").Select
Next
    Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Saludos.Dam

Respuesta

Muy agradecido por la herramienta, me gustaría saber si es posible con este código, se copien las celdas pero eliminando las filas que no estén bajo los parámetros, de no ser mucho pedir como copiar otras celdas que estén junto a las que cumplen esta condición, por ejemplo que se tenga información en la Columna B de la Hoja1 pero esta no este con color

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas