Omitir ordenación en Macro

20/01/2010 - 10:34 por Belinda | Informe spam
Hola amigos...

Tengo un problema, como no, con una chapucilla que he hecho (con
vuestra ayuda, como siempre)... En esta macro

Rows("1:2").Select
Selection.Delete Shift:=xlUp
Range("A:A,C:C,D:D,F:F,H:H").Select
Range("H1").Activate
Selection.Delete Shift:=xlToLeft
With Range("C2").CurrentRegion
.Select
numfilas = .Rows.Count
End With
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="FAC"
Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
Selection.AutoFilter
Range("C2").Select

..ordeno una base de datos, poniendo como primer criterio "FAC", con
objeto de luego eliminar todas las filas que contengan ese criterio.
Luego se van encadenando otras instrucciones...El problema es que hay
veces que en ese fichero no existe ninguna celda con ese "FAC", por
la cual todo lo que va detrás falla estrepitosamente.

¿Como podria solucionarlo?

Gracias por vuestra ayuda

Preguntas similare

Leer las respuestas

#1 Guli
20/01/2010 - 12:31 | Informe spam
Hola Belinda!

Agregale al código lo siguiente:
On Error Resume Next

Lo que hace es que si encuentra un error, que siga con la siguiente
instrucción. Tené cuidado porque también se aplica para errores de escritura
de código.

Espero te sirva.

Saludos,

Guli
Respuesta Responder a este mensaje
#2 Juan M
20/01/2010 - 12:52 | Informe spam
Hola,

Antes de aplicar el filtro e intentar filtrar comprueba si existen en esa
columna registros que tengan esa condicion

Algo como esto podría servir

application.WorksheetFunction.CountIf(range("d:d"),"FAC")

ajusta el rango he empleado el d, si sale mayor que 0 es que puedes emplear
el filtro sino, vas al siguiente paso

.
if application.WorksheetFunction.CountIf(range("d:d"),"FAC") then
Selection.AutoFilter Field:=3, Criteria1:="FAC"
Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
Selection.AutoFilter
end if


Un saludo,
Juan



Consulta Original -
"Belinda" escribió
Hola amigos...

Tengo un problema, como no, con una chapucilla que he hecho (con
vuestra ayuda, como siempre)... En esta macro

Rows("1:2").Select
Selection.Delete Shift:=xlUp
Range("A:A,C:C,D:D,F:F,H:H").Select
Range("H1").Activate
Selection.Delete Shift:=xlToLeft
With Range("C2").CurrentRegion
.Select
numfilas = .Rows.Count
End With
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="FAC"
Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
Selection.AutoFilter
Range("C2").Select

..ordeno una base de datos, poniendo como primer criterio "FAC", con
objeto de luego eliminar todas las filas que contengan ese criterio.
Luego se van encadenando otras instrucciones...El problema es que hay
veces que en ese fichero no existe ninguna celda con ese "FAC", por
la cual todo lo que va detrás falla estrepitosamente.

¿Como podria solucionarlo?

Gracias por vuestra ayuda
Respuesta Responder a este mensaje
#3 Belinda
20/01/2010 - 13:14 | Informe spam
On 20 ene, 12:52, "Juan M" wrote:
Hola,

Antes de aplicar el filtro e intentar filtrar comprueba si existen en esa
columna registros que tengan esa condicion

Algo como esto podría servir

application.WorksheetFunction.CountIf(range("d:d"),"FAC")

ajusta el rango he empleado el d, si sale mayor que 0 es que puedes emplear
el filtro sino, vas al siguiente paso

.
if  application.WorksheetFunction.CountIf(range("d:d"),"FAC") then
    Selection.AutoFilter Field:=3, Criteria1:="FAC"
    Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
    Selection.AutoFilter
end if


Un saludo,
Juan

Consulta Original -
"Belinda" escribió
Hola amigos...

Tengo un problema, como no, con una chapucilla que he hecho (con
vuestra ayuda, como siempre)... En esta macro

Rows("1:2").Select
    Selection.Delete Shift:=xlUp
    Range("A:A,C:C,D:D,F:F,H:H").Select
    Range("H1").Activate
    Selection.Delete Shift:=xlToLeft
    With Range("C2").CurrentRegion
    .Select
    numfilas = .Rows.Count
    End With
    Selection.AutoFilter
    Selection.AutoFilter Field:=3, Criteria1:="FAC"
    Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
    Selection.AutoFilter
    Range("C2").Select

..ordeno una base de datos, poniendo como primer criterio "FAC", con
objeto de luego eliminar todas las filas que contengan ese criterio.
Luego se van encadenando otras instrucciones...El problema es que hay
veces que en ese fichero no existe ninguna celda con ese  "FAC", por
la cual todo lo que va detrás falla estrepitosamente.

¿Como podria solucionarlo?

Gracias por vuestra ayuda



...muchas gracias a ambos, funciona con el if.. de Juan. Guli, no
funciona con On Error Resume Next porque los macros no fallan, fallan
las instrucciones que van detrás pues no ordena como debe...
Gracias de nuevo...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida