0% encontró este documento útil (0 votos)
137 vistas30 páginas

01 MacrosVBAExcelAvanzado - EAA

Este código renombra las primeras 3 hojas de una forma específica y agrega una nueva hoja

Cargado por

JosePlasencia
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
137 vistas30 páginas

01 MacrosVBAExcelAvanzado - EAA

Este código renombra las primeras 3 hojas de una forma específica y agrega una nueva hoja

Cargado por

JosePlasencia
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 30

Excel Avanzado con VBA

16/02/2012

Por qu usar VBA en Excel 2010?


Microsoft Excel 2010 es una herramienta muy eficaz que se puede usar para manipular, analizar y presentar datos. A veces, no obstante, a pesar del amplio conjunto de caractersticas que ofrece la interfaz de usuario (UI) estndar de Excel, es posible que se desee encontrar una manera ms fcil de realizar una tarea repetitiva y comn, o de realizar alguna tarea no incluida en la interfaz de usuario. Afortunadamente, las aplicaciones de Office, como Excel, tienen Visual Basic para Aplicaciones (VBA), un lenguaje de programacin que brinda la posibilidad de ampliar dichas aplicaciones.

16/02/2012

Por qu usar VBA en Excel 2010?


VBA funciona mediante la ejecucin de macros , procedimientos paso a paso escritos en Visual Basic. Aprender a programar podra parecer intimidante, pero con algo de paciencia y algunos ejemplos, como los que se incluyen en este artculo, muchos usuarios encuentran que conocer aunque sea una pequea parte del cdigo de VBA facilita su trabajo y les brinda la posibilidad de ejecutar tareas en Office que antes crean imposibles de realizar. Si se adquieren algunos conocimientos sobre VBA, resultar mucho ms sencillo seguir aprendiendo, y las posibilidades de que hacer son ilimitadas.

16/02/2012

Por qu usar VBA en Excel 2010?


Sin duda, la razn ms frecuente por la cul se usa VBA en Excel es para automatizar tareas repetitivas. Por ejemplo, suponga que tiene docenas de libros con docenas de hojas de clculo y necesita realizar cambios en cada uno de ellos. Los cambios podran ser tan simples como aplicar formato nuevo a algn rango fijo de celdas, o bien tan complejos como buscar algunas caractersticas estadsticas de los datos en cada hoja, elegir el mejor tipo de grfico para mostrar datos con esas caractersticas y, a continuacin, crear y dar formato al grfico en consecuencia.

16/02/2012

Por qu usar VBA en Excel 2010?


VBA no es til solo para tareas repetitivas. Tambin puede usar VBA para crear nuevas funcionalidades en Excel (por ejemplo, puede desarrollar nuevos algoritmos para analizar datos y, a continuacin, usar las funcionalidades de grficos de Excel para mostrar los resultados) y realizar tareas que integren Excel con otras aplicaciones de Office, como Microsoft Access 2010. De hecho, de todas las aplicaciones de Office, Excel es la ms usada como algo similar a una plataforma de desarrollo general. Adems de todas las tareas obvias que implican listas y contabilidad, los programadores usan Excel en una amplia variedad de tareas, desde visualizacin de datos hasta prototipos de software.

16/02/2012

Uso de cdigo para hacer que las aplicaciones realicen las tareas
Quiz crea que escribir cdigo es algo misterioso o complicado, pero sus principios bsicos usan la lgica diaria y son bastante accesibles. Las aplicaciones de Office 2010 estn creadas de tal modo que exponen lo que se denomina objetos. Estos objetos reciben instrucciones. Para interactuar con las aplicaciones, se envan instrucciones a varios objetos de la aplicacin. Los objetos, si bien son variados y flexibles, tienen sus lmites. Solo pueden hacer aquello para lo que fueron diseados y solo harn lo que se les indique que hagan.

16/02/2012

Objetos
Los objetos de programacin se relacionan entre s sistemticamente en una jerarqua denominada modelo de objetos de la aplicacin. El modelo de objetos bsicamente refleja lo que se ve en la interfaz de usuario. Por ejemplo, el modelo de objetos de Excel contiene los objetos Application, Workbook, Sheet y Chart, entre muchos otros. El modelo de objetos constituye el mapa conceptual de la aplicacin y sus funcionalidades.

16/02/2012

Propiedades y mtodos
Es posible manipular objetos al establecer sus Propiedades y llamar a sus mtodos. Si se establece una propiedad, se producen algunos cambios en la calidad del objeto. Si se llama a un mtodo, se logra que el objeto realice una determinada accin. Por ejemplo, el objeto Workbook tiene un mtodo Close que cierra el libro y una propiedad ActiveSheet que representa la hoja activa del libro.

16/02/2012

Colecciones
Varios objetos vienen en las versiones singular y plural; por ejemplo, libro y libros, hoja de clculo y hojas de clculo. Las versiones en plural se denominan colecciones. Los objetos de una coleccin se usan para realizar una accin en varios elementos de esa coleccin. Ms adelante, en este artculo, se explicar cmo usar la coleccin Worksheets para cambiar el nombre de cada hoja de clculo de un libro.

16/02/2012

10

Macros y el Editor de Visual Basic


Luego de conocer tericamente en parte cmo Microsoft Excel 2010 expone su modelo de objetos, puede intentar llamar a los mtodos de un objeto y establecer las propiedades del objeto. Para hacerlo, debe escribir el cdigo en un lugar y de una manera que Office pueda comprender; generalmente, mediante el uso del Editor de Visual Basic. Aunque se instala de forma predeterminada, muchos usuarios ni siquiera saben que est disponible hasta que no se habilita en la cinta de opciones.

16/02/2012

11

Ficha Programador

Todas las aplicaciones de Office 2010 usan la cinta de opciones. La ficha Programador es una de las fichas incluidas en la cinta de opciones, donde se puede tener acceso al Editor de Visual Basic y a otras herramientas de programador. Debido a que Office 2010 no muestra la ficha Programador de manera predeterminada, debe habilitarla mediante el siguiente procedimiento:

1. 2. 3. 4.

Ficha Archivo Opciones Personalizar cinta de opciones Activar la casilla Programador y <Aceptar>

16/02/2012

12

Problemas de seguridad
Haga clic en el botn de Seguridad de macros para especificar qu macros pueden ejecutarse y en qu condiciones. Aunque el cdigo de macros de sistemas no confiables puede daar gravemente el equipo, las condiciones de seguridad que impiden ejecutar macros tiles pueden disminuir en gran medida la productividad. Si la barra Advertencia de seguridad: las macros se han deshabilitado aparece entre la cinta de opciones y el libro, cuando abre un libro que contiene una macro, puede hacer clic en el botn Habilitar contenido para habilitar las macros. Adems, como medida de seguridad, no puede guardar una macro en el formato de archivo predeterminado de Excel (.xlsx); debe guardar la macro en un archivo con extensin especial (.xlsm).

16/02/2012

13

Problemas de Seguridad

mi primera Macro
Editor de Visual Basic
Alt+F11 Barra de Herramientas: Visual Basic Herramientas, Macro, Editor

Insertar Mdulo
Sub Bienvenido1() msgBox Hola a todos" End Sub

de V.B.

Sub Bienvenido2() ActiveCell.Value = Hola a todos" End Sub

16/02/2012

15

Uso de la grabadora de macros


A veces una simple macro grabada es todo lo que se necesita; en estos casos, incluso, no es necesario mirar el cdigo. Por lo general, la grabacin por s sola no es suficiente, pero s, un punto de inicio en el proceso automatizado para la solucin de su problema. Para usar la grabadora de macros como punto de inicio de la solucin 1. Grabe las acciones que desea codificar. 2. Revise el cdigo y busque las lneas que realizan esas acciones. 3. Elimine el resto del cdigo. 4. Modifique el cdigo grabado. 5. Agregue variables, estructuras de control y otro cdigo que la grabadora de macros no pueda grabar.

16/02/2012

16

OBJETO RANGE, SELECCIN CELDAS


SELECCIONAR UNA CELDA Range(B5).select SELECCIONAR VARIAS CELDAS Range(B7:C20).select SELECCIONAR CELDAS CONTIGUAS DE UNA LISTA (De izquierda a derecha y hacia abajo) Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select (De abajo hacia arriba y a la izquierda) Range(Selection, Selection.End(xlUp)).Select Range(Selection, Selection.End(xlToLeft)).Select

16/02/2012

17

OBJETO RANGE, SELECCIN CELDAS


IR AL FINAL DE CELDAS SELECCIONADAS O DETENERSE EN UNA CELDA CON DATOS Selection.End(xlDown).Select IR A UNA CELDA DEBAJO DE LA ACTIVA  ActiveCell.Offset(1, 0). Select ESCRIBIR EN UNA CELDA  Range(A5").Value = "SENATI pni"

16/02/2012

18

OBJETO RANGE, SELECCIN CELDAS


ESCRIBIR EN UNA CELDA A UNA DISTANCIA RELATIVA A LA CELDA ACTIVA Range(A5").Select ActiveCell.Range(A1").Value = "Trujillo" ActiveCell.Range(B2").Value = "La Libertad"

16/02/2012

19

OBJETO RANGE, SELECCIN CELDAS


ESCRIBIR EL MISMO DATO EN UN RANGO DE CELDAS Sheets(2).Range("A1:B10").Value="Per" ESCRIBIR EN LA CELDA TRES ABAJO Y UNA A LA DERECHA DE LA CELDA ACTIVA ActiveCell.Cells(4,2).Value="Excel" recuerde que lo anterior es lo mismo que: ActiveCell.Range("B4").Value = "Excel" y lo mismo que: ActiveCell.Offset(3, 1).Value = "Excel"

16/02/2012

20

OBJETO RANGE, SELECCIN CELDAS


ESCRIBIR UN DATO EN UNA CELDA ABSOLUTA UTILIZANDO CELLS(N) Cells(32769).Value = "Fcil" Nota: CELLS Cuenta desde la celda A1 como 1, B1 como 2, C1 como 3

. XFD1 como 16384. Es decir de izquierda a derecha a partir de la celda A1 sin importar la celda activa.

ESCRIBIR EN UNA CELDA RELATIVA A UN RANGO SELECCIONADO Range("A1:D5").Select Selection.Interior.Color = RGB(200, 200, 200) Selection.Cells(6) = "123" Cells(1).Select

16/02/2012

21

Cells(1)

Cells(2)

Cells(5)

Cells(6)

16/02/2012

22

TRATAMIENTO DE HOJAS
NOMBRAR HOJA Sheets(1).Name = BaseDatos Sheets(2).Name = Consolidados Sheets(3).Name = Grficos AGREGAR HOJA (siempre se agrega antes de la hoja activa en Excel 2010) Sheets.Add ACTIVAR UNA HOJA Sheets(n).Activate o Sheets(n).Select Sheets("Peru").Select 'activa Peru si existe

16/02/2012

23

TRATAMIENTO DE HOJAS
MOVER LA HOJA ACTIVA AL FINAL ActiveSheet.Move after:=Sheets(Sheets.Count) Nota: Sheets.Count devuelve un valor entero que es igual al total de hojas. NOMBRAR LA PENULTIMA HOJA Sheets(Sheets.Count-1).Name=etiqueta ELIMINAR LA ULTIMA HOJA Sheets(Sheets.Count).Delete

16/02/2012

24

TRATAMIENTO DE HOJAS
Pregunta Que realiza la siguiente lnea de cdigo?: MsgBox (La ultima hoja se llama" & chr(13) _ &Sheets(Sheets.Count).Name) COPIAR UNA HOJA EN EL LIBRO ACTIVO Ejemplo: Reemplazar la Hoja1 con el nombre de la hoja a ser copiada (Uso de After o Before) 'Duplicar la hoja2 a la derecha Sheets(2).Copy After:=Sheets(2) Sheets(2).Name=Copia

16/02/2012

25

TRATAMIENTO DE HOJAS
COPIA LA HOJA ACTIVA ANTES DE LA HOJA1 ActiveSheet.Copy Before:=Sheets(1) COPIA LA PRIMERA HOJA AL FINAL Sheets(1).Copy After:=Sheets(Sheets.Count) COPIA LA PRIMERA HOJA DE UN LIBRO ABIERTO A OTRO LIBRO ABIERTO Workbooks("Libro1.xlsm").Sheets(1).Copy _ After:=Workbooks("Libro2.xlsx").Sheets(1)

16/02/2012

26

TRATAMIENTO DE HOJAS
INSERTAR UNA HOJA AL FINAL Sheets.Add After:=Sheets(Sheets.Count) VISTA PRELIMINAR DE LAS HOJAS SELECCIONADAS ActiveWindow.SelectedSheets.PrintPreview SELECCIONAR 3 HOJAS Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Select
Tambien puede ser lo mismo:

Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select

16/02/2012

27

APLICAR BORDES A UNA LISTA COMPLETA


Ojo: Partir ubicndose en la celda superior izquierda de la lista  Sub Seleccionarlista()  Range(Selection, Selection.End(xlToRight)).Select  Range(Selection, Selection.End(xlDown)).Select  Call aplicarbordes  End Sub ______________________________________________  Sub aplicarbordes()  Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous  Selection.Borders(xlEdgeTop).LineStyle = xlContinuous  Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous  Selection.Borders(xlEdgeRight).LineStyle = xlContinuous  Selection.Borders(xlInsideVertical).LineStyle = xlContinuous  Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous  'Selection.Borders(xlDiagonalUp).LineStyle = xlNone  'Selection.Borders(xlDiagonalDown).LineStyle = xlNone  ActiveCell.Offset(0, -1).Range("B1").Select  End Sub

16/02/2012

28

Ejercicio propuesto
 Crear una lista de 12 Celdas  En la hoja 3 de un nuevo libro  La celda esquina superior izquierda es B4  La lista tendr 4 columnas  Los titulos sern: "Items","Enero","Febrero" y "Marzo"  Los ttulos tendran relleno Celeste, letras azules  Toda la lista tendr borde delgado de color Rojo.  La 1ra columna de Items tendr los datos: "Trujillo" y "Vir"  Repetir el dato "100" en las otras celdas de la lista.

16/02/2012

29

Un posible ejemplo de solucin del ejercicio (1/2)


 Sub ejercicioDomingo14112010()  Range("B4").Select  ActiveCell.Value = "Items"  ActiveCell.Offset(0, 1).Value = "Enero"  ActiveCell.Offset(0, 2).Value = "Febrero"  ActiveCell.Offset(0, 3).Value = "Marzo"  ActiveCell.Offset(1, 0).Value = "Trujillo"  ActiveCell.Offset(2, 0).Value = "Vir"  ActiveCell.Offset(1, 1).Select  ActiveCell.Range("A1:C2").Select  Selection.Value = "100"  Range("B4").Select  Call aplicarformato  Range("B4:E4").Select  Selection.Interior.Color = RGB(0, 0, 255)  Selection.Font.Color = RGB(0, 255, 255)  Cells(1).Select  End Sub ..contina

16/02/2012

30

Un posible ejemplo de solucin del ejercicio (2/2) Sub aplicarformato()  Range(Selection, Selection.End(xlToRight)).Select  Range(Selection, Selection.End(xlDown)).Select  Selection.Borders.LineStyle = xlContinuous  Selection.Borders.Color = RGB(255, 0, 0) End Sub

También podría gustarte