Corregir error de macro para ordenar alfabéticamente resultado de filtro

Necesito que me ayuden con esta macro

With hm.Sort
.SortFields.Clear
.SortFields.Add Key:=hm.Range("A3:A" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange hm.Range("A3:I" & u)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Esta me ordena datos alfabéticamente,

Primero filtro con fechas (desde - hasta), el resultado lo pega en otra hoja

Cuando hay datos filtrados no hay ningún error, pero cuando entre las dos fechas no exite ningún

Dato que filtrar entonces me da error por no haber datos.

Lo que necesito es que me ayuden a corregir ese problema agregando algún código que diga que cuando no hay datos se salte el código o algo similar.

1 Respuesta

Respuesta
3

H o l a:

Supongo que en la variable u tienes la última fila con datos de la hoja hm.

Entonces antes de esta línea:

With hm.Sort

Pon esto:

If u <= 3 Then
    MsgBox "No hay registros"
    Exit Sub
End If

Significa que si en la hoja hm hay 3 o menos filas, entonces que se salga de la macro.

Si el 3 está considerado dentro de las filas, entonces cambia a esto:

If u <= 3 Then
    MsgBox "No hay registros"
    Exit Sub
End If

Por otra parte si quieres que continúe algún otro código, entonces de esta forma:

If u <= 3 Then
    MsgBox "No hay registros"
Else
    With hm.Sort
        .SortFields.Clear
        .SortFields.Add Key:=hm.Range("A3:A" & u), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange hm.Range("A3:I" & u)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    '
    'En esta parte sigue tu códiog
    '
End If

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas