Saltar al contenido

Mejorar tiempo de ejecucion macros, Eliminar Filas


Recommended Posts

publicado

Tengo este codigo el cual me recorre las filas evaluando la columna "E", en este caso evalua si en la columna tiene estos datos "Pajaritos No. 1" o "Pajaritos No. 2", y si es asi, que elimine la fila completa, pero al ejecturala se alenta mucho el proceos tarda como 1 min o aveces mas.

 

Como puedo mejorar esto.

 

Saludos

 

 

Sub borrarFilas()


    Dim ultimaFila As Long
    Dim fila As Long
      ultimaFila = Hoja1.Cells(Rows.Count, "E").End(xlUp).Row
    
    

    
    
    For fila = 5 To ultimaFila
    
        If Hoja1.Cells(fila, 5) = "Pajaritos No. 1" Or Hoja1.Cells(fila, 5) = "Pajaritos No. 2" Then
            Hoja1.Rows(fila).EntireRow.Delete
            ultimaFila = ultimaFila - 1
            fila = fila - 1
        End If
        If ultimaFila = fila Then
            MsgBox "Proceso terminado exitosamente!"
          
            Exit Sub
        End If
    Next fila
    
    
    
    
    
End Sub

publicado

Buenas tardes, solucion usando AutoFiltro

With ActiveSheet
    .Range("E5").AutoFilter Field:=1, Criteria1:= _
        "=Pajaritos No. 1", Operator:=xlOr, Criteria2:="=Pajaritos No. 2"
    .AutoFilter.Range.Offset(0, 0).EntireRow.Delete
     MsgBox "Proceso terminado exitosamente!"
End With

Saludos

publicado

Buenas, si es tabla , donde Tabla2 = Nombre de tu tabla

 ActiveSheet.ListObjects("Tabla2").Range.AutoFilter Field:=1, Criteria1:= _
        "=Pajaritos No. 1", Operator:=xlOr, Criteria2:="=Pajaritos No. 2"
    Range("Tabla2[Nombres]").Select
    Selection.EntireRow.Delete
    ActiveSheet.ListObjects("Tabla2").Range.AutoFilter Field:=1
    Range("E5").Select

saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.