Macro para validar si hay datos en un base filtrada

Necesito que al no existir el valor "AGENDADO" en una tabla filtrada, ya no continué con el resto de la macro y salga un mensaje "NO HAY PEDIDOS AGENDADOS".

Al cerrar el MsgBox finalice la macro y se situé en la celda "A1" de la Hoja "DATA".

Y si hay el valor "AGENDADO" que continué con la macro.

(Adjunto el código que utilizo, pero al no hallar el valor "AGENDADO" igual me copia los datos en la hoja "DATA")

Agradezco por el apoyo.

'filtrar pedidos agendados
Sheets("Report").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$BZ$40000").AutoFilter Field:=22, Criteria1:= _
        "AGENDADO"
        ' Y ahora comprobamos si hay datos o no:
   If Range("$A$1:$BZ$40000").SpecialCells(xlCellTypeVisible).Rows.Count = 1 Then
   ' si no hay resultados es cuando mostramos el mensaje
            MsgBox "NO HAY PEDIDOS AGENDADOS"
            ActiveSheet.ShowAllData
   End If
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
Sheets("DATA").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
1

1 Respuesta

4.321.075 pts. Sancho, si los perros ladran ...

Después de esta línea:

ActiveSheet. ShowAllData

Pon la línea:

Exit sub

Coloque Exit Sub debajo de la línea que indicaste, pero ahora sale el mensaje "NO HAY PEDIDOS AGENDADOS", así haya el valor "AGENDADO" y ya no ejecuta nada.

Esa acción estaría bien siempre y cuando NO hayan "AGENDADO".

Favor su apoyo, gracias.

Tendría que revisar tus datos para ver cómo los tienes.

Pero intenta probar con lo siguiente, ya lo probé y no tengo problemas.

'filtrar pedidos agendados
    Sheets("Report").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$BZ$40000").AutoFilter Field:=22, Criteria1:= _
        "AGENDADO"
        ' Y ahora comprobamos si hay datos o no:
    u = Range("V" & Rows.Count).End(xlUp).Row
    If u = 1 Then
        ' si no hay resultados es cuando mostramos el mensaje
        MsgBox "NO HAY PEDIDOS AGENDADOS"
        ActiveSheet.ShowAllData
        Exit Sub
    End If
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("DATA").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select

Avísame cualquier duda.

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas