domingo, 16 de octubre de 2011

Código VBA (acciones con un libro de Excel)





Presentamos una selección de ejemplos de código en VBA listo para ejecutar mediante cualquier macro o por medio de un evento de algún objeto (Excel, un libro, una hoja o un rango).

En este artículo, ofrecemos líneas de código ejecutable para realizar acciones con un libro o archivo de Excel. Concretamente veremos distintas formas de CERRAR, ABRIR Y GUARDAR con VBA.

El texto en verde que a veces se puede ver entre el código, es el que debe personalizar el usuario, si procede.

CERRAR UN LIBRO DE EXCEL CON VBA


1) Cierra un libro de Excel llamado "Libro1.xlsx" (comprueba primero que está abierto). Si ha habido cambios en dicho libro, pregunta si se desea guardarlos.


Sub CerrarLibro1()
   Dim TestWorkbook As Workbook
    Set TestWorkbook = Nothing
    On Error Resume Next
    Set TestWorkbook = Workbooks("Libro1.xlsx")
    On Error GoTo 0
    If TestWorkbook Is Nothing Then
       MsgBox "El archivo no estaba abierto"
    Else
       Workbooks("Libro1.xlsx").Close
    End If
End Sub

2) Cierra el libro de Excel que esta activo en este momento (pregunta si guarda los cambios).

Sub CerrarLibroActivo()
   ActiveWorkbook.Close
End sub


3) Cierra el libro de Excel que esta activo en este momento y guarda los cambios.

Sub CerrarYGuardar()
   ActiveWorkbook.Close savechanges:=True
End Sub

ABRIR UN LIBRO DE EXCEL CON VBA


4) Abrir un libro de Excel llamado "Libro1.xlsx" que está en la misma carpeta o ruta que el libro en el que estamos trabajando.


Sub AbrirLibro1MismaRuta() 

   Dim TestWorkbook As Workbook

    Set TestWorkbook = Nothing

    On Error Resume Next

    Set TestWorkbook = Workbooks("Libro1.xlsx")

    On Error GoTo 0

    If TestWorkbook Is Nothing Then
       ruta = ActiveWorkbook.Path 
       Workbooks.Open Filename:=ruta & "\Libro1.xlsx"
    Else

       MsgBox "El archivo ya estaba abierto"

    End If

End sub


5) Abre un libro de Excel llamado "Libro1.xlsx" que está en la ruta :
      C:\Carpeta1\Carpeta2\Carpeta3


Sub AbrirLibro1RutaConcreta()

    Dim TestWorkbook As Workbook

    Set TestWorkbook = Nothing

    On Error Resume Next

    Set TestWorkbook = Workbooks("Libro1.xlsx")

    On Error GoTo 0

    If TestWorkbook Is Nothing Then
       ruta = "C:\Carpeta1\Carpeta2\Carpeta3"
       Workbooks.Open Filename:=ruta & "\Libro1.xlsx"
    Else

       MsgBox "El archivo ya estaba abierto"

    End If

End sub


6) Abrir cualquier libro de Excel (se abre el cuadro de diálogo "Abrir archivo" para elegirlo).
   
Sub AbrirArchivo()
   Application.Dialogs(xlDialogOpen).Show
End Sub

GUARDAR UN LIBRO DE EXCEL CON VBA


7) Guarda los cambios en el libro de Excel activo.

Sub GuardarArchivo()
   ActiveWorkbook.Save
End sub



8) Guarda los cambios en el libro de Excel activo y abre el diálogo "Guardar como" para hacer una copia de seguridad en una ubicación a elegir.

Sub GuardarComo()
   ActiveWorkbook.Save
   Application.Dialogs(xlDialogSaveAs).Show
End sub





  José Manuel Pomares Medrano


3 comentarios: