Como reducir código de la macro

Me pregunto si hay de alguna manera de reducir el reducir el código de una macro, que y como se debe hacer, de igual manera quiero reducir el código con variables, al menos eso pienso, como reducir al máximo sin perder por su puesto efectividad, en este caso tengo este código

Sub Add_dbSaveInvoiceSale()
'
' Add_dbSaveInvoiceSale Macro
'
'
Application.ScreenUpdating = False
    Sheets("dbStock").Select
    Range("E3").Select
    ActiveCell.FormulaR1C1 = _
        "=SUMIFS('dbListSales'!C[4],'dbListSales'!C[-1],dbStock!R1C2,'dbListSales'!C[2],[@Sku])"
    Range("E3").Select
    Selection.AutoFill Destination:=Range("tblStock[Exit Sales]"), Type:= _
        xlFillDefault
    Range("tblStock[Exit Sales]").Select
    ActiveWindow.SmallScroll Down:=-108
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("F3").Select
    ActiveCell.FormulaR1C1 = _
        "=[@[Initial Stock]]+[@[Enters Purchases]]-[@[Exit Sales]]"
    Range("F3").Select
    Selection.AutoFill Destination:=Range("tblStock[Stock]"), Type:= _
        xlFillDefault
    Range("tblStock[Stock]").Select
    ActiveWindow.SmallScroll Down:=-216
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("F3").Select
    Application.CutCopyMode = False
    Sheets("dbSales").Select
    Range("D7").Select
    Selection.ClearContents
    Range("F5").Select
    ActiveCell.FormulaR1C1 = ""
    Range("C12").Select
    Selection.ClearContents
    Range("D7").Select
    Application.ScreenUpdating = True
    ActiveWorkbook.Save
End Sub

1 Respuesta

Respuesta
1

Prueba con esta:

Sub Add_dbSaveInvoiceSale_2()
'
' Add_dbSaveInvoiceSale Macro
'
    Application.ScreenUpdating = False
    Sheets("dbStock").Select
    Range("E3").FormulaR1C1 = "=SUMIFS('dbListSales'!C[4],'dbListSales'!C[-1],dbStock!R1C2,'dbListSales'!C[2],[Sku])"
    Range("E3").AutoFill Destination:=Range("tblStock[Exit Sales]"), Type:=xlFillDefault
    Range("tblStock[Exit Sales]").Copy
    Range("tblStock[Exit Sales]").PasteSpecial Paste:=xlPasteValues
    Range("F3").FormulaR1C1 = "=[[Initial Stock]]+[[Enters Purchases]]-[[Exit Sales]]"
    Range("F3").AutoFill Destination:=Range("tblStock[Stock]"), Type:=xlFillDefault
    Range("tblStock[Stock]").Copy
    Range("tblStock[Stock]").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Sheets("dbSales").Select
    Range("D7").ClearContents
    Range("F5").ClearContents
    Range("C12").ClearContents
    Application.ScreenUpdating = True
    ActiveWorkbook.Save
End Sub

Por la versión que tengo, me funciona sin el @ en estas líneas

"=SUMIFS('dbListSales'!C[4],'dbListSales'!C[-1],dbStock!R1C2,'dbListSales'!C[2],[@Sku])"

"=[@[Initial Stock]]+[@[Enters Purchases]]-[@[Exit Sales]]"

Si no te funciona, entonces prueba con esta:

Sub Add_dbSaveInvoiceSale_2()
'
' Add_dbSaveInvoiceSale Macro
'
    Application.ScreenUpdating = False
    Sheets("dbStock").Select
    Range("E3").FormulaR1C1 = _
        "=SUMIFS('dbListSales'!C[4],'dbListSales'!C[-1],dbStock!R1C2,'dbListSales'!C[2],[@Sku])"
    Range("E3").AutoFill Destination:=Range("tblStock[Exit Sales]"), Type:=xlFillDefault
    Range("tblStock[Exit Sales]").Copy
    Range("tblStock[Exit Sales]").PasteSpecial Paste:=xlPasteValues
    Range("F3").FormulaR1C1 = _
        "=[@[Initial Stock]]+[@[Enters Purchases]]-[@[Exit Sales]]"
    Range("F3").AutoFill Destination:=Range("tblStock[Stock]"), Type:=xlFillDefault
    Range("tblStock[Stock]").Copy
    Range("tblStock[Stock]").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Sheets("dbSales").Select
    Range("D7").ClearContents
    Range("F5").ClearContents
    Range("C12").ClearContents
    Application.ScreenUpdating = True
    ActiveWorkbook.Save
End Sub

Avísame cualquier duda.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas