Sie sind auf Seite 1von 8

Hola amigos, en esta ocasin 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 ocasin voy a adentrarme en uno de los programas ms
potenentes como ex la hoja de clculo Excel.
Vamos a hablar de algo que por mi experiencia pocos conocen y que me
parece algo que todos deberiamos aprender cada da un poco ms para
sacarle realmente partido a este magnfico 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 programacin, se le dan a un programa o aplicacin,
en este caso Excel, para que realice una serie de operaciones de forma
automtica.
A continuacin os dejo una imagen de Visual Basic para aplicaciones, el cual
podremos acceder a el a travs de la combinacin de teclas ALT + F11.

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 travs de:
Botn de Office > Opciones de Excel > Activar ficha programador.

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 botn.
Haciendo doble clik en ese botn, podemos acceder tambien al entorno de
programacin vba.

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.V
alue, _
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

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 variable2
variable3 = 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 almacn 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 If
End 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" ).Activate
Do While Not isEmpty(Activecell)
Activecell.offset(1,0).Activate
Loop
'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()

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 extensin 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)
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
Espero que os sean utiles estas macros.

Das könnte Ihnen auch gefallen