Excel - Borrar fila según 2 contenidos

 
Vista:

Borrar fila según 2 contenidos

Publicado por Yayimileth (1 intervención) el 23/07/2018 21:11:25
Hola buenas tardes
Estoy tratando de borrar filas en excel que contengan Cerrada y Cancelada pero al momento de efectuar esta macro me borra algunas cerradas no me borra todas tengo que darle varias veces a la macro para que me la vaya borrando.
Como puedo hacer para borrar todas las cerradas al momento de ejecutar una sola vez la macro.
este es el codigo que si me funciona pero solo borra unas cuantas Cerradas no todas de una vez.

1
2
3
4
5
6
7
8
9
10
Sub so()
For i = 2 To 4000
If Range("C" & i).Value = "Cerrada" Then
    Rows(i & ":" & i).Select
 
    Selection.Delete
End If
Next i
 
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
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Borrar fila según 2 contenidos

Publicado por Andres Leonardo (1583 intervenciones) el 23/07/2018 21:46:07
LO que pasa es que el bucle te falla cuando esta repetida o contiguas las celdas con cerrada

Imaginemos que esto es asi

1 - cerrada
2- cerrada
3 - abierta
4-cerrada

la primera vez i = 1 al borrar el queda situado en la celda 2 que paso a ser nuevamente 1 por que eliminaste la uno adiciaonla

1 - cerrada - ya eliminada
2- cerrada - vale 1 ahora
3 - abierta - vale 2 ahora
4-cerrada - vale 3 ahora

la segunda vez i = 2 al pero si te das cuenta ya la que vale 2 es la tercera que dice abierta por lo que no hara nada y Aumentara

1 - cerrada - ya eliminada
2- cerrada - vale 1 ahora
3 - abierta - vale 2 ahora
4-cerrada - vale 3 ahora

la tercera vez i = 3 al pero si te das cuenta ya la que vale 3 era tu antigua cuarta que procedera a borrarla y situarse y ya no borrara la siguiente

1 - cerrada - ya eliminada
2- cerrada - vale 1 ahora
3 - abierta - vale 2 ahora
4-cerrada - vale 3 ahora

Cuando las vuelvers a ejecutar las que estaban juntas ya no lo estan por ende las borra espero me hayas entendido.....

Ahora para solucionar esta novedad inteta esto

1
2
3
4
5
6
7
8
Sub so()
For i = 2 To 4000
  If Range("C" & i).Value = "Cerrada" Then
    Rows(i & ":" & i).Select
    Selection.Delete
     i = i-1   ' Aqui le redujo el 1 a "I" que le aumenta cuando borro en la macro el registro...... 
End If
Next i
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 Milton
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Borrar fila según 2 contenidos

Publicado por Milton (9 intervenciones) el 04/08/2018 18:55:11
Saludos, Has probbado Selection.Delete fuera del For, la idea es que seleccione las filas y después le das un solo el borrar filas.
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