lunes, 5 de octubre de 2015

Utilizando Macros, Ejemplos.

Utilizando Macros 1.


En el articulo de hoy, veremos como podemos hacer algunas cosas interesantes utilizando macros para automatizarlas.



En pasados artículos hemos vistos algunos procedimientos o métodos que utilizaremos en estos ejemplos.

Bucles en procedimientosComo crear formulariosEstructura de un procedimientoLas Macros en Excel..


Hemos vistos un poco de teoría acerca de como funcionan las macros, por lo que es hora de poner en practica esas poquitas lecciones.

Empecemos:

Construiremos una macro que sirva para generar un libro nuevo, esto es muy importante para cuando dentro de otra Macro necesitamos utilizar un nuevo libro para agregar datos, ¿como haríamos la macro?, bueno la generación de un nuevo libro dependen directamente de la Aplicación (Excel), es decir del mismo Excel, entonces quedaría así:

'Application es el origen de los objetos relativos a un libro de Excel (Al decir Application nos estamos refiriendo precisamente a Excel), al ejecutar esta macro Excel generara un nuevo libro.
Sub AgregarNuevoLibro()
    Application.Workbooks.Add
End Sub

Ahora con otra Macro agregaremos una nueva Hoja al libro que hemos agregado con la macro anterior, en este caso las hojas las contienen los libros, por lo tanto el objeto del que dependen es de Workbook.

'Esta macro agrega una nueva hoja al libro que se encuentra activo en el momento de ejecutar la macro.

Sub AgregarNuevaHoja()
    ActiveWorkbook.Sheets.Add
End Sub

'Si usamos el objeto ThisWorkbook nos estaremos refiriendo al archivo o libro que contiene nuestra macro, y en este caso la nueva hoja se agregara a este.

Sub NuevaHojaLibroMacro()
    ThisWorkbook.Sheets.Add
End Sub

'Pero también podemos agregar una nueva hoja al libro que nosotros indiquemos y no necesariamente al libro activo o al que contiene la macro, así:
La parte que se encuentra encerrada entre comillas es el nombre de tu archivo o del libro, por lo tanto al darle el nombre del archivo le estamos diciendo que la nueva hoja se la agregaremos a ese libro en especifico.

Sub AgregarNuevaHojaLibroX()
    Workbooks("Milibro.xlsx").Sheets.Add

End Sub

Con otra macro podemos conocer cuantas hojas tiene un libro o tu archivo de Excel, incluso podemos mostrar el nombre de cada uno de ellas, cada libro contiene su propia colección de hojas que tienen y podemos recorrerlas ya sea por su indice o referirnos a una de ellas en especifico por su nombre dentro del libro, si lo hacemos por el indice la hoja que se encuentra situada en primer lugar tiene asignado el indice 1 por lo tanto si un libro tiene 3 hojas, la hoja1 tendrá el indice 1, la hoja2 el indice 2 y la hoja3 el indice 3.

Macro para conocer cuantas hojas tiene nuestro libro, el cual lo mostraremos en un cuadro de dialogo "MsgBox", y ya que estamos tocando el método "MsgBox", estos sirven para mostrar al usuario un mensaje, su sintaxis es la siguiente MsgBox("Mensaje que se quiere mostrar", Boton del tipo de mensaje, "Titulo del cuadro de Dialogo)

'Macro para conocer cuantas hojas tiene nuestro libro, el cual lo mostraremos en un cuadro de dialogo. Msgbox

Sub CuantosTieneLibro()
    Call MsgBox(ActiveWorkbook.Sheets.Count, vbInformation, "Yo soy el titulo del dialogo")
    'Call MsgBox (ThisWorkbook.Sheets.Count, vbInformation, "Yo soy el titulo del dialogo")
    'Call MsgBox (Workbooks("Libro3").Sheets.Count, vbInformation, "Yo soy el titulo del dialogo")
End Sub




Bien, ahora con esta macro recorreremos cada una de las hojas del Libro y mostraremos su nombre en un cuadro de dialogo, para recorrer las hojas asignaremos el indice que contiene en la colección  del libro mediante el uso del Bucle For .. Next visto ya en el articulo Bucles en procedimientos.

'Recorriendo las hojas a través de su indice en la colección del Libro, y mostraremos el nombre del libro mediante su propiedad "Name" del objeto Sheets "la hoja".
Sub RecorriendoLasHojasdelLibro()
    For i = 1 To ActiveWorkbook.Sheets.Count 'Libro activo
        Call MsgBox(ActiveWorkbook.Sheets(i).Name, vbInformation, "Titulo del dialogo")
    Next

End Sub




Ahora cambiaremos el nombre de la hoja del libro, podemos cambiar si queremos todas las hojas o cambiar una en especifico, y en este caso lo haremos accediendo a la hoja a través de su indice en la colección, en el ejemplo le cambiaremos el nombre a la hoja que esta en el indice 1, como dato adicional los nombre de las solo pueden tener un tamaño de 20 caracteres, por lo que si se pretende nombrar en forma automática deberán  calcular que el nombre asignado no rebase de 20 caracteres, ya que sino la macro generara un error al asignar el nombre.

'Cambiando el nombre de la hoja a través de la propiedad "Name" de la hoja y accediendo a ella a través de su indice en la colección.
Sub CambiandoNombredeHoja()
    ActiveWorkbook.Sheets(1).Name = "NuevoNombre"
End Sub

Ok, hasta aquí dejaremos esta primera parte de la serie Utilizando Macros.

Les dejo el archivo que contiene las macros aquí descritas para que las pongan en practica o en su caso las modifiquen a sus necesidades DESCARGAR.

Si tienen alguna duda o alguna corrección déjenme un comentario, todos sus comentarios si son criticas constructivas siempre serán bienvenidos.


Saludos cordiales

JASR

****Tranquilos que todo es correcto****






Share this

0 Comment to "Utilizando Macros, Ejemplos."

Publicar un comentario

Hola gracias por comentar.