Macros para trabajar con libros




Macro par crear un nuevo libro

'Crear un nuevo libro
    Workbooks.Add
End Sub


Macro para enviar mensaje de bienvenida al abrir el libro

Private Sub Workbook_Open()
    MsgBox "Hola, Mundo"
End Sub


Macro para abrir el libro y colocarse en una hoja determinada

Private Sub Workbook_Open()
    Sheets("Hoja3").Select
End Sub


Macro para abrir un libro

Sub AbrirLibro()
    Workbooks.Open "C:\Users\Ricardo\Desktop\Alerta.xlsm"
End Sub


Macro para cerrar el libro activo

Sub CerrarLibro()
    ActiveWorkbook.Close
End Sub


Macro para contar los libros abiertos

Sub ContarLibrosAbiertos()
    MsgBox Workbooks.Count
End Sub


Nombre de la primera hoja de un libro

Sub NombreHoja()
'Nombre de la primera hoja de trabajo
'
    MsgBox Worksheets(1).Name    
End Sub


Macro para leer un libro cerrado

Sub LeerLibroCerrado()
Dim ArchivoEntrada As String
Dim wb As Workbook

    'Ruta del archivo cerrado - fuente
    ArchivoEntrada = "C:\Enero.xlsx"
    
    'Abrir el libro fuente a través del objeto wb.  Sólo lectura
    Set wb = Workbooks.Open(ArchivoEntrada, True, True)
    
    'Copiar del libro cerrado el rango A1:A5 de la hoja 1 y
    'pegarlo en el libro abierto en la hoja 1, en el rango "A1"

    wb.Worksheets(1).Range("A1:A5").Copy ThisWorkbook.Worksheets(1).Range("A1")
    
    'Cerrar el libro fuente y liberar el espacio de la variable wb
    wb.Close False
    Set wb = Nothing
    
End Sub


Macro para leer los nombres de las hojas del libro activo

Sub nombreHojasLibro()
'Lee el nombre de cada hoja del libro activo y lo escribe en la ventana inmediato/ depurador
Dim i As Integer
Dim nombreHoja As String
Dim numeroHojas As Integer

numeroHojas = ActiveWorkbook.Worksheets.Count
For i = 1 To numeroHojas
    nombreHoja = ActiveWorkbook.Worksheets(i).Name
    Debug.Print i, nombreHoja
Next i

End Sub