No funciona macro con Filtro

Soy muuuuyyy novato en las macros VBA Excel, lo reconozco, y tengo esta macro que funciona bien pero cuando aplico el filtro en la Columna 9 y no encuentra ningún valor que coincida, deja de funcionar y Excel se bloquea.

Dim C As Range

W = 1
For W = 1 To 10000
Set C = Cells(W, 9)
Do While C.Value = "SI"
         C.Offset(, -8).Resize(, 11).Interior.ColorIndex = 7
         Set C = C.Offset(1, 0)
     Loop
     Next

Necesito filtrar esa columna sin que se bloquee.

¿Alguien puede ayudarme?

1 respuesta

Respuesta
1

Prueba la siguiente opción, primero verifica si existen valores.

Si existen valores, entonces aplica un filtro y pone el color, con el autofiltro no es necesario realizar ciclos y tú tienes 2 ciclos.

Sub test2()
  Dim lr As Long, f As Range
  Application.ScreenUpdating = False
  With ActiveSheet
    If .AutoFilterMode Then .AutoFilterMode = False
    Set f = Range("I:I").Find("SI", , xlValues, xlWhole, , , False)
    If Not f Is Nothing Then
      lr = .Range("I" & Rows.Count).End(3).Row
      .Range("A1:K" & lr).AutoFilter 9, "SI"
      .AutoFilter.Range.Range("A2:K" & lr).Interior.ColorIndex = 7
      .Range("A1").AutoFilter
    Else
      MsgBox "No existen valores"
    End If
  End With
  Application.ScreenUpdating = True
End Sub

Muchas gracias Dante por tu respuesta, y funciona perfectamente.

Aunque quizás no me explique bien ya que preciso tener filtrada la columna 9 al terminar y esta opción no lo permite.

Tomo nota del método para aprender más y mejorar en adelante.

Saludos

¿Y qué filtro tienes en la columna 9?

Quita esta línea y prueba

. Range("A1"). AutoFilter

Si precisas tener filtrada la columna 9. Entonces podemos hacerlo con un ciclo y con esto abreviamos el código:

Sub test3()
  For i = 1 To ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    If Range("I" & i).Value = "SI" Then Range("A" & i & ":K" & i).Interior.ColorIndex = 7
  Next
End Sub

¡Gracias!  Dante 

Funciona perfectamente

Encantado de ayudarte. Al final de mi respuesta hay un botón para valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas