Fallo con Filtro en macro

10/02/2010 - 17:37 por Belinda | Informe spam
Hola amigos...
Cuando creia haber conseguido lo que me proponía (con ayuda de todos
vosotros, como siempre) me falla algo en este macro. Resulta que debo
eliminar las filas que en la columna C tengan la palabra FAC (SI
EXISTE) y me lo hace bien este macro, EXCEPTO CUANDO SOLO HAY UNA FILA
CON ESA CONDICION...¿Me podéis ayudar para que lo haga bien...

Gracias

Sub el_facturada()

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
If Application.WorksheetFunction.CountIf(Range("c:c"), "FAC") Then
Selection.AutoFilter Field:=3, Criteria1:="FAC"
Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
Selection.AutoFilter
End If
Range("C2").Select
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/02/2010 - 06:00 | Informe spam
hola, !

... debo eliminar las filas que en la columna C tengan la palabra FAC (SI EXISTE) y me lo hace bien este macro
EXCEPTO CUANDO SOLO HAY UNA FILA CON ESA CONDICION...Me podeis ayudar para que lo haga bien...



cuando solo existe una fila con esa condicion, es la fila 1 ? (o sea...)

=> "que" es lo que queda en la fila 1 ? (titulos ?... o datos ?)
luego de eliminar inicialmente las filas 1 y 2, y comenzar a "trabajar" a partir de [C2]...

saludos,
hector.

__ el codigo expuesto __
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
If Application.WorksheetFunction.CountIf(Range("c:c"), "FAC") Then
Selection.AutoFilter Field:=3, Criteria1:="FAC"
Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
Selection.AutoFilter
End If
Range("C2").Select
End Sub
Respuesta Responder a este mensaje
#2 Belinda
11/02/2010 - 10:35 | Informe spam
On 11 feb, 06:00, "Héctor Miguel"
wrote:
hola, !

> ... debo eliminar las filas que en la columna C tengan la palabra FAC (SI EXISTE) y me lo hace bien este macro
> EXCEPTO CUANDO SOLO HAY UNA FILA CON ESA CONDICION...Me podeis ayudar para que lo haga bien...

cuando solo existe una fila con esa condicion, es la fila 1 ? (o sea...)

=> "que" es lo que queda en la fila 1 ? (titulos ?... o datos ?)
     luego de eliminar inicialmente las filas 1 y 2, y comenzar a "trabajar" a partir de [C2]...

saludos,
hector.

__ el codigo expuesto __
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
    If Application.WorksheetFunction.CountIf(Range("c:c"), "FAC") Then
    Selection.AutoFilter Field:=3, Criteria1:="FAC"
    Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
    Selection.AutoFilter
End If
    Range("C2").Select
End Sub



Hola Hector...

En la fila 1 están los títulos de las columnas, en la fila 2 empiezan
los datos que filtro. En esa fila (y en la columna C (C1, C2, C3. etc)
hay varios tipos de datos, que pueden ser, FAC, CRE, PEN, etc. La
macro pretende filtrar los FAC para eliminarlo toda las filas que
contengan ese dato. Lo hace bien, excepto cuando hay una sola fila con
el dato FAC, en ese caso no elimina esta fila...

Saludos
Respuesta Responder a este mensaje
#3 Belinda
11/02/2010 - 19:04 | Informe spam
On 11 feb, 10:35, Belinda wrote:
On 11 feb, 06:00, "Héctor Miguel"
wrote:





> hola, !

> > ... debo eliminar las filas que en la columna C tengan la palabra FAC (SI EXISTE) y me lo hace bien este macro
> > EXCEPTO CUANDO SOLO HAY UNA FILA CON ESA CONDICION...Me podeis ayudar para que lo haga bien...

> cuando solo existe una fila con esa condicion, es la fila 1 ? (o sea...)

> => "que" es lo que queda en la fila 1 ? (titulos ?... o datos ?)
>      luego de eliminar inicialmente las filas 1 y 2, y comenzar a "trabajar" a partir de [C2]...

> saludos,
> hector.

> __ el codigo expuesto __
> 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
>     If Application.WorksheetFunction.CountIf(Range("c:c"), "FAC") Then
>     Selection.AutoFilter Field:=3, Criteria1:="FAC"
>     Range("A2:" & "A" & numfilas).EntireRow.Delete Shift:=xlUp
>     Selection.AutoFilter
> End If
>     Range("C2").Select
> End Sub

Hola Hector...

En la fila 1 están los títulos de las columnas, en la fila 2 empiezan
los datos que filtro. En esa fila (y en la columna C (C1, C2, C3. etc)
hay varios tipos de datos, que pueden ser, FAC, CRE, PEN, etc. La
macro pretende filtrar los FAC para eliminarlo toda las filas que
contengan ese dato. Lo hace bien, excepto cuando hay una sola fila con
el dato FAC, en ese caso no elimina esta fila...

Saludos- Ocultar texto de la cita -

- Mostrar texto de la cita -



...le llevo dando vueltas y no doy con la tecla. El problema es que
genero una hoja con filtros y liuego intento ordenarla de esta
forma...

Sub Ordenar()
[a2].Sort Key1:=[c2], Key2:=[d2], Key3:=[a2], Order1:=xlAscending,
Header:=xlYes
End Sub

..pero no respeta los encabezados y me los pone enmedio...no se si se
verá aqui bien

469046 5995303 CRE ene-10 0 28,89 1,916 Importe
468452 PED ene-10 117,8 132,8 5,719 45,752
469709 5984302 PRE ene-10 8,465 64,28 6,8 54,4
Total ene-10 126,265 197,08 12,519 100,152
Medici TLC/Actuaci Estado Fecha Trabajos Puntos Obra Civil P. Instal
Milip #¡VALOR!
Respuesta Responder a este mensaje
#4 Héctor Miguel
12/02/2010 - 03:34 | Informe spam
hola, !

bueno... la tabla de datos NO "paso" como (supongo) esperabas que se viera :-((
en via de mientras, confirma/corrige si...
- la tabla a la que aplicas ordenaciones y autofiltros lleva tambien sub-totales ?
- los datos que contiene son datos constantes ?... o formulas ?

(hasta donde se) subtotales y autofiltros no se llevan bien, y si le agregas formulas... (???)

saludos,
hector.

__ OP __
En la fila 1 està¡n los tà­tulos de las columnas, en la fila 2 empiezan los datos que filtro.
En esa fila (y en la columna C (C1, C2, C3. etc) hay varios tipos de datos, que pueden ser, FAC, CRE, PEN, etc.
La macro pretende filtrar los FAC para eliminarlo toda las filas que contengan ese dato.
Lo hace bien, excepto cuando hay una sola fila con el dato FAC, en ese caso no elimina esta fila...



...le llevo dando vueltas y no doy con la tecla. El problema es que genero una hoja con filtros y liuego intento ordenarla de esta forma...

Sub Ordenar()
[a2].Sort Key1:=[c2], Key2:=[d2], Key3:=[a2], Order1:=xlAscending, Header:=xlYes
End Sub

...pero no respeta los encabezados y me los pone enmedio...no se si se verà¡ aqui bien



469046 5995303 CRE ene-10 0 28,89 1,916 Importe
468452 PED ene-10 117,8 132,8 5,719 45,752
469709 5984302 PRE ene-10 8,465 64,28 6,8 54,4
Total ene-10 126,265 197,08 12,519 100,152
Medici TLC/Actuaci Estado Fecha Trabajos Puntos Obra Civil P. Instal
Milip #¡VALOR!
Respuesta Responder a este mensaje
#5 Belinda
12/02/2010 - 09:46 | Informe spam
On 12 feb, 03:34, "Héctor Miguel"
wrote:
hola, !

bueno... la tabla de datos NO "paso" como (supongo) esperabas que se viera :-((
en via de mientras, confirma/corrige si...
- la tabla a la que aplicas ordenaciones y autofiltros lleva tambien sub-totales ?
- los datos que contiene son datos constantes ?... o formulas ?

(hasta donde se) subtotales y autofiltros no se llevan bien, y si le agregas formulas... (???)

saludos,
hector.

__ OP __

>> En la fila 1 están los títulos de las columnas, en la fila 2 empiezan los datos que filtro.
>> En esa fila (y en la columna C (C1, C2, C3. etc) hay varios tipos de datos, que pueden ser, FAC, CRE, PEN, etc.
>> La macro pretende filtrar los FAC para eliminarlo toda las filas que contengan ese dato.
>> Lo hace bien, excepto cuando hay una sola fila con el dato FAC, en ese caso no elimina esta fila...
> ...le llevo dando vueltas y no doy con la tecla. El problema es que genero una hoja con filtros y liuego intento ordenarla de esta forma...

> Sub Ordenar()
>   [a2].Sort Key1:=[c2], Key2:=[d2], Key3:=[a2], Order1:=xlAscending, Header:=xlYes
> End Sub

> ...pero no respeta los encabezados y me los pone enmedio...no se si se verá aqui bien

469046 5995303 CRE ene-10 0 28,89 1,916 Importe
468452 PED ene-10 117,8 132,8 5,719 45,752
469709 5984302 PRE ene-10 8,465 64,28 6,8 54,4
Total ene-10 126,265 197,08 12,519 100,152
Medici TLC/Actuaci Estado Fecha Trabajos Puntos Obra Civil P. Instal
Milip #¡VALOR!



...si, llevan todo eso, pero cuando falla es al ordenarla cuando está
autofiltrada.
Los autofiltros los aplico precisamente para eliminar las FAC.. Me
parece que ya me funciona. He ido dano palos de ciego y al gfinal he
puesto esto RemoveSubtotales antes de ordenar y ese debía ser el
problema. El caso es que, para empezar el informe, importo un fichero
de texto y ya me lo filtra sin yo decirle nadaPerdona por mi
ignorancia, pero todo lo hago con la grabadora de macros, por eso me
salen estos churros...
Gracias como siempre por tú interés.
Mientras exista un grupo como este y gente como tú, lo siento por Open
Office y demás pamplinas
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida