Como mejorar Macro que actualiza Datos en 2 hojas del mismo Libro

Mediante la grabadora de Macro pude desarrollar la Macro Agregar_HojaAuxiliar(), pero veo a mi criterio por lo visto en dicho foro otras Macros que no son tan extensas por que sintetizan algunas líneas, habrá alguna posibilidad que en esta se pueda realizar algo.
El objetivo es que en la hoja "DATOS" si se realiza alguna modificación la misma se debe reflejar en las otras hojas ("BASE", "AUXILIAR") respetando los campos asignados en cada columna. (La hoja "AUXILIAR" solamente tiene 3 columnas "COD, APELLLIDO, NOMBRE"
Les dejo la Macro
Sub Agregar_HojaAuxiliar()
'
' Agregar_HojaAuxilio Macro
' Se actualiza la Hoja Auxilio
'
Worksheets("Base").Visible = True
Worksheets("Auxiliar").Visible = True
Application.ScreenUpdating = False
Sheets("DATOS").Select
Range("A8").Select
ActiveWorkbook.Worksheets("DATOS").ListObjects("TDatos").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("DATOS").ListObjects("TDatos").Sort.SortFields.Add _
Key:=Range("TDatos[[#All],[P]]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("DATOS").ListObjects("TDatos").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A8").Select
Sheets("BASE").Select
Range("F11").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
Range("F11").Select
Sheets("DATOS").Select
Range("A8").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("BASE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "1"
Sheets("Auxiliar").Select
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
Range("A2").Select
Sheets("DATOS").Select
Range("A8").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Auxiliar").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B2").Select
Sheets("DATOS").Select
Range("C8:D8").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Auxiliar").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
Sheets("DATOS").Select
Range("A8").Select
Application.CutCopyMode = False
Worksheets("Base").Visible = False
Worksheets("Auxiliar").Visible = False
End Sub

1 respuesta

Respuesta
1

Revisa los consejos para sintetizar código y mejorar el rendimiento de las macros:

https://youtu.be/HfFCtMl189U 

Sal u dos

Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas