ejemplo de macros

9
Hola amigos, en esta ocasión os traigo un post que espero que os guste, os sea util y sobretodo se pueda aprovechar lo suficiente. Muchos de vosotros seguro que al igual que yo, utilizais el Office en cualquiera de sus versiones, bien puede ser la 2003 / 2007 / 2010 o en breves seguro que saldrá la version 2011 si es que no ha salido ya. Pues bein en esta ocasión voy a adentrarme en uno de los programas más potenentes como ex la hoja de cálculo Excel. Vamos a hablar de algo que por mi experiencia pocos conocen y que me parece algo que todos deberiamos aprender cada día un poco más para sacarle realmente partido a este magnífico programa. Las macros en excel y la aplicacion de Visual Basic para Aplicaciones (VBA). ¿Qué es una macro? Una macro en un lenguaje para que todos lo entendamos son instrucciones que mediante lenguaje de programación, se le dan a un programa o aplicación, en este caso Excel, para que realice una serie de operaciones de forma automática. A continuación os dejo una imagen de Visual Basic para aplicaciones, el cual podremos acceder a el a través de la combinación de teclas ALT + F11.

Upload: ricardo-monzon

Post on 28-Oct-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ejemplo de Macros

Hola amigos, en esta ocasión os traigo un post que espero que os guste, os sea util y sobretodo se pueda aprovechar lo suficiente. Muchos de vosotros seguro que al igual que yo, utilizais el Office en cualquiera de sus versiones, bien puede ser la 2003 / 2007 / 2010 o en breves seguro que saldrá la version 2011 si es que no ha salido ya.

Pues bein en esta ocasión voy a adentrarme en uno de los programas más potenentes como ex la hoja de cálculo Excel.

Vamos a hablar de algo que por mi experiencia pocos conocen y que me parece algo que todos deberiamos aprender cada día un poco más para sacarle realmente partido a este magnífico programa. Las macros en excel y la aplicacion de Visual Basic para Aplicaciones (VBA).

¿Qué es una macro?

Una macro en un lenguaje para que todos lo entendamos son instrucciones que mediante lenguaje de programación, se le dan a un programa o aplicación, en este caso Excel, para que realice una serie de operaciones de forma automática.

A continuación os dejo una imagen de Visual Basic para aplicaciones, el cual podremos acceder a el a través de la combinación de teclas ALT + F11.

Page 2: Ejemplo de Macros

Para trabajar con macros en excel 2007 o 2010 debemos tener a la vista la ficha programador en la cinta de opciones, la cual se saca a través de:Botón de Office > Opciones de Excel > Activar ficha programador.

Page 3: Ejemplo de Macros

Una vez hecho esto en la ficha programador podemos simplemente agregar un boton de comando a traves de la opcion Insertar que nos aparece en dicha ficha. Hacemos clik en el boton de comando y dibujamos un botón.Haciendo doble clik en ese botón, podemos acceder tambien al entorno de programación vba.

Page 4: Ejemplo de Macros

Ahora os voy a dejar una serie de macros creo que bastante útiles para ciertas ocasiones. Espero que os sirvan y os sean útiles:

Macro que busca un valor en una columna de una hoja y muestra en un msgbox los datos solicitados.

Vamos a suponer que tenemos que buscar en la columna A de una hoja de excel llamada hoja1 un dato que debemos colocar en un textbox de un formulario, llamado TextBox1 de la misma hoja:

Sub buscar()

ActiveSheet.Range("A1" ).Activate

Set dato = Workbooks("libro1.xls" ).Sheets("Hoja1" ).Range("a:a" ).Find(What:=Textbox1.Value, _LookIn:=xlFormulas, _LookAt:=xlPart, _SearchOrder:=xlByRows, _SearchDirection:=xlNext, _MatchCase:=False)

'Si se encuentra el dato, entonces.... If Not dato Is Nothing Then

'Pasamos a una variable los datos encontrados

Page 5: Ejemplo de Macros

variable1 = dato 'Esto coloca en la variable llamada variable1 el dato encontrado.variable2 = dato.Offset(0, 1).Value 'Esto coloca el dato de la celda de la derecha al dato encontrado variable llamada variable2variable3 = dato.Offset(0, 3).Value ' Hace lo mismo con el dato colocado dos columnas a la derecha del dato encontrado

'Muestra un msgbox con los datos encontrados.

MsgBox "Las existencias que quedan en el almacén del producto" & " " & descripcion & " " & "cuya referencia es" & " " & referencia & " " & "son" & " " & unidades, vbInformation, "UNIDADES EXISTENTES"Workbooks("INVENTARIO.XLS" ).Close False 'Cierra el libro sin guardar los cambios

Else 'Si el dato no se encuentra en la lista, entonces...'Muestra un mensaje diciendo que no se encontro el dato MsgBox "El producto no se encuentra en el inventario", vbInformation, "PRODUCTO NO ENCONTRADO"End IfEnd Sub

Macro que encuentra la primera celda vacia de una columna:

Sub celda_vacia()'Siempre partimos en este caso del libro activo y teniendo en cuenta que la macro está en la misma hoja donde se realizan las operaciones.

'Mientras la celda activa no este vacia, baja una fila.Activesheet.range("a1" ).ActivateDo While Not isEmpty(Activecell)Activecell.offset(1,0).ActivateLoop

'En la celda activa, la cual esta vacia, escribe Hola.Activecell.value= "Hola"

End Sub

Macro que abre un libro llamado librodiferente.xls, el cual es diferente al que contiene la macro pero se encuentra la misma carpeta que el libro que contiene la macro.

Sub abrir_libro_en_la_misma_carpeta()

Page 6: Ejemplo de Macros

Workbooks.Open Thisworkbook.Path & "librodiferente.xls"

End sub

Abrir el libroempresa.xls especificando la ruta por ejemplo vamos a abrir un libro que este en la ubicacion "c:empresa

Sub abrir_libro

Workbooks.Open Filename:="c:empresalibroempresa.xls"

End sub

Macro que abre un libro cuyo nombre se encuentra en una variable:

Sub abrir_libro_variable

'Colocamos el nombre del libro en un inputbox

AbrirLibro=Inputbox("Teclea el libro que desea abrir", "Libro para abrir" )

'Abrimos el libro con extensión xls

Workbooks.Open ThisWorkbook.Path & "" & AbrirLibro

End Sub

Macro para guardar un libro.

Sub Guardar()

'Workbooks("nombre del libro.xls" ).Save

End Sub

Macro Guardar como...

Sub GuardarComo()

'Esta macro guarda el libro en la misma carpeta que contiene la macro con un nombre diferente

Guardar=inputbox("Guardar Como", Guardar como)

Page 7: Ejemplo de Macros

Workbook.SaveAs ThisWorkbook.Path & "" & Guardar & ".xls"

End Sub

Macro que guarda un libro con otro nombre en la ruta que queramos, por ejemplo en c:macrosExcel

Sub GuardarComo()

Guardar=inputbox("Guardar Como", Guardar como)

Workbook.SaveAs Filename:="c:maroxExcel" & Guardar

End Sub