¿Cómo convertir una macro grabada en una macro automatizada en VBA?

¿Cómo convertir una macro grabada en una macro automatizada en VBA?

He grabado la siguiente macro para ordenar datos en el rango "B3:U47" según los valores de la columna "C3:C47".

Sub Sorting_Finance()
    Range("B3:U47").Select
    ActiveWorkbook.Worksheets("Finance").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Finance").Sort.SortFields.Add2 Key:= _
        Range("C3:C47"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Finance").Sort
        .SetRange Range("B3:U47")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Cada vez que quiero ordenar los datos presiono Control+n. ¿Hay alguna manera de hacer esto automáticamente cuando ingreso un nuevo valor en la columna C? Estoy intentando cambiarlo a través de VBA, pero hasta ahora no he tenido éxito.

Respuesta1

Patrón:

Private Sub Worksheet_Change(ByVal Target As Range)
if not (intersect(target, Range("C3:C47")) is nothing) then 
    call Sorting_Finance
end if
end sub

Y no olvide eliminar/comentar Range("B3:U47").Selectla línea.

información relacionada