Borrar contenido de filas (rango) si contiene color especifico
Me han ayudado por un experto sobre un código que si detecta un color elimina toda una fila... Mi caso es que (no em di cuenta) que hay una hoja que tiene fórmulas de INDIRECTO y uso filas columnas y nombres de hojas, entonces al ejecutar el código mi fórmula cambia y se mueve todo... Aun estén referenciados...
Este es el código que me han proporcioando
Sub CopiarMes()
'Por.Dante Amor
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set l1 = ThisWorkbook
ruta = l1.Path & "\"
meses = Array("", "ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", _
"AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
nombre = l1.Name
punto = InStrRev(nombre, ".")
nombre = Left(nombre, punto - 1)
For i = 1 To UBound(meses)
If InStr(1, UCase(nombre), meses(i)) > 0 Then
If i = 12 Then
nvo = "ENERO"
ant = "DICIEMBRE"
Else
nvo = meses(i + 1)
ant = meses(i)
End If
Exit For
End If
Next
'
nvonombre = Replace(UCase(nombre), ant, nvo)
l1.SaveCopyAs ruta & nvonombre & ".xlsm"
Set l2 = Workbooks.Open(ruta & nvonombre & ".xlsm")
For Each h In l2.Sheets
For i = h.Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If h.Cells(i, "A").Interior.ColorIndex = 43 Then
h.Unprotect
h.Rows(i).Delete
h.Protect
End If
Next
Next
l2.Save
MsgBox "Terminado"
End Sub
Funciona excelente
Pero si en vez de eliminar completamente las filas este solo me borra los contenidos (formatos y contenido) y que sea en determinado rango de filas ejemplo:
El rango seria A1:G100 si en este rango detecta...
La fila A9 con colorindex 43 entonces me borre los contenidos a partir de A9 hasta A100 ya que ahí termina mi rango... Algo así:
If h.Cells(i, "A1:A100").Interior.ColorIndex = 43 Then
h.Unprotect
h.Rows(i).clearcontents
h.Protect