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 !

Mostrar la cita
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.
#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:%
Mostrar la cita
#3 Héctor Miguel
03/12/2009 - 03:11 | Informe spam
hola, Jesus !

Mostrar la cita
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.
#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:
Mostrar la cita
Ads by Google
Search Busqueda sugerida