Ejecutar una macro en todos los libros abiertos

Buenas, aver si pueden ayudarme.

Tengo esta Macro en el Libro EMPLEADOS:

Sub Domingo()
Range("=G1:X3000").Select
With Selection
For Each Celda In Selection
If Celda.Value Like "*Domingo*" Then
Celda.Font.ColorIndex = 5
Celda.Font.Bold = True
Celda.Font.Italic = True
Celda.Interior.ColorIndex = 45
End If
Next
End With
Range("=A1").Select
ActiveWorkbook.Sabe
ActiveWorkbook.Close
End Sub

y con ese libro abierto quisiera ejecutarla en todos los libros que también están abiertos.

La idea es abrir todos los archivos, ejecutar la macro en todos y automáticamente se cerrarían. Lo consigo hacer uno por uno pero agradecería si me ayudan a avanzar un paso.

Gracias!!!

1 Respuesta

Respuesta
1

Si vas a ejecutarla desde tu libro, en este caso 'EMPLEADOS', podes agregarle otra subrutina para que ejecute sobre el resto de libros abiertos. Se puede hacer todo en la misma rutina pero la separé para que veas bien el bucle.

Public libro1
Sub LlamaDomingo()
libro1 = ActiveWorkbook.Name
For Each wb In Workbooks
wb.Activate
Call Domingo
Next
End Sub

Sub Domingo()
Range("=G1:X3000").Select
With Selection
For Each celda In Selection
If celda.Value Like "*Domingo*" Then
celda.Font.ColorIndex = 5
celda.Font.Bold = True
celda.Font.Italic = True
celda.Interior.ColorIndex = 45
End If
Next
End With
Range("=A1").Select
ActiveWorkbook.Save
'si se trata del libro Empleados no debe cerrarlo
If wb.Name <> libro1 Then ActiveWorkbook.Close

Sub LlamaDomingo()
libro1 = ActiveWorkbook.Name
For Each wb In Workbooks
wb.Activate
Call Domingo
Next
End Sub

Solo modifique de la macro Domingo el :
ActiveWorkbook.Sabe
ActiveWorkbook.Close

para que no me cierre el libro EMPLEADOS que contiene la macro, y que siempre tiene que estar abierto. Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas