VBA (Excel) - Eliminar una fila
Resuelto
XRay
-
dlescot Mensajes publicados 1 Estado Miembro -
dlescot Mensajes publicados 1 Estado Miembro -
¡Hola!
Me gustaría saber cómo buscar un valor en una columna y eliminar la fila correspondiente...
Esto es lo que hice:
En realidad, no logro seleccionar la fila entera para eliminarla...
¿Alguien tiene alguna solución?...
¡Gracias de antemano! ;o)
Me gustaría saber cómo buscar un valor en una columna y eliminar la fila correspondiente...
Esto es lo que hice:
Range("A1").Select Do While ActiveCell <> "toto" ActiveCell.Offset(1, 0).Select Loop Selection.Delete Shift:=xlUp En realidad, no logro seleccionar la fila entera para eliminarla...
¿Alguien tiene alguna solución?...
¡Gracias de antemano! ;o)
14 respuestas
-
Y simplemente un
Selection.EntireRow.Delete
¿No sería más simple?
O un poco más complicado, pero más simple que lo que se ha propuesto:Rows(Selection.Row).Delete shift:=xlUp
Pero al menos veo dos problemas en tu código:- Si "toto" aparece dos veces, solo se eliminará una
- Si "toto" no aparece nunca, en la línea 65536 tendrás un error por el offset.
Sin saber cuántas filas tienes, podrías poner como código:For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1 If Cells(i, 1).Value = "toto" Then Cells(i, 1).EntireRow.Delete Next
sabiendo que puedes reemplazar Cells(1, 1).CurrentRegion.Rows.Count por el número de filas correspondiente.-
-
-
-
Sub supprimer_lignes() ThisWorkbook.Worksheets("Feuil3").Activate j = 1 For i = 1 To Range("C65536").End(xlUp).Row 'calcule la dernière cellule remplie dans la colonne 3 colonne C If Cells(j, 3).Value = "pas de défaillance" Then Cells(j, 3).EntireRow.Delete Else j = j + 1 End If Next i MsgBox "Macro terminée" End Sub