No filtrar si no existe el nombre en la tabla

Me gustaría saber como se puede programar para que no se ejecute un filtro si en la tabla no existe el valor solicitado, ya que si el valor no existe en la hoja origen copia todas las celdas vacías en la hoja destino con lo que se incrementa el peso del archivo innecesariamente.

Voy a poner la sentencia solamente del filtro, no la que lo copia en la otra hoja.

Sub Compra()
'
Application.ScreenUpdating = False

Worksheets("Compras").Visible = xlSheetVisible
Worksheets("Compras").Select

Sheets("Compras").Unprotect Password:="xxxxxxxxx"

ActiveSheet.Range("$B$7:$I$100").AutoFilter field:=2, Criteria1:= _
"Libro AAAA"

Sheets("Dividendos").Protect Password:="xxxxxxxx"

End Sub

1 Respuesta

Respuesta
1

Prueba lo siguiente:

Sub Compra()
  Dim valor As String
  Dim f As Range
  valor = "Libro AAAA"
  Application.ScreenUpdating = False
  With Sheets("Compras")
    .Visible = xlSheetVisible
    .Select
    .Unprotect Password:="xxxxxxxxx"
    With .Range("$B$7:$I$100")
      Set f = .Find(valor, , xlValues, xlWhole, , , False)
      If Not f Is Nothing Then
        .AutoFilter field:=2, Criteria1:=valor
      Else
        MsgBox "El dato no existe"
      End If
    End With
  End With
  Sheets("Dividendos").Protect Password:="xxxxxxxx"
End Sub

Nota: en tu código empiezas con la hoja "Compras" pero al final utilizas "Dividendos"

Muchas gracias, Dante

Mañana pruebo la instrucción que me dices y te comento que tal ha funcionado.

Un saludo

Buenas Dante.

Indicarte que la instrucción que me remitiste surtió el efecto deseado.

Muchas gracias por tu tiempo.

Un saludo

.

[

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas