You are on page 1of 9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

TodoExcel
SolucionesparahojasMicrosoftExcel
Inicio
Productos
ManualdeFunciones
ManualdeMacros
NuevasFunciones
OptipeGestindeDatosyTablas
ManualExcelavanzado
Calendariodesplegable
Recuperadordecontraseas
Servicios
ArmamostuFrmulaExcel
ProgramamostuMacroExcel
Foro
Clientes
Encuesta
Contacto

14formasdeaceleraryoptimizartusmacros
excel
Estainformacinesmuytilparaquienesmanejeneltemadeprogramacindemacrosexcel.Tus
macrosvanlentas?Problemasalahoradeejecutarlas?Culessonlastcnicasrecomendadas?
Cuandodeprogramacindemacrosexcelsetrata,eltemadelaeficienciaylavelocidadesclave.Hay
2leyesfundamentalesquehayquerecordar:
.
a.Cuantomenoscdigotieneunamacromejorporqu?
Ayudaaquelamacroseejecutemuchomsrpido
Simplificalatareaalahorademodificar/ampliar/repararlamacro
.
b.Cuantomsrpidoseejecutaunamacromejor!porqu?
Mejoralaexperienciadelusuario
NomantienelaPCocupadatantotiempo

Respectodeusarmenoscdigodependerdelashabilidadesdelprogramadorexcelencuestin.Hemos
vistoinfinidaddecasosdonde30o40lneasdecdigoVBAsepuedenresumiren5o6lneas(algo
similarpasaconlasfrmulasexcel).Siemprehaymacrosofrmulasquehacenlatareadeformams
directaysindartantasvueltas!
Otrarecomendacinclaveesinvertirmuchotiempoinicialenplanificaryanalizarlalgicadel
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

1/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

trabajo.Estonosvaaahorrarmuchosproblemasydoloresdecabezaposteriores!
Hayalgunasinstruccionespuntualesquesiempreconvieneusaryquevanaaceleraryoptimizar
nuestrasmacrosentodosloscasos.Vamosaverrepasaralgunastcnicaspuntualesquepodemosusar
alcomienzo,duranteyalfinaldenuestrasmacros.
.
ALCOMIENZODELASMACROS
1.Apagarelparpadeodepantalla
Lohacemosconlainstruccin:Application.screenupdating=False
Evitalosmovimientosdepantallaqueseproducenalseleccionarceldas,hojasylibros
2.Apagarlosclculosautomticos
Lohacemosconlainstruccin:Application.calculation=xlCalculationManual
Evitaqueserecalculetodocadavezquesepeganomodificandatos
3.Apagarloseventosautomticos
Lohacemosconlainstruccin:Application.EnableEvents=False
Evitaquesedisparenmacrosdeeventosilashubiere
4.Apagarvisualizacindesaltosdepgina
Lohacemosconlainstruccin:ActiveSheet.DisplayPageBreaks=False
SirveparaevitaralgunosproblemasdecompatibilidadentremacrosExcel2003vs.2007/2010
Enresumen,siempredebemoscomenzarlasmacrosas:
Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks=False
.
ALFINALDELASMACROS
5.Borrarcontenidodeportapapeles
Lohacemosconlainstruccin:Application.CutCopyMode=False
Permitelimpiarelportapapelesencasodehabercopiadodatos
Ademsdebemosvolverasuestadooriginallasinstruccionesconlasquecomenzamoslamacro.
Enresumen,siempredebemosfinalizarlasmacrosas:
Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks=True
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

2/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

Application.CutCopyMode=False
.
OTRASTECNICASUTILES
6.UsarlainstruccinWITH
Seusaparaevitartenerquereferenciarunmismoobjetomuchasveces
Ejecucinleeenta
Sheets(1).Range(A1:Z1).Font.Italic=True
Sheets(1).Range(A1:Z1).Font.Interior.Color=vbRed
Sheets(1).Range(A1:Z1).MergeCells=True

Ejecucinrpida!
WithSheets(1).Range(A1:Z1)
.Font.Italic=True
.Font.Interior.Color=vbRed
.MergeCells=True
EndWith
7.EvitarlainstruccinSELECT
Segenerasobretodoenlasmacrosgrabadas
Lamayoradelasvecesnoesnecesarioseleccionarparacumplirelobjetivo
Ejecucinleeenta
Range(E1).Select
Selection.Copy
Range(D10).Select
ActiveSheet.Paste

Ejecucinrpida!
Range(E1).CopyRange(D10)
8.EvitarloopsFOREACH
Tenerqueirceldaporceldaconsumemuchotiempo
Sepuederesolverelproblemadeformamsdirecta!
Ejecucinleeenta
ForEachcellInRange(A1:A10000)
Ifcell=EmptyThencell=0
Nextcell
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

3/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

*Losloopssiempresonleeentos
*Enestecasorecorre10.000celdas!
Ejecucinrpida!
Existendiversasformasdeevitarlosloops.Lasolucindependerdelcasoconcretoencuestin.
Generalmenteseusanalgunasdeestastcnicas:agrupar,iraespecial,filtros,filtrosavanzados.Laidea
espoderrealizarlaaccinsobretodosloselementosalmismotiempo,enlugardetenerqueirunoauno!
9.UsarlasfuncionesnativasdeExcel
Noquierasreinventarlarueda.QuizsyaexistaunafuncinExcelquelohaga!
LasmacrossiempreejecutanmsrpidolasfuncionesnativasdeExcel
Ejecucinleeenta
mProducto=1
Fori=1to100
mProducto=mProducto*Cells(3,i)
Next
Ejecucinrpida!
mProducto=Application.WorkSheetFunction.Product(Range(C1:C100))
10.Forzarladeclaracindevariables
EneleditorVBA,menHerramientas>Opciones>pestaaEditor>marcarRequerirdeclaracinde
variables
Luegousarlavariablecorrecta:siesfechausarDate,siestextousarString,siesvalorusarLong
EvitarelusodelavariableVariantyaqueinsumemsrecursos
Usarnombresdevariablesquenosdiganalgo(porej.UltimaFilaoFilaZenlugardefouf)
11.Escribirlasmacrosenmdulosynoenhojas
Lashojaspuedenserborradasocopiadasyestogeneraraproblemasinesperados
12.Separarelprocesoenvariasmacros(divideyconquistars)
Situmacrohacemuchascosasconvienesepararlaenmuchasmacrospequeasyluegounirlas
Esmsfcilparacontrolar,auditar,etc
Ademstepermiteluegopoderrehusaralgunapartedelprocesoenotrasmacros
Macromuylaaarga
SubMegaMacro()
Codigolimpiadatos
Codigocargadatos
Cdigoarregladatos
Cdigoarmareporte
EndSub()
Mejordividirendiferentesmacrosparacadaproceso
SubLimpiaDatos()
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

4/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

Codigo
EndSubSub
CargaDatos()
Codigo
EndSub
SubArreglaDatos()
Codigo
EndSub
SubArmaReporte()
Codigo
EndSub
Finalmentepodemosunirtodoslosprocesos
SubProcesoCompleto()
CallLimpiaDatos
CallCargaDatos
CallArreglaDatos
CallArmaReporte
EndSub()
13.SercuidadosoconlainstruccinONERRORRESUMENEXT
Estainstruccinhacequelamacrosigaavanzandoaunqueencuentreunerror
Enalgunoscasosestoharqueseignorenerroresquenodeberanserignorados
Podrastenererrores(bugs)ynoenterarte!
14.Comentarbienlasmacros
Qupasarasituvierasquevolverarevisar/arreglar/ampliartucdigo8mesesdespus?
Aadircomentariosteayudaradescribiryrecordarlalgicayteahorrarmuchotiempo!

Compartetuspropiastcnicasparaaceleraryoptimizarmacros!
Djanostuscomentarios!
122respuestasa14formasdeaceleraryoptimizartusmacrosexcel
Comentariosnuevos
Johnydice:
Jueves,1deenerodel2015en23:54
Antesquenadagraciasporestetips.Porotrolado,estoyteniendoproblemaconunamacroque
extraeinformacindeWeb,dadoquesonvariasextraccionesquerealizo.Pensencolocaruna
ventanaemergenteybuenomeresultoperoestediosodadoqueenalgunasocasionesserequiere
hacermasde50consultasenlaejecucindelamacro.Estamacroextrae,ordena,formateay
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

5/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

continuaelprocesodeextraccin.Alahoradeconectarseconelservidorsequedaesperandoque
elservidorconteste.LoquemequedaescortarelExcelyreiniciartodoelproceso.Existealguna
formadehacerquelamacrocontinecuandosucedeesteproblemadeesperadelservidor???,es
decirquehagalaconsultaysidemoramasde30segundescontinueconlaconsultasiguiente.
Agradeceriabastantequemeapoyenenestoyaquemedemorademasiadoytengoquereiniciarel
Excelyprcederaejecutarlamacronuevamente.
Gracias
Responder
todoexceldice:
Viernes,2deenerodel2015en17:07
Consulteennuestroforo
luzmariadice:
Mircoles,17dediciembredel2014en00:23
Comentasquealcomenzarlamacrosedebecolocaresto,estolodebocolocarenelformularioen
Userform1_Activate()
Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks=False
Ytambienmencionasquealterminarlamacrocolocaresto,consultaestolocolocoenel
Userform1_Desactivate()
Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks=True
Application.CutCopyMode=False
Agradecersurespuesta.
Responder
AdolfoBalderasdice:
Domingo,21dediciembredel2014en01:14
LuzMaria,enunUserFormnuncalosheusadoperosideberiadeserasi
yoloheusadoenmacrosdelasiguientemanera:
SubMiMacro()
Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks=False
Escribetucodigo
Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

6/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

ActiveSheet.DisplayPageBreaks=True
Application.CutCopyMode=False
Endsub
Saludos!
Comentariosnuevos

Dejauncomentario
Tudireccindecorreoelectrniconoserpublicada.Loscamposnecesariosestnmarcados*
Nombre*
Correoelectrnico*
Web

Comentario
PuedesusarlassiguientesetiquetasyatributosHTML:<ahref=""title=""><abbrtitle="">
<acronymtitle=""><b><blockquotecite=""><cite><code><deldatetime=""><em><i><q
cite=""><strike><strong>

Publicarcomentario

BUSCADOR

BOLETINDENOVEDADES
Recibetodaslasnovedadesdenuestroblog!Regstrateaqu...
NUESTROSPRODUCTOS
ManualdeMacrosExcel
ManualdeFuncionesExcel
NuevasFuncionesExcel
OptipeDatosyTablasExcel
ManualExcelAvanzado
CalendarioExcelDesplegable
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

7/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

Recuperadordecontraseas
ENTRADASDESTACADAS
LafuncinExcelBUSCARV
Listadeatajosdelteclado
Calendario2014
FlujodeCaja(Cashflow)
PresupuestoIngresosyGastos
PuntodeEquilibrio
20erroresExcelusuales
14formasdeacelerarmacros
CATEGORIAS
Anuncios
Aplicaciones
Atajos
Avisos
Calendarios
Cdigosdebarra
Complementos
Empresa
Errores
Finanzas
Funciones
Herramientas
Macros
Otras
Personajes
Plantillas
Productos
Servicios
Tablasdinmicas
Trucos
Uncategorized
Versiones
Videos
ETIQUETAS
2007201020132014analyticsbackupbuscar buscarvcalendariocalendariosclavecomocomplementocontabilidadcontrasea

enerroresexcelexcel2007excel2010fifafixtureFuncionesfrmulasgratislimpiarlos

cuadrodemandodatosddtradade

macroMacrosmundial passwordProductosprogramacinqueservicepacksololetrassolonumerostablastrucosvbay
http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

8/9

9/1/2015

14formasdeaceleraryoptimizartusmacrosexcelTodoExcelTodoExcel

ManualdeFuncionesExcel|ManualdeMacrosExcel|NuevasFuncionesExcel|DatosyTablasExcel|
ManualExcelAvanzado

http://www.todoexcel.com/14formasdeaceleraryoptimizartusmacrosexcel/

9/9

You might also like