Macro para autofiltrar celdas y que no de resultados

Estoy haciendo una macro y necesito que al autofiltrar un rango si no da como resultado nada me ejecute una macro.

Tengo este código

 x1.Range("A1:K" & ultimo6).Select
  Selection.AutoFilter
  Selection.AutoFilter Field:=2, Criteria1:=matb, Operator:=xlAnd

Si el resultado es que no hay nada quiero saberlo para después ejecutar otro código.

3 respuestas

Respuesta
1

Una opción sería moviendote al final de la selección luego del filtro, si llega hasta el final de la hoja es porque tu selección no trae nada... algo del estilo

x1.Range("A1:K" & ultimo6).Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=matb, Operator:=xlAnd
filaHasta = x1.Range("A1").End(xlDown).Row
If filaHasta > 1000000 Then                 'Asumo que es .versión 2010+
   'No encontró nada
   'Iría tu código
Else
   'Si encontró algo
End If

Salu2

Respuesta
1

Creo que algo así te será útil:

Dim Rango As Range
Dim Registros As Long
Set Rango = ActiveSheet.AutoFilter.Range
Let Registros = Rango.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
If Registros = 0 Then
MsgBox "No hay nada aquí"
End If

Solo adáptalo a tus necesidades. Comentas.

Abraham Valencia

Hola Abraham.

Lo he adaptado a mi código y funciona perfecto.

Muchas gracias.

Moisés.

¡Excelente! Nos vemos.

Abraham Valencia

Respuesta
1

Supongo que en la fila 1 tienes tus encabezados, entonces podría ser así:

    x1.Range("A1:K" & ultimo6).Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:=matb, Operator:=xlAnd
    '
    If x1.Range("B" & Rows.Count).End(xlUp).Row = 1 Then
        'No encontró registros, se ejecuta una macro
        Call proceso
    Else
        'si existen registros
    End If

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas