Hola! No te preocupes, si mandas un libro con el ejemplo tu explicación quedaría más clara. Te escribo lo que entiendo, ¿quieres actualizar los importes en la hoja “BBDD” basándote en los datos de la hoja “USUARIO” cuando los números de factura coincidan? Además, ¿quieres limpiar las filas en la hoja “USUARIO” después de la actualización? Como las deducciones no son buenas consejeras lo único que aportare a tu tema sera modificar tu código en base a eso.
Sub CORREGIRIMPORTES2()
Dim i As Long, j As Long
Dim lastRowBBDD As Long, lastRowUSUARIO As Long
' Encuentra la última fila con datos en ambas hojas
lastRowBBDD = Sheets("BBDD").Cells(Sheets("BBDD").Rows.Count, "J").End(xlUp).Row
lastRowUSUARIO = Sheets("USUARIO").Cells(Sheets("USUARIO").Rows.Count, "J").End(xlUp).Row
j = 3 ' DONDE EMPIEZA A ESCRIBIR
For i = 3 To lastRowBBDD ' DONDE EMPIEZA A BUSCAR
If Sheets("BBDD").Range("J" & i).Value = Sheets("USUARIO").Range("J" & j).Value Then
Sheets("BBDD").Range("K" & i).Value = Sheets("USUARIO").Range("K" & j).Value
j = j + 1
End If
Next i
' Limpia las filas en la hoja USUARIO después de la actualización
For j = 3 To lastRowUSUARIO
If Sheets("USUARIO").Range("A" & j).Value <> "" Then
Sheets("USUARIO").Range("A" & j & ":Q" & j).ClearContents
End If
Next j
End Sub
Que hice:
1 Encontrar la última fila con datos, eso asegura que el código no procese filas vacías innecesariamente.
2 Uso de Sheets para especificar la hoja, así haces que el código sea más claro.
3 Limpiar la filas, utiliza ClearContents para limpiar todas las celdas de la fila de una sola vez.
Si no es así, trata de mejorar la consulta así podrías recibir mejor ayuda.