Curso Excel VBA y Macros – Cap. 13 – Archivos: abrir, cerrar, guardar y referencias a libros

<<CURSO COMPLETO EN YOUTUBE>>

Ya hemos visto cómo trabajar con rangos de celdas, cómo hacer referencias, sus propiedades y métodos más usados. También vimos cómo trabajar con hojas y usamos algunas propiedades y métodos, así como las diferentes maneras de hacer referencias.

En este capítulo veremos cómo trabajar con archivos y 4 maneras con las que podemos trabar con ellos:

  1. ActiveWorkbook. Trabajar con el archivo activo.
  2. ThisWorkbook. Trabajar sobre el mismo archivo que contiene las macros que ejecutamos.
  3. Workbooks(1). El 1 hace referencia a índice de archivos.
  4. Workbooks(“Libro1.xlsx”). Podemos trabajar con los nombres de los archivos.

Ver video Capítulo 13 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

ActiveWorkbook. Libro o archivo activo

Si tenemos varios archivos abiertos, el Libro activo será el que estará en primer plano, o en otras palabras, el libro el cual estamos usando para introducir fórmulas y funciones. Si usamos la combinación de teclas Alt + Tabular y elegimos una ventana, el archivo que se active, será el Libro activo.

En el siguiente ejemplo mostraremos el nombre del archivo activo.

MsgBox ActiveWorkbook.Name

ThisWorkbook. Este libro

Cuando deseamos trabajar sobre el archivo donde están escritas las macros usamos ThisWorkbook y con esto nos aseguramos de estar trabajando sobre el archivo adecuado.

En las siguientes líneas vemos las propiedades Name para mostrar el nombre del archivo, FullName para mostrar la ruta completa completa y el nombre del archivo, y Path para mostrar solo la ruta donde está alojado el archivo.

MsgBox ThisWorkbook.Name
MsgBox ThisWorkbook.FullName
MsgBox ThisWorkbook.Path

Colecciones de archivos

Workbooks es la colección de archivos abiertos en Excel, y Addins es la colección de complementos instalados en Excel, activos o no. Usaremos la propiedad Count para mostrar la cantidad de archivos y de complementos.

MsgBox Workbooks.Count
MsgBox AddIns.Count

Hacer referencia a archivos por su número de índice

Así como las hojas, los archivos abiertos también se podrán identificar mediante un índice, comenzando por el número 1. Cuanto tenemos varios archivos abiertos, el que hace referencia al número 1 es el que se abrió primero y así sucesivamente. Regularmente el primer archivo es el libro de macros PERSONAL.

MsgBox Workbooks(2).Name

Hacer referencia a archivos mediante su nombre

Si usamos Workbooks, entre paréntesis podemos capturar el nombre de un archivo. Si el archivo está abierto solo hacemos referencia al nombre y extensión, y si el archivo está cerrado, deberemos ingresar la ruta completa y el nombre.

En el siguiente ejemplo mostramos la ruta del archivo Libro1.xlsx

MsgBox Workbooks(“Libro1.xlsx”).Path

Y en las siguientes dos líneas capturamos valores en la primera hoja y el rango A1, tanto de ThisWorkbook y ActiveWorkbook.

ThisWorkbook.Sheets(1).Range(“A1”).Value = “prueba1”
ActiveWorkbook.Sheets(1).Range(“A1”).Value = “prueba2”

Abrir archivos

Usando la colección Workbooks y su vez el método Open, abriremos archivos especificando la ruta completa del archivo y el nombre con extensión.

Workbooks.Open Filename:=”C:\Users\Sergio Campos\Desktop\Libro1.xlsx”
Workbooks.Open “C:\Users\Sergio Campos\Desktop\Libro1.xlsx”

Cerrar archivos

Usando cualquiera de las maneras de hacer referencia a archivos, usaremos el método Close para cerrar archivos. Con el parámetro SaveChanges le definiremos si queremos guardar el archivo al cerrar (True) o cerrarlo sin guardar cambios (False).

Workbooks(“Libro1.xlsx”).Close True

Caso práctico

Haremos un repaso a algunas macros que ya hemos visto en capítulos anteriores. Seguiremos los siguientes pasos mediante macros:

  • Copiamos el rango A1:B10 del archivo 013 – Referencia y trabajo con archivos.xlsm
  • Creamos un archivo nuevo.
  • Pegamos las celdas en el archivo nuevo.
  • Ajustamos ancho de las celdas.
  • Guardamos el archivo en el escritorio.
  • Cerramos guardando cambios.

HojaOrigen.Range(“A1:B10”).Copy
Workbooks.Add
ActiveSheet.Paste
Cells.Columns.AutoFit
Application.CutCopyMode = False
ActiveWorkbook.SaveAs “C:\Users\Sergio Campos\Desktop\nuevo.xlsx”, _
xlOpenXMLStrictWorkbook
ActiveWorkbook.Close True

Descarga el archivo de ejemplo

013 – Referencia y trabajo con archivos.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...