Eliminar lineas no consecutivas

02/12/2009 - 00:21 por Jesus | Informe spam
Hola al grupo,

Tengo una hoja Excel que tiene entre 300 y 500 líneas que contienen una
serie de información sobre pedidos. El funcionamiento es como sigue. Cada
pedido se va añadiendo en una nueva línea con información sobre su estado,
cada proceso corresponde a una columna ( unas 20 ) y en la primera siempre
se pone la fecha de finalización ( o sea la que está en blanco, no está
acabado y la que ya tiene la fecha está acabado ).

Cada mes hago una "limpieza" quitando todas las líneas que en la columna A
contienen una fecha ( pedidos acabados ), y las pego en otro libro para
poder hacer consultas posteriores, cosa que hago de forma manual porque no
siempre son líneas contiguas. Y después de este rollo mi pregunta es si se
puede automatizar de alguna manera, bien con fórmula o con código.

Un saludo

Jesús

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
02/12/2009 - 02:01 | Informe spam
hola, Jesus !

Tengo una hoja Excel que tiene entre 300 y 500 lineas que contienen una serie de informacion sobre pedidos.
El funcionamiento es como sigue. Cada pedido se va añadiendo en una nueva linea con informacion sobre su estado
cada proceso corresponde a una columna ( unas 20 ) y en la primera siempre se pone la fecha de finalizacion
( o sea la que esta en blanco, no esta acabado y la que ya tiene la fecha esta acabado ).
Cada mes hago una "limpieza" quitando todas las líneas que en la columna A contienen una fecha ( pedidos acabados )
y las pego en otro libro para poder hacer consultas posteriores, cosa que hago de forma manual porque no siempre son líneas contiguas.
Y despues de este rollo mi pregunta es si se puede automatizar de alguna manera, bien con fórmula o con codigo...



prueba activando la grabadora de macros mientras realizas lo que ya haces (manualmente)...
despues, analizas el codigo generado y comenta que cambios quisieras hacer a esa macro (?)

saludos,
hector.
Respuesta Responder a este mensaje
#2 Jesus
02/12/2009 - 23:08 | Informe spam
Hola Hector,

Gracias por interesarte. No se si te servirá de algo la macro grabada, pero
de todas formas la pongo bajo este comentario.
Al hacerlo yo manualmente no se puede apreciar nada, pero el criterio a
seguir es quitar del libro "pedidos" ( al ejecutar la macro ) todas las
lineas que en la columna A contengan una fecha ( que es la de finalizacion y
entrega ) pero no las filas con esa celda vacia ( salvo la que corresponde a
la fila 1 que son los titulos de cada columna ), y como decía, pegarlas en
el libro "historico" en la primera linea en blanco que corresponda. Espero
haberme explicado bien.

Un saludo,

Jesus



Sub Limpiar()
'
' Limpiar Macro
' Macro grabada el 02/12/2009 por Jesús
'
' Acceso directo: CTRL+h
'
Rows("3:3").Select
Selection.Cut
Windows("Historico.xls").Activate
Range("A6").Select
ActiveSheet.Paste
Windows("Pedidos.xls").Activate
Rows("7:8").Select
Selection.Cut
Windows("Historico.xls").Activate
Range("A7").Select
ActiveSheet.Paste
Windows("Pedidos.xls").Activate
Rows("10:10").Select
Selection.Cut
Windows("Historico.xls").Activate
Range("A9").Select
ActiveSheet.Paste
Windows("Pedidos.xls").Activate
Rows("16:16").Select
Selection.Cut
Windows("Historico.xls").Activate
Range("A10").Select
ActiveSheet.Paste
Windows("Pedidos.xls").Activate
Rows("18:18").Select
Selection.Cut
Windows("Historico.xls").Activate
Range("A11").Select
ActiveSheet.Paste
Windows("Pedidos.xls").Activate
Rows("25:25").Select
Selection.Cut
Windows("Historico.xls").Activate
Range("A12").Select
ActiveSheet.Paste
End Sub



"Héctor Miguel" escribió en el mensaje de
noticias news:%
hola, Jesus !

Tengo una hoja Excel que tiene entre 300 y 500 lineas que contienen una
serie de informacion sobre pedidos.
El funcionamiento es como sigue. Cada pedido se va añadiendo en una nueva
linea con informacion sobre su estado
cada proceso corresponde a una columna ( unas 20 ) y en la primera
siempre se pone la fecha de finalizacion
( o sea la que esta en blanco, no esta acabado y la que ya tiene la fecha
esta acabado ).
Cada mes hago una "limpieza" quitando todas las líneas que en la columna
A contienen una fecha ( pedidos acabados )
y las pego en otro libro para poder hacer consultas posteriores, cosa que
hago de forma manual porque no siempre son líneas contiguas.
Y despues de este rollo mi pregunta es si se puede automatizar de alguna
manera, bien con fórmula o con codigo...



prueba activando la grabadora de macros mientras realizas lo que ya haces
(manualmente)...
despues, analizas el codigo generado y comenta que cambios quisieras hacer
a esa macro (?)

saludos,
hector.


Respuesta Responder a este mensaje
#3 Héctor Miguel
03/12/2009 - 03:11 | Informe spam
hola, Jesus !

Al hacerlo yo manualmente no se puede apreciar nada, pero el criterio a seguir es quitar del libro "pedidos"
... todas las lineas que en la columna A contengan una fecha (que es la de finalizacion y entrega)
pero no las filas con esa celda vacia (salvo la que corresponde a la fila 1 que son los titulos de cada columna)
y ... pegarlas en el libro "historico" en la primera linea en blanco que corresponda...



prueba con una macro +/- como la siguiente (ejecutada con la hoja del libro "pedidos")...

Sub Terminados()
Application.ScreenUpdating = False
With ActiveSheet
If .AutoFilterMode Then .Cells.AutoFilter
.Range("a1").CurrentRegion.AutoFilter Field:=1, Criteria1:="<>"
With .AutoFilter.Range
With .Offset(1).Resize(.Rows.Count - 1)
.Copy Destination:= _
Workbooks("historico.xls").ActiveSheet.[a65536].End(xlUp).Offset(1)
.EntireRow.Delete
End With
End With
.Cells.AutoFilter
Debug.Print .UsedRange.Address
End With
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#4 Jesus
03/12/2009 - 17:34 | Informe spam
Hola, Hector

Muchas gracias por tu respuesta, funciona perfecto.

Un saludo

Jesus


"Héctor Miguel" escribió en el mensaje de
noticias news:
hola, Jesus !

Al hacerlo yo manualmente no se puede apreciar nada, pero el criterio a
seguir es quitar del libro "pedidos"
... todas las lineas que en la columna A contengan una fecha (que es la
de finalizacion y entrega)
pero no las filas con esa celda vacia (salvo la que corresponde a la fila
1 que son los titulos de cada columna)
y ... pegarlas en el libro "historico" en la primera linea en blanco que
corresponda...



prueba con una macro +/- como la siguiente (ejecutada con la hoja del
libro "pedidos")...

Sub Terminados()
Application.ScreenUpdating = False
With ActiveSheet
If .AutoFilterMode Then .Cells.AutoFilter
.Range("a1").CurrentRegion.AutoFilter Field:=1, Criteria1:="<>"
With .AutoFilter.Range
With .Offset(1).Resize(.Rows.Count - 1)
.Copy Destination:= _

Workbooks("historico.xls").ActiveSheet.[a65536].End(xlUp).Offset(1)
.EntireRow.Delete
End With
End With
.Cells.AutoFilter
Debug.Print .UsedRange.Address
End With
End Sub

saludos,
hector.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida