Consideraciones a la hora de realizar una Macro Optima

Algunas consideraciones importantes que tenemos que tener al editar o crear una macro en excel en el lenguajes VBA son los parametros que colocaremos al principio y al final, estos indicarán de que forma se procesarán los códigos y pueden ahorrarnos: tiempo, errores, pausas innecesarias o ayudar a evitar que terceros vean el proceso que se realiza.

Al INICIO:


1. Apagar el parpadeo de pantalla

Lo hacemos con la instrucción: Application.screenupdating=False
E
vita los movimientos de pantalla que se producen al seleccionar celdas, hojas y libros
2. Apagar los cálculos automáticos

Lo hacemos con la instrucción: Application.calculation=xlCalculationManual
Evita que se recalcule todo cada vez que se pegan o modifican datos


3. Apagar los eventos automáticos

Lo hacemos con la instrucción: Application.EnableEvents=False
Evita que se disparen macros de evento si las hubiere


4. Apagar visualización de saltos de página
Lo hacemos con la instrucción: ActiveSheet.DisplayPageBreaks = False
Sirve para evitar algunos problemas de compatibilidad entre macros Excel 2003 vs. 2007/2010

Siempre comenzar las macros así:

Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks = False
.

AL FINAL DE LAS MACROS


5. Borrar contenido de portapapeles
Lo hacemos con la instrucción: Application.CutCopyMode = False
Permite limpiar el portapapeles en caso de haber copiado datos
Además debemos volver a su estado original las instrucciones con las que comenzamos la macro.

En resumen, siempre debemos finalizar las macros así:

Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False

.

OTRAS TECNICAS UTILES


6. Usar la instrucción WITH
Se usa para evitar tener que referenciar un mismo objeto muchas veces

Ejecución leeenta…
Sheets(1).Range(“A1:Z1”).Font.Italic = True
Sheets(1).Range(“A1:Z1”).Font.Interior.Color = vbRed
Sheets(1).Range(“A1:Z1”).MergeCells = True

Ejecución rápida!
With Sheets(1).Range(“A1:Z1”)
.Font.Italic = True
.Font.Interior.Color = vbRed
.MergeCells = True
End With

Temas