Excel - Eliminar filas segun contenido

   
Vista:

Eliminar filas segun contenido

Publicado por mariela (5 intervenciones) el 04/01/2016 18:39:47
HOLA!!
es mi primera pregunta en este foro, espero me puedan ayudar.

Me gustaría realizar una macro para mi trabajo. La macro consiste en eliminar todas las FILAS desde cierto horario hacia atrás y cierto horario hacia adelante.

Ej: Necesito eliminar todas las FILAS que tengan un horario menor a las 7.00 AM del día de ayer y todas las FILAS que tengan un horario mayor a las 7.00 AM pero del día de hoy.

Dejare una imagen adjunta para que se entienda la idea.

Eliminar-filas

Ademas adjunto planilla de excel.

Tengo un código que hace algo parecido pero con las celdas que contienen la frase "NCD1" que es un tipo de almacén que debo borrar todos los días.

Sub Borrarncd1()
With Application.ThisWorkbook.Worksheets("Notificaciones")

Range("D6").Select

Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value = "NCD1" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop

End With

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo

Eliminar filas segun contenido

Publicado por Andres Leonardo (485 intervenciones) el 04/01/2016 23:55:13
Pregunto .. esto es de lunes a domingo?
Debo controlar fines de semana y feriados???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por mariela (5 intervenciones) el 05/01/2016 13:56:48
Si, es de lunes a domingos y feriados. Puedes ayudarme?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por agustin (149 intervenciones) el 05/01/2016 15:04:21
A ver, excel para trabajar con las fechas lo que hace es convertir el formato de fecha a un valor numérico con lo que debes leer de igual manera cada celda indicando que el contenido es una fecha para convertirlo y luego hacer lo mismo con las fechas del rango válido y todo lo que este fuera de ese rango lo eliminas.
O sea que haces algo como:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub BorrarPorFechas()
 
Dim fecha as Date
Dim mayor as Date
Dim menor as Date
 
With Application.ThisWorkbook.Worksheets("Notificaciones")
 
menor = DateValue ("29/12/2015")
mayor = DateValue ("01/01/2016")
Range("D6").Select
 
Do While Not IsEmpty(ActiveCell)
fecha = DateValue (ActiveCell.Value)
If (fecha <= menor) Or (fecha >= mayor) Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
 
End With
 
End Sub
Eso esta basado en tu código y en teoría hace lo que quieres. Lo que puedes hacer por ejemplo es que muestre un inputbox y te pida las fechas del rango y las asignas a menor y mayor o ya como tu desees. Algo muy importante es controlar si hubo algún error al convertir las fechas ya que eso produciría una excepción. Te lo he hecho desde el movil pero si no te sale intento ayudarte cuando este por mi casa con el pc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por mariela (5 intervenciones) el 05/01/2016 15:14:26
fecha = DateValue(ActiveCell.Value)

me aparece error en esa fila
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Eliminar filas segun contenido

Publicado por Andres Leonardo (485 intervenciones) el 05/01/2016 15:08:54
Pclaro puedo

solo una cosa mas en la columna N no es una fecha .. es un string que demuestra una fecha

Ese siempre sera asi po rque si no no puedes convertirlo a fecha si no que habria que cambiarlo a string y comparar....

en todo caso quedo atento a tus comentarios ...
si no la ayuda del otro colega forero que contesto

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por agustin (149 intervenciones) el 05/01/2016 15:14:52
Para que puedas crearte tu manejador de excepciones: http://blogs.itpro.es/exceleinfo/2013/11/05/implementar-controlador-de-errores-en-excel-vba/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por mariela (5 intervenciones) el 05/01/2016 15:22:34
Sii , gracias. Me sirve lo del amigo que comento arriba , me elimina por fechas, aunque no por hora ... la idea es que me tome desde las 07.00 de un día hasta las 07.00 del otro día, con un input box como tu dices. Esto debe ser así, por que en la planta que trabajo, el día normal cuenta desde esas horas, no como nosotros que lo contamos desde las 00.00 hrs hata las 24.00 hrs.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por mariela (5 intervenciones) el 07/01/2016 18:28:02
Aún me puedes ayudar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eliminar filas segun contenido

Publicado por agustin (149 intervenciones) el 07/01/2016 18:35:17
Solo necesitas añadir algún que otro condicional más y hacer uso de las funcion hour para saber si la hora de la fecha esta dentro del rango.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar