Reducir el proceso de la Macro
Tengo la siguiente macro que se ejecuta muy lento, la cual hace que mi trabajo sea un poco tedioso, la cual pido su apoyo en mejorarlo.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fila As Long
Application.ScreenUpdating = False
Fila = ActiveCell.Row
If Target.Address(False, False) = "K" & Fila Then
If Target = "" Then Exit Sub
Call Concatenar
Call ConvertirFormulas
Call DuplicadosALERTA
Range("N7").End(xlDown).Offset(1, 0).Select
Application.ScreenUpdating = True
End If
End Sub
Las siguientes Call se forma asi:
Sub Concatenar()
Fila = 9
Do While Range("K" & Fila) <> ""
Range("L" & Fila) = "=CONCATENATE(TEXT(RC[-3],""0000""),""-"",RC[-1])"
Fila = Fila + 1
Loop
End Sub
Sub ConvertirFormulas()
Application.CutCopyMode = False
UltLinea = Range("K" & Rows.Count).End(xlUp).Row 'captura el número de la ultima fila con datos
UltCelda = "L" & UltLinea 'muestra el número de la ultima fila con su letra de columna
Range("L9", UltCelda).Copy: Range("L9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L9").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
End Sub
Sub DuplicadosALERTA()
Dim Fila As Long, final As Long
Dim FDuplicadas As String
final = Range("L9").End(xlDown).Row
FDuplicadas = ""
For Fila = 9 To final
If Application.WorksheetFunction.CountIf(Range("L9:L" & final), Range("L" & Fila)) > 1 Then
Range("L" & Fila).Interior.Color = RGB(200, 200, 200)
FDuplicadas = FDuplicadas & ", " & Fila
Else
Range("L" & Fila).Interior.Color = xlNone
End If
Next Fila
If FDuplicadas <> "" Then
MsgBox "Existen filas duplicadas en " & FDuplicadas
End If
End Sub
Espero me puedan ayudar en mejorar todo el proceso de la macro.