Académique Documents
Professionnel Documents
Culture Documents
Pgina 1 de 8
TodoExcel Soluciones para hojas Microsoft Excel Inicio Productos Manual de Funciones Manual de Macros Nuevas Funciones ddTraDa Datos y Tablas Manual Excel avanzado Servicios Clientes Contacto
Respecto de usar menos cdigo depender de las habilidades del programador excel en cuestin. Hemos visto infinidad de casos donde 30 o 40 lneas de cdigo VBA se pueden resumir en 5 o 6 lneas (algo similar pasa con las frmulas excel). Siempre hay macros o frmulas que hacen la tarea de forma ms directa y sin dar tantas vueltas! Otra recomendacin clave es invertir mucho tiempo inicial en planificar y analizar la lgica del trabajo. Esto nos va a ahorrar muchos problemas y dolores de cabeza posteriores!
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 2 de 8
Hay algunas instrucciones puntuales que siempre conviene usar y que van a acelerar y optimizar nuestras macros en todos los casos. Vamos a ver repasar algunas tcnicas puntuales que podemos usar al comienzo, durante y al final de nuestras macros. . AL COMIENZO DE LAS MACROS . 1. Apagar el parpadeo de pantalla Lo hacemos con la instruccin: Application.screenupdating=False Evita los movimientos de pantalla que se producen al seleccionar celdas, hojas y libros 2. Apagar los clculos automticos Lo hacemos con la instruccin: Application.calculation=xlCalculationManual Evita que se recalcule todo cada vez que se pegan o modifican datos 3. Apagar los eventos automticos Lo hacemos con la instruccin: Application.EnableEvents=False Evita que se disparen macros de evento si las hubiere 4. Apagar visualizacin de saltos de pgina Lo hacemos con la instruccin: ActiveSheet.DisplayPageBreaks = False Sirve para evitar algunos problemas de compatibilidad entre macros Excel 2003 vs. 2007/2010 En resumen, siempre debemos 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 instruccin: Application.CutCopyMode = False Permite limpiar el portapapeles en caso de haber copiado datos Adems 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
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 3 de 8
. OTRAS TECNICAS UTILES 6. Usar la instruccin WITH Se usa para evitar tener que referenciar un mismo objeto muchas veces Ejecucin 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 Ejecucin rpida! With Sheets(1).Range("A1:Z1") .Font.Italic = True .Font.Interior.Color = vbRed .MergeCells = True End With 7. Evitar la instruccin SELECT Se genera sobre todo en las macros grabadas La mayora de las veces no es necesario seleccionar para cumplir el objetivo Ejecucin leeenta Range("E1").Select Selection.Copy Range("D10").Select ActiveSheet.Paste Ejecucin rpida! Range("E1").Copy Range("D10) 8. Evitar loops FOR EACH Tener que ir celda por celda consume mucho tiempo Se puede resolver el problema de forma ms directa! Ejecucin leeenta For Each cell In Range("A1:A10000") If cell = Empty Then cell = 0 Next cell * Los loops siempre son leeentos * En este caso recorre 10.000 celdas!
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 4 de 8
Ejecucin rpida! Existen diversas formas de evitar los loops. La solucin depender del caso concreto en cuestin. Generalmente se usan algunas de estas tcnicas: agrupar, ir a especial, filtros, filtros avanzados. La idea es poder realizar la accin sobre todos los elementos al mismo tiempo, en lugar de tener que ir uno a uno! 9. Usar las funciones nativas de Excel No quieras reinventar la rueda. Quizs ya exista una funcin Excel que lo haga! Las macros siempre ejecutan ms rpido las funciones nativas de Excel Ejecucin leeenta mProducto = 1 For i = 1 to 100 mProducto = mProducto * Cells(3,i) Next Ejecucin rpida! mProducto = Application.WorkSheetFunction.Product(Range("C1:C100")) 10. Forzar la declaracin de variables En el editor VBA, men Herramientas > Opciones > pestaa Editor > marcar Requerir declaracin de variables Luego usar la variable correcta: si es fecha usar Date, si es texto usar String, si es valor usar Long Evitar el uso de la variable Variant ya que insume ms recursos Usar nombres de variables que nos digan algo (por ej. UltimaFila o FilaZ en lugar de f o uf) 11. Escribir las macros en mdulos y no en hojas Las hojas pueden ser borradas o copiadas y esto generara problemas inesperados 12. Separar el proceso en varias macros (divide y conquistars) Si tu macro hace muchas cosas conviene separarla en muchas macros pequeas y luego unirlas Es ms fcil para controlar, auditar, etc Adems te permite luego poder rehusar alguna parte del proceso en otras macros Macro muy laaarga Sub MegaMacro() Codigo limpia datos Codigo carga datos Cdigo arregla datos Cdigo arma reporte End Sub() Mejor dividir en diferentes macros para cada proceso Sub LimpiaDatos() Codigo End Sub Sub
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 5 de 8
Me gusta
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 6 de 8
Martes, 13 de marzo del 2012 en 14:23 Muy buenas ideas y para que est con 5 estrellitas, me gustara que pusieran un ejemplo para el caso 8: Evitar loops FOR EACH indicando como resolveran el ejemplo que ponen de poner ceros (0) en las celdas limpias Gracias. Responder Juan Carlos Gonzlez Chavarra dice: Jueves, 15 de marzo del 2012 en 09:10 Me parece excelente estos consejos y los felicito. Consejos de este tipo son muy tiles e importantes para todos los que trabajan y aprenden macros. Muy agradecido. Responder Oscar A. Meja M. dice: Jueves, 15 de marzo del 2012 en 09:33 Excelente artculo. Tengo una duda con el punto 4. Que problemas se pueden presentar las macros entre versiones de Excel por la visualizacin de los saltos de pgina? Responder Cristian dice: Jueves, 15 de marzo del 2012 en 09:53 excelente muchas gracias por la ayuda. Responder Giovanni Rodriguez dice: Jueves, 15 de marzo del 2012 en 10:02 Excelente estos comentarios, espero se repitan, los felicito Responder Gonzalo Edgar Zambrana Rocha dice: Jueves, 15 de marzo del 2012 en 10:12 Gracias por el Articulo, buenisimo. Saludos cordiales, Gonzalo Responder Alexcy Jimenez dice: Jueves, 15 de marzo del 2012 en 10:19
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 7 de 8
Excelente aporte, como indica Francisco Castro seria bueno un ejemplo para el caso 8: Evitar loops FOR EACH. Saludos Responder jose riu dice: Jueves, 15 de marzo del 2012 en 10:22 Haria falta algun ejemplo de este caso: 8. Evitar loops FOR EACH Porque no se comprende bien de que forma/s, se pueden utilizar las instrucciones mencionadas para analizar todo un rango en lugar de recorrer las celdas de a una. Responder
Deja un comentario
Tu direccin de correo electrnico no ser publicada. Los campos necesarios estn marcados * Nombre * Correo electrnico * Web
Comentario Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title="">
<acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight=""> Publicar comentario
BUSCADOR
Enviar consulta
BOLETIN EXCEL Accede a todas nuestras descargas y recibe los mejores videos y trucos Excel gratis!
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012
Pgina 8 de 8
Nombre Email
Enviar
BLOG Aplicaciones Atajos Avisos Calendarios Complementos Empresa Funciones Herramientas Macros Otras Plantillas Productos Servicios Tablas dinmicas Trucos Versiones Videos
ETIQUETAS
calendario calendario laboral 2010 cash flow cinta de opciones clave cmi complemento contabilidad contrasea cuadro de mando datos desarrollo empresas excel 2007 excel 2010 factura facturas fifa finanzas fixture flujo de caja Funciones frmulas ftbol google analytics Macros men mundial navegar hojas nuevas funciones nmero a letras office 2010 password pdf pestaas presupuesto Productos programacin punto equilibrio punto muerto ribbon
sumaproducto tablas
vba
versiones excel
Manual de Funciones Excel | Manual de Macros Excel | Nuevas Funciones Excel | Datos y Tablas Excel | Manual Excel Avanzado
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/?utm_source=MadMimi&...
15/03/2012