Jump to content

Delete Rows


Recommended Posts

Hola buen día, alguien me puede ayudar con una macro mucho mas eficiente que esta, he realizado esta q subo, pero no estoy satisfecho, habrá otra manera de mejorar el código o que sea mucho mas eficiente, la idea es eliminar las filas que tengan completos los "00:00" de la columna H a la R, menos los que contengan números.

muchas gracias de antemano al que me ayude, abrazosNomina.xlsm

 

Link to comment
Share on other sites

Prueba con la macro así:

Sub Delete()

    Dim starTime As Double
    Dim x As Integer
    Dim ultRow As Integer
    Dim ultCol As Integer
    
    Application.ScreenUpdating = False
    With dataPrenomina
      ultRow = .Cells(Rows.Count, 2).End(xlUp).Row
      ultCol = .Cells(1, Columns.Count).End(xlToLeft).Column
      starTime = Timer
      For x = ultRow To 2 Step -1
        If Application.Sum(.Range("H" & x).Resize(1, ultCol - 7)) = 0 Then
           .Rows(x).Delete
        End If
      Next x
      MsgBox "Timer is: " & Format(Timer - starTime, "##,##0.00")
   End With
    
End Sub

 

Link to comment
Share on other sites

  • Crear macros Excel

  • Posts

    • =ELEGIR(F20,7500,5000,5000,3500,3500,3500,2500,2500,2500,2500,2500,1500) Espero te sirva  
    • ya te di acceso,me parecio raro que no pudieras entrar pero ya deberias entrar,hace mucho que me suscribi a esta pagina y simpre pude subir mi archivo de ejemplo,pero ahora me doy cuenta que si no pago una tarifa de membresia no podre subir ejemplos para que puedan prestar su ayuda 
    • ya te di acceso,me parecio raro que no pudieras entrar pero ya deberias entrar
    • Coloca esta subrutina y el resultado lo pondrá en la Hoja Principal "E15" hacia abajo... Saludos   Sub concatena()     Set DATOS = Worksheets("Verificar Matriz")     Sheets("principal").Select     Range("E15:E5000").ClearContents     rt = 5     RD = 6     RS = 15     Do While DATOS.Cells(RD, 4) <> ""         pasa = 0         For C = 5 To 22             If DATOS.Cells(RD, C) <> "0" Then                 pasa = pasa + 1             End If         Next         If pasa > 0 Then             CADENA = ""             For C = 5 To 22                 If DATOS.Cells(RD, C) > 0 Then                     If Len(CADENA) > 0 Then                         CADENA = CADENA & ","                     End If                     CADENA = CADENA & C - 4 & "-" & DATOS.Cells(rt, C) & "=" & Chr(34) & DATOS.Cells(RD, C) & Chr(34)                 End If             Next             Cells(RS, "E") = CADENA             RS = RS + 1         End If         RD = RD + 1     Loop End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy