Problema Macro Error 1004 en tiempo de ejecución - No se encontraron celdas

Hola a todos muy buenos dias:

Mi probema es que tengo una macro que Organiza una Base de datos de 5 compañias, para unas compañias funciona y para otras me sale error, la explicación es porque la macro realiza muchos filtros, el problema es cuando el filtro no arroja resultados, entonces la macro deja de ejecutarse y sale Error 1004 en tiempo de Ejecución, "No se Encontraron Celdas",  aqui viene mi pregunta, se puede evitar que la macro se detenga??, es decir, que si el filtro no arroja resultados simplemente siga con la linea o sentencia que yo ordene.

ejemplo de uno de los filtros:

ActiveSheet.Range("$A:$P").AutoFilter field:=13, Criteria1:="AB"
ActiveSheet.Range("$A:$P").AutoFilter field:=4, Criteria1:= _
">1000000000", Operator:=xlAnd, Criteria2:="<1129999999"
Cells(Range("I2").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeVisible).Row, 9).Select

La linea que esta en negrilla es la que se resalta cuando le doy depurar.

En total son como 25 filtros en toda la macro.

Gracias por su ayuda

2 Respuestas

Respuesta
1

Tienes el comando "on error resume next", que lo pones antes de una línea específica y te salta a la siguiente instrucción en caso de error en ella sin parar la macro. O bien "on error goto XXX" en caso de error va a una línea del programa donde previamente has colocado el título XXX encima. También sin detener la macro.

Hola Miguel estuve realizando el "On Error Goto XXX" los primeros 10 filtros donde use esta instrucción funciono de maravilla pero en la numero 11, empieza a salir el bendito error 1004, ¿qué sera?

Pues ahí ya no lo sé. Pero si te ha funcionado en esos 10 filtros se entiende que la instrucción como tal funciona. Posiblemente a partir de un nivel de operación el sistema entre en overflow.

La macro me sigue dando error, ¿pero le doy click en RESTABLECER y ejecuto a partir de ese ON ERROR GOTO 11 y lo hace como debe ser crees saber porque?

Pues así con esta poca información no lo sé. Igual si me mandas el fichero.

Respuesta
1

Con esta opción puedes controlar si no se encontraron datos en el filtro:

    ActiveSheet.Range("$A:$P").AutoFilter field:=13, Criteria1:="AB"
    ActiveSheet.Range("$A:$P").AutoFilter field:=4, Criteria1:= _
    ">1000000000", Operator:=xlAnd, Criteria2:="<1129999999"
    u = Range("D" & Rows.Count).End(xlUp).Row
    If u > 1 Then
        Cells(Range("I2").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeVisible).Row, 9).Select
    Else
        'Puedes poner un mensaje
        'MsgBox "Datos no encontrados"
        '
    End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas