Eliminación de las líneas resultantes de un filtro
Resuelto
Hola a todos,
Debido a filtros, me gustaría eliminar las filas resultantes de mis filtros (excepto la primera: Título de mis columnas).
La primera celda varía en función del resultado (ej: Rows("3:3").Select o Rows("7:7").Select).
A mano, obtengo:
Le agradezco de antemano,
Debido a filtros, me gustaría eliminar las filas resultantes de mis filtros (excepto la primera: Título de mis columnas).
La primera celda varía en función del resultado (ej: Rows("3:3").Select o Rows("7:7").Select).
A mano, obtengo:
'********************* ' DelNonINC Macro '********************* Sub DelNonINC() ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=8, Criteria1:= _ "<>INC*", Operator:=xlAnd Rows("3:3").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=8 End Sub '********************* ' DelMax0 Macro '********************* Sub DelMax0() ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11, Criteria1:= _ "0" Rows("7:7").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11 End Sub Le agradezco de antemano,
4 respuestas
-
Hola,
Entre otros ejemplos
al final de la página
https://www.developpez.net/forums/d1713575/logiciels/microsoft-office/excel/contribuez/filtre-suppression-lignes-vba/ -
Hola,
Gracias por la referencia, pero admito que mi nivel no me permite entender la sutileza en este ejercicio del enlace transmitido.
No he comprendido la definición del rango.
Si pudieras ayudarme a entender y adaptar la macro?
Sub DelNonINC()
derlig = Cells(Rows.Count, 1).End(xlUp)
Set plage = Range("A3", Cells(derlig, 1))
With plage
.AutoFilter Field:=8, Criteria1:="<>INC*", Operator:=xlAnd
Rows(plage.Row + 1 & ":" & plage.Row + plage.Rows.Count - 1).Delete
.AutoFilter Field:=8
.AutoFilter
End With
End Sub
Te agradezco de antemano, -
Hola,
Solo de paso, la macro seguramente le devolverá un error en la líneaSet Plage = ...
, porque la línea:derlig = Cells(Rows.Count, 1).End(xlUp)
le devuelve el valor de la última fila en lugar del número de fila.
Modifique la líneaderlig = Cells(Rows.Count, 1).End(xlUp).Row
--
Saludos.
El Pingüino -
Gracias Le Pingou.
Resuelto con este código para aquellos que lo quieran:
'********************* ' DelNonINC Macro '********************* Sub DelNonINC() ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=8, Criteria1:= _ "<>INC*", Operator:=xlAnd Rows("3:3").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=8 End Sub '********************* ' DelMax0 Macro '********************* Sub DelMax0() ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11, Criteria1:= _ "0" Rows("7:7").Select Range("F7").Activate Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11 End Sub