Curso Avanzado Excel Vba Macros(2)

download Curso Avanzado Excel Vba Macros(2)

of 13

Transcript of Curso Avanzado Excel Vba Macros(2)

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    1

    Curso Avanzado de Excel con Visual Basic for Applications (VBA Macros)

    Santiago de Chile, 2010

    Cel: 98197354 [email protected]

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    2

    INDICE

    1. Objetivos del Curso

    1.1 Generales

    1.2 Especficos

    2. Consideraciones preliminares

    2.1 Qu es VBA? (Macros) 2.2 Quin puede aprender MS Excel + VBA?

    2.3 Expectativas

    3. Metodologa del Curso de Excel Avanzado con VBA (Macros)

    3.1 Revisin ambiente operativo y de hardware

    3.2 Sin rodeos!!!

    3.3 Modalidad In House

    3.4 Duracin

    3.4 Soporte Ex Curso

    4. Temario (36 horas)

    Organizar, buscar y Analizar Datos. Gestin de Bases de Datos

    Formatear Datos y Contenido Trabajo en red

    Administrar Datos y Libros de Trabajo

    Automatizacin

    Definicin de Requerimientos (Anlisis Estructurado Modelamiento de

    Datos)

    5. Dificultades del proceso de programacin tradicional

    6. Por qu MS Excel + VBA y no Access?

    7. Ventajas del conocimiento avanzado de MS Excel + VBA

    8. La versatilidad de Microsoft Excel VBA (Macros)

    9. Ejemplos de Sistemas desarrollados bajo Excel VBA

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    3

    1. Objetivos del curso

    1.1 Objetivos Generales del Curso

    Lograr, que los usuarios tengan la conviccin que por medio de la combinacin Microsoft Excel + VBA (Visual Basic for Applications - Macros), pueden lograr TODO lo que necesitan realizar a nivel de automatizacin, optimizacin del tiempo y el trabajo diario, generacin de reportes, compartir y obtener informacin. Lograrn tener la conviccin de que TODO se puede hacer por medio de MS Excel + VBA. Las restricciones que afecten al usuario estarn acotadas slo por la profundidad del conocimiento del lenguaje VBA, el nivel de dominio de las funcionalidades de Excel y su propia imaginacin. Este curso est dirigido a ejecutivos, profesionales, tcnicos, administrativos y oficinistas en general, no a programadores. No se trata de una suerte de discriminacin. Lo que sucede es que el enfoque es diferente, nada ms. El curso necesariamente debe efectuarse en las instalaciones del Cliente (In House), quien deber aportar las posiciones, equipos y el software pertinente.

    1.2 Objetivos Especficos del Curso

    Aumentar la productividad de los usuarios drsticamente.

    Ahorrar tiempo, que podr destinarse para otras cosas.

    Maximizar la precisin de los resultados y minimizar los errores. Una vez validado el cdigo de VBA, las tasas de error tendern a cero.

    Las aplicaciones creadas, podrn ser utilizadas y/o consultadas y/o actualizadas por otros usuarios en forma fcil y segura.

    Los usuarios podrn crear funciones personalizadas.

    Los usuarios podrn interactuar con diversas Bases de Datos, con el fin de actualizarlas u obtener datos.

    Los usuarios aprendern a automatizar sus tareas mas rutinarias y tediosas.

    Podrn crear Mens didcticos, los que podrn ser utilizados por cualquier persona sin conocimientos de macros.

    1. Consideraciones preliminares

    1.1 Qu es VBA? (Macros)

    VBA es un lenguaje de programacin que permite al usuario crear cdigos que generan procesos y tareas automticos dentro de una aplicacin MS como lo es Excel; tambin puede recurrir a funciones pre-programadas como veremos a continuacin. Este lenguaje est dirigido a usuarios, no a programadores. Es muy simple y fcil de aprender. La diferencia con el lenguaje VB (Visual Basic) es precisamente el pblico destino; VBA es para usuarios oficinistas y profesionales; VB es para programadores. La diferencia crtica es que en VBA la mayora de las funciones de anlisis y

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    4

    procesamiento de datos tpicamente necesarias en cualquier organizacin de negocios, se encuentran pre-programadas en Excel. Esto representa un tremendo menor costo en el desarrollo de funciones del tipo financieras, estadsticas, matemticas, filtros, bsqueda, administracin o gestin de bases de datos, creacin de reportes o informes diversos, etc. Lo relevante de todo esto es que NO ES NECESARIO RE-INVENTAR LA RUEDA cada vez que se haga un desarrollo como es lo habitual en VB u otro lenguaje de programacin. Lo nico que hay que hacer es ensamblar las funcionalidades pre-programadas utilizando diversas tcnicas o rutinas las cuales se revelarn y ensear a utilizarse adecuadamente en este curso. 2.2 Quin puede aprender MS Excel + VBA?

    Cualquiera podr desarrollar macros simples (VBA) y luego, con tiempo y el inters suficiente, podr llegar a un punto o nivel en el que podr desarrollar rutinas altamente complejas o automatizar tareas muy sofisticadas. No es necesario ser un programador profesional para aprender cmo utilizar VBA con Excel; despus de alrededor de una semana aprendiendo los aspectos mas relevantes de MS Excel asociado a este lenguaje de programacin, el alumno podr crear procesos intuitivos tal como lo hace un programador; podr utilizar VBA para crear bases de datos estructuradas, reportes, filtros avanzados, clasificaciones, exportacin e importacin de datos hacia/desde el ambiente de red, etc.

    2.3 Expectativas

    No es exagerado afirmar que muchos usuarios, con el tiempo, podrn desarrollar sus aplicaciones mucho mejor que las que podra lograr un programador profesional utilizando el lenguaje VB u otro, en su mismo mbito de trabajo. Esto es verdadero por dos razones: El usuario es el que conoce su negocio, conoce el trabajo que realiza, su complejidad y sus respectivas necesidades de automatizacin. Es el dueo o propietario de sus datos. Es el especialista. Los conoce bien, conoce su origen, estructura, como se relacionan e interactan entre ellos y con otros datos o reas, conoce su importancia y utilidad, adems es propietario de las formas en que deben usarse. La segunda razn es que el usuario puede llegar a conocer el lenguaje VBA tan bien, que perfectamente puede lograr desarrollos de alto nivel para satisfacer sus bien conocidas y reconocidas necesidades de automatizacin. 3. Metodologa del Curso de Excel Avanzado con VBA (Macros)

    3.1 Revisin ambiente operativo y de hardware

    Nuestra metodologa considera en primer lugar evaluar y estandarizar el ambiente de software y hardware bajo el cual se ejecutarn las aplicaciones de MS Excel y VBA. Luego, en segundo lugar, se debe configurar Excel propiamente tal. A veces ser necesario recurrir a una reinstalacin completa de Excel u Office, en su defecto.

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    5

    3.2 Sin rodeos!!!

    No se har instruccin sobre aspectos bsicos de MS Excel como la descripcin y uso de los diversos mens que lo conforman. El supuesto del curso respecto de los asistentes es que estos tienen un mnimo de fluidez y experiencia en el uso de la herramienta, suficiente para asimilar las materias mas avanzadas que trataremos desde el inicio de las clases.

    3.3 In House

    El curso necesariamente debe efectuarse en las instalaciones del Cliente, quien deber aportar las posiciones, equipos y el software pertinente (Excel 2000, 2003, 2007 2010). No somos OTEC.

    3.4 Duracin

    El curso de Excel Avanzado requiere 36 horas de instruccin.

    3.5 Soporte Ex Curso Una vez terminado el curso, los alumnos tendrn un periodo de apoyo presencial de 2 a 3 semanas (a convenir), con el objeto de perfeccionar lo aprendido, aclarar dudas o ayudar en el desarrollo de sus nuevas aplicaciones, modificaciones o mejoras de las existentes.

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    6

    4. Temario (36 horas)

    Organizar, buscar y Analizar Datos. Gestin de Bases de Datos

    Trabajando con subtotales.

    Filtrar y presentar registros segn diferentes criterios (incluye Filtro normal, avanzado

    con y sin criterios).

    Utilizar la funcin de validacin de datos.

    Aplicar nombres de rango. Definir nombres de listas a rangos extendidos de datos.

    (ahorra espacio y optimiza la construccin de frmulas)

    Usar funciones de bsqueda y referencia

    Funciones avanzadas (Sumaproducto, texto, tiempos, financieras, matemticas,

    estadsticas, sumar.si, indice, coincidir, eserror, otras)

    Funciones Matriciales: Tal vez uno de los aspectos mas poderosos de Excel y poco

    conocido. Cmo generar frmulas personalizadas que permitan discriminar entre

    mltiples variables o condiciones solicitadas (Suma, Promedios, Contar, Desviacin

    Estndar, etc.). Se ver como personalizar o modificar su estructura para satisfacer

    rquerimientos especficos.

    Incorporacin de rangos dinmicos a las funciones (para calcular solo el rea de datos)

    Trabajando con Bases y Tablas externas ODBC (SQL, csv, txt, xl*, XML)

    Inspeccionar una celda o frmula.

    Crear y trabajar con Tablas Dinmicas; incluyendo incorporacin de frmulas y

    establecimiento de rangos dinmicos)

    Solver (resolutor probabilstico). Por ejemplo, asignar vacaciones eficientemente segn

    preferencias de los trabajadores.

    Men de Anlisis de datos (estadsticas avanzadas como pronsticos por ejemplo;

    histogrma, regresin, fourier, etc.)

    Formatear Datos y Contenido

    Aplicar formatos condicionales.

    Agrupar y ordenar objetos.

    Crear y Modificar grficos.

    Trabajo en red

    Proteger hojas de clculo y libros de trabajo.

    Combinar libros de trabajo.

    Permitir que ms de un usuario pueda realizar cambios simultneamente.

    Aceptar y rechazar cambios en libros de trabajo.

    Administrar Datos y Libros de Trabajo

    Exportar y guardar los datos del libro en formato XML.

    Crear asignaciones XML.

    Importar campos almacenados en tablas y/o consultas.

    Crear, editar y aplicar plantillas.

    Crear reas de trabajo.

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    7

    Crear listas.

    Filtrar informacin en una lista.

    Ingresar nuevos registros en una lista.

    Usar consolidacin de datos.

    Vincular libros de trabajo.

    Aplicar contrasea de apertura y escritura a un archivo de Excel.

    Utilizar complementos de anlisis.

    Texto en Columnas

    Automatizacin

    Acceso al Editor de Visual Basic (VBE)

    Ventana de proyecto en el VBE

    Propiedades del VBE

    Ventana de cdigos

    Iniciando una Macro en VBE

    Grabador de Macros (acceso, operacin y condiciones)

    Modificando el cdigo grabado (Edicin)

    Probando las macros

    Eventos en VBA

    Seguridad y protecin

    Vocabulario general

    Administrando cuadros de dilogo de Error

    Objeto Application

    Libros

    Hojas

    Rangos, celdas, filas y columnas

    Cuadros de mensajes (msgbox)

    Automatizacin de filtros y ordenamiento de datos

    Variables

    Declaraciones (If, Then, ElseIf, End If, Do, Loop, For, Next, While, With)

    Funciones

    Cdigos para trabajar con ODBC, SQL y datos externos en general (importacin y

    exportacin)

    Userforms y Propiedades de control

    Cuadros de texto

    Botones de Comando (Command)

    Cuadros de listas desplegables

    Cuadros de chequeo

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    8

    Definicin de Requerimientos

    Se incluye 4 6 horas, correspondientes a materias de Definicin de Requerimientos (Anlisis Estructurado Moderno para determinar el Diagrama de Contexto y Subsistemas de Nivel1) y Modelamiento de Datos bsico. El objetivo de esta seccin, es entregar a los usuarios las herramientas que les permitan estructurar y modelar la idea de sistema que pretendan desarrollar correspondiente a su mbito de trabajo (Diseo Lgico). Sirviendo adicionalmente de documentacin del proceso automatizado, facilitndose as futuras actualizaciones, modificaciones o mejoras del mismo. Una ventaja indirecta de la asimilizacin de esta materia, es que el alumno queda con los fundamentos terico-prcticos para generar documentacin tcnica que facilita la comunicacin con un experto programador. 5. Dificultades del proceso de programacin tradicional

    Lo primero que hace un programador cuando es solicitado su servicio para automatizar o desarrollar un programa, es conocer todos los aspectos del trabajo que realiza un usuario, es decir est aprendiendo el trabajo del usuario. Lo que hace, utilizando el propio lenguaje de los programadores profesionales, es realizar el Anlisis Estructurado del fenmeno, el que incluye la Definicin del Requerimiento y el Diseo Lgico con su correspondiente post-etapa de Modelamiento de Datos. Tareas largas y a veces agobiantes que el usuario no logra interpretar adecuadamente, producindose confusiones y dilataciones innecesarias de los plazos. Esto tambin ocurre debido a que el programador no ha sabido interpretar, traducir, modelar o estructurar adecuadamente el trabajo del usuario, lo que es vital para poder efectuar el desarrollo posterior. Nuestra experiencia REAL es que, la mayora de las veces en que hemos iniciado un proyecto de VBA en paralelo con uno de VB u otro lenguaje de programacin, SIEMPRE el resultado final utilizando MS Excel + VBA ha sido mejor y cumplido en un plazo ostensiblemente menor que el que considera un desarrollo tradicional. 6. Por qu MS Excel + VBA y no Access?

    Algunos oficinistas y profesionales que trabajan con abundante flujo de datos han optado por reemplazar MS Excel por MS Access u otro software administrador de bases de datos, pensando que podrn hacer mas y mejor. La mayora de las veces hemos observado que ha sido un costoso error. Access es una aplicacin de base de datos, mientras que MS Excel permite ANALIZAR datos y generar infinidad de modalidades de reportes utilizando funcionalidades matemticas, estadsticas y financieras de las que Access carece. Si utiliza Access u otro programa de base de datos, igual, siempre tendr que recurrir a Excel para realizar los

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    9

    respectivos anlisis de los tipos indicados precedentemente y generar los pertinentes reportes o informes estructurados, lo cual es muy dificultoso de obtener en Access, siendo la mayor parte de las veces imposible. Nos hemos dado cuenta que esto ha ocurrido cuando los usuarios han tenido un escaso conocimiento del potencial de automatizacin y contenido de funciones de MS Excel, como por ejemplo desconocimiento de la existencia y formas de uso de la poderosa funcin =SUMAPRODUCTO, la que por si sola, bien utilizada y con conocimiento de las variantes que puede adoptar en su estructura, perfectamente puede satisfacer las necesidades de administracin de datos y reporting de un rea financiera y/o contable de envergadura. Para ello las versiones de Excel 2007 y Excel 2010 cuentan con un poco mas de 1.000.000 de lneas de trabajo multiplicada por mas de 250 hojas de trabajo, todo esto en un solo archivo o libro, esta estructura conforma un espacio de trabajo mas que suficiente para satisfacer al mas exigente ambiente de generacin y anlisis de datos masivos. Una de las grandes desventajas de utilizar Access para administrar bases de datos importantes, es que, en vista de la dificultad para aprender esta aplicacin, se produce lo que podramos llamar cuello de botella donde slo unos pocos usuarios o analistas manejan los pormenores de la aplicacin; si la demanda es alta, ser lgico esperar atrasos, demoras y frustracin entre el personal solicitante del servicio. Finalmente el costo, la demora y la dificultad del entrenamiento en Access es muchsimo superior que finalizar un programa avanzado de MS Excel + VBA. 7. Ventajas asociadas al conocimiento avanzado de MS Excel + VBA por parte de

    los usuarios.

    A nuestro juicio hay cuatro puntos de vista.

    El primero dice relacin con la suficiente disponibilidad de tiempo que el usuario tenga para desarrollar sus aplicaciones o programas. Cuando esto es as, ser el mismo el administrador y mantenedor de su propio sistema, pudiendo, fcil y rpidamente, efectuar las modificaciones y/o actualizaciones que sean necesarias. Esto representa un ahorro de tiempo y dinero extraordinario si se compara esta situacin con la tradicional llamada al programador original, el cual, la mayora de las veces, deber desempolvar la respectiva documentacin, si es que existe, y enrielarse nuevamente en un lapso incierto. El usuario del sistema tradicional deber adems enfrentarse a la disponibilidad de tiempo de atencin del programador de VB u otro lenguaje, disponibilidad que no siempre depender del mismo programador sino que de prioridades definidas en su rea de origen. Como segundo aspecto a sealar como ventaja de que el usuario conozca el lenguaje de VBA y el potencial de funcionamiento de MS Excel, es que si aquel no dispone del tiempo suficiente para invertir en el desarrollo de un nuevo sistema o bien en la modificacin o actualizacin de uno preexistente, siempre existir el asesor externo

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    10

    especialista que podr ayudarlo entendiendo perfectamente el requerimiento, ya que el usuario ahora es tambin un EXPERTO en el tema, interactuando ambos actores fluidamente. Tercero: una vez que el usuario de MS Excel + VBA logre manejar los temas contenidos en este programa de trabajo, ser capaz de aumentar su productividad como jams pens que podra hacerlo. Existen numerosos ejemplos reales que pueden citarse donde los ahorros de tiempo en la obtencin, procesamiento, anlisis y generacin de reportes no son medidos en minutos sino que en HORAS DE AHORRO de tiempo POR DA Y POR USUARIO. No est dems sealar que la precisin del trabajo realizado aumenta drsticamente, las tasas de errores y/o omisiones disminuyen a niveles prcticamente inexistentes. Los datos son controlados para obtener y procesar su TOTALIDAD, EXACTAMENTE y con ACTUALIZACIONES permanentes, generando un valor agregado enorme. Finalmente, como cuarto punto de vista, y tal vez uno de los mas relevantes, est referido a la VERSATILIDAD de la combinacin de Microsoft Excel con Visual Basic for Applications (VBA o Macros).

    1. La versatilidad de Microsoft Excel VBA (Macros)

    Microsoft Excel, en combinacin con Visual Basic for Applications cuenta con la capacidad para crear aplicaciones dedicadas, que programas rivales como el Lenguaje C o Visual Basic no tienen. La fortaleza al usar Excel se manifiesta en que todos, en

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    11

    diversa medida, sabemos como usarlo; el entorno de Excel provee en forma natural un conjunto de herramientas (matemticas, estadsticas, ingeniera, financieras, lgicas, de gestin de Bases de datos, de edicin de texto, bsquedas, filtros, etc., etc.) que permiten crear sofisticadas interfaces que son desarrolladas y testeadas rpidamente; Excel tiene la CAPACIDAD NICA para comunicarse DIRECTAMENTE con multiplicidad de Bases de Datos o Tablas de Datos, construidas en diversos formatos o lenguajes (SQL, .txt, .csv, .xl*, XML, Visual Basic, .NET, lenguaje C, etc., etc.) y simultneamente tiene la funcionalidad adicional de utilizar la planilla de clculo con todo su potencial de creacin de frmulas, cuyo nico lmite es la creatividad de cada usuario. Esto es as ya que todas las funcionalidades indicadas estn PRE-CONSTRUIDAS; de esta forma los costos y el tiempo de desarrollo de cualquier aplicacin son sustancialmente reducidos.

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    12

    9. Ejemplos de Sistemas desarrollados bajo Excel VBA

    1. Sistema Control Actividades y Gastos capacitacin. Subgerencia Sistemas

    Empresa Industrial

    2. Sistema de Cubicacin Empresa constructora

    3. Sistema de Facturacin Empresa de ridos

    4. Sistema de Contabilidad

    5. Sistema Control y Gestin Financiera Empresa productos del mar congelados

    6. Informe de Rentabilidad de Empresa con 7.000 trabajadores

    7. Informe de Ausentismo (justificados e injustificados)

    8. Sistema de Control de Licencias Mdicas

    9. Sistema de Registro y clculo de Comisiones e incentivos de Supervisores

    10. Sistema Control Marcaciones Biomtrico (huella dactilar control acceso/salida)

    11. BDD Personal (histrico y vigente)

    12. Sistema de Informe Gestin de Direccin de RR.HH.

    13. Organigrama Automtico en tiempo real e histrico (ante permanentes cambios

    en la estructura organizacional)

    14. Sistema de Control y Registro de Archivos de Direccin de RR.HH. (30.000

    trabajadores; vigentes y no vigentes).

    15. Apoyo a Analistas de Empresa de Servicios de Telecomunicaciones en

    automatizacin de tareas especficas (finiquitos, remuneraciones, Isapres,

    calidad, Control de Produccin, Control de Gestin, operaciones, finanzas, etc.)

    16. Sistema de pronstico regresin lineal

    17. Sistema de pronstico mtodo Holt Winter (series temporales multiplicativas)

    18. Sistema de pronstico de Series Temporales desestacionalizadas

    19. Sistema de pronstico con anlisis y suavizacin de curvas (mejor prctica

    mundial segn norma de calidad COPC)

    20. Sistema de pronstico de Media Ponderada Mvil

    21. Sistema de pronstico con mtodo cclico irregular

    22. Sistema de pronstico estacionalidad semanal

    23. Sistema de clculo de AHT (Average Handle Time o TMO)

    24. Clculo de reductores por intervalo de 30 minutos y da de semana (Ausentismo,

    atrasos y tiempos improductivos) (mejor prctica mundial segn norma de

    calidad COPC)

    25. Sistema de Asignacin de horarios de descansos y lunch a una Plataforma de

    Teleservicio, en armona con la demanda de transacciones.

  • Curso Avanzado Microsoft Excel con Visual Basic for Applications (VBA o Macros)

    2010

    13

    26. Sistema de control o retroalimentacin del pronstico: Escala Mvil

    27. Sistema de clculo de dotaciones de personal requeridas en Call Center, por

    intervalos de 30 minutos. Bajo teoras Erlang-B y/o Erlang-C.

    28. Programacin del personal semi automtica (ajustar nombres y preferencias de

    Teleoperadores con los Horarios correspondientes, para coincidir con la oferta

    de demanda de transacciones o llamadas)

    29. Adherencia o Adhesin por Supervisor, Plataforma, Semana, Da, Intervalo, etc.

    30. Sistema de Compatibilizacin de Curvas inter Plataformas o Servicios.

    31. Retroclculo. Para evaluar estadsticamente comportamiento de la

    planificacipon vs. Lo real.

    32. Calcular llamadas recibidas. En base slo a AHT (TMO) y cantidad de

    Teleoperadores por intervalo, se determinan la cantidad potencial de llamadas

    que podran resolver ante determinados niveles de calidad definidos como

    objetivo.

    33. Sistema de clculo de Permanencia. Es decir que proporcin del tiempo de

    trabajo de un teleoperador coincidi con el tiempo de trabajo de un Supervisor

    en especial.

    34. Clculo de dotaciones ptimas. Entrega cantidad de teleoperadores, su tipo de

    contrato (45, 36, 30, 20 hrs. Semanales) y los horarios de trabajo por da de

    semana.

    35. Etc.

    36. Etc.