Otro vez macro formato condicional (color)
Apreciado amigo:
El pasado 16 de abril te hice una pregunta sobre el tem de referencia y obtuve tu rápida y brillante respuesta que, vuelvo a reproducir, más abajo.
Sin embargo, aplicando la macro que verás más abajo: consigo que me identifique los formatos condicionales de la selección efectuada pero me copia y pega la linea de esa celda aunque no se cumpla la condición impuesta en el formato condicional, porque me parece que lo único que hace la macro es identificar que a la celda se le ha asignado un formato condicional pero no verifica si se esta cumpliendo y -claro está- me pega todas las celdas, aunque no lo coumplan.
Espero haberme explicado con la suficiente claridad, ruego me contestes a la mayor brevedad (como es habitual en ti) dado que me urge mucho.
Una vez más, gracias.
HANS.
Aquí te pongo la macro:
Public Sub Copiarporcolorfondoformatocondicionalbuena()
'********En esta macro selecciona toda la fila y la copia en la hoja 2
Dim c As Range
Dim Co As Integer, y As Integer
For Each c In Selection
If c.Interior.ColorIndex = 3 Then
Co = Co + 1
c.EntireRow.Copy
Worksheets("Hoja2").Select
Worksheets("Hoja2").Cells(Co, 1).Select
Worksheets("Hoja2").Paste
ElseIf c.FormatConditions.Count > 0 Then
For y = 1 To c.FormatConditions.Count
If c.FormatConditions(y).Interior.ColorIndex = 3 Then
Co = Co + 1
c.EntireRow.Copy
Worksheets("Hoja2").Select
Worksheets("Hoja2").Cells(Co, 1).Select
Worksheets("Hoja2").Paste
Exit For
End If
Next
End If
Next c
End Sub
El pasado 16 de abril te hice una pregunta sobre el tem de referencia y obtuve tu rápida y brillante respuesta que, vuelvo a reproducir, más abajo.
Sin embargo, aplicando la macro que verás más abajo: consigo que me identifique los formatos condicionales de la selección efectuada pero me copia y pega la linea de esa celda aunque no se cumpla la condición impuesta en el formato condicional, porque me parece que lo único que hace la macro es identificar que a la celda se le ha asignado un formato condicional pero no verifica si se esta cumpliendo y -claro está- me pega todas las celdas, aunque no lo coumplan.
Espero haberme explicado con la suficiente claridad, ruego me contestes a la mayor brevedad (como es habitual en ti) dado que me urge mucho.
Una vez más, gracias.
HANS.
Aquí te pongo la macro:
Public Sub Copiarporcolorfondoformatocondicionalbuena()
'********En esta macro selecciona toda la fila y la copia en la hoja 2
Dim c As Range
Dim Co As Integer, y As Integer
For Each c In Selection
If c.Interior.ColorIndex = 3 Then
Co = Co + 1
c.EntireRow.Copy
Worksheets("Hoja2").Select
Worksheets("Hoja2").Cells(Co, 1).Select
Worksheets("Hoja2").Paste
ElseIf c.FormatConditions.Count > 0 Then
For y = 1 To c.FormatConditions.Count
If c.FormatConditions(y).Interior.ColorIndex = 3 Then
Co = Co + 1
c.EntireRow.Copy
Worksheets("Hoja2").Select
Worksheets("Hoja2").Cells(Co, 1).Select
Worksheets("Hoja2").Paste
Exit For
End If
Next
End If
Next c
End Sub
1 Respuesta
Respuesta de fjulianes
1
Disculpa fjulianes, hace rato que vengo siguiendo esta macro ya que requiero una parecida a esta, el problema esque siguiendo su codigo me aparece el error 1004 en esta linea:If (c.FormatConditions(y).Operator = xlBetween Or c.FormatConditions(y).Operator = xlNotBetween) ThenYo supongo que esto ocurre ya que el formato condicional en mi hoja cambia el formato cuando el valor es menor o igual a cierta celda, pero aun si reemplazo el xlBetween por xlLessEqual como lo describiste en el codigo de abajo me sigue apareciendo el mismo error, que deberia hacer?Gracias - Daniel Vega García