Te anexo la macro con las siguientes actualizaciones:
1. Primero, debes seleccionar una celda con la fila a partir de la cual quieres que se inicie el proceso.
2. Cuando inicia la macro te va a preguntar si el número de fila para iniciar es correcto, si presionas que "Sí", la macro inicia; si presionas "No", la macro se detiene.
3. Agregué un contador que te aparecerá en la parte inferior izquierda de la ventana de excel para indicarte en cuál número de fila está procesando del total de filas a procesar.
Sub copiar()
'Por.DAM
Set h1 = Sheets("Diario")
Set hh = Sheets("HOJAS")
u = h1.Range("A" & Rows.Count).End(xlUp).Row
f = ActiveCell.Row
res = MsgBox("Es correcto empezar desde la fila: " & f, vbYesNo, "ADVERTENCIA")
If res = vbNo Then Exit Sub
'
Application.ScreenUpdating = False
Application.StatusBar = False
For i = f To u
Application.StatusBar = "Procesando registro: " & i & " de: " & u
Set b = hh.Columns("A").Find(h1.Cells(i, "K"))
If Not b Is Nothing Then
hoja = hh.Cells(b.Row, "B")
Set h2 = Sheets(hoja)
For j = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
If h1.Cells(i, "A") = h2.Cells(j, "A") And _
h1.Cells(i, "B") = h2.Cells(j, "D") And _
h1.Cells(i, "I") = h2.Cells(j, "B") And _
h1.Cells(i, "K") = h2.Cells(j, "C") Then
h1.Range("B" & i & ":H" & i).Copy h2.Cells(j, "H")
h1.Cells(i, "L") = h2.Cells(j, "T")
h1.Cells(i, "M") = h2.Cells(j, "S")
End If
Next
End If
Next
Application.StatusBar = False
Application.ScreenUpdating = True
MsgBox "Copia termianda", vbInformation, "COPIAR"
End Sub
Otras recomendaciones para que tu archivo no sea tan grande y tarde tanto tiempo en abrir.
- Elimina las hojas que no ocupes.
- Elimina las filas donde tienes fórmulas, pero las fórmulas no reportan resultados ya que las filas están vacías, entonces vuelve a poner las fórmulas solamente cuando tengas los datos en la fila.
- Si una hoja tiene filas hacia abajo que no ocupas, copia solamente los datos a una nueva hoja. Elimina la hoja original, renombra la nueva hoja con el nombre de la original. Nota: Revisa si la hoja original no tiene fórmulas que apunten a otra hoja, en tal caso tendrías que rehacer las fórmulas.