VBA (Excel) - Eliminar una fila

Resuelto
XRay -  
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:

 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

  1. Mangda
     
    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.
    73
    1. fyj
       
      usted es muy fuerte jhhhhhhhhhhhhhhhhhhhhhh
      0
    2. Nhan
       
      Gracias Mangda
      0
    3. Annalord
       
      Annalord
      Tengo un poco el mismo problema
      Copié tutoriales de internet con Open Office pero no logro eliminar las líneas sin quitar el texto
      ¿Alguien tendrá algún truco?
      Gracias de antemano
      0
    4. YOUHA
       
      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
      0