Aplicar macro a varios libros Excel sin necesidad de abrirlos

2 envíos / 0 nuevos
Último envío
quark078
Imagen de quark078
Offline
última acción: Hace 7 años 5 meses
alta: 25/10/2016 - 17:45
Puntos: 25
Aplicar macro a varios libros Excel sin necesidad de abrirlos

Hola a todos,

Mi pregunta es relacionada sobre cómo aplicar una macro a varios libros Excel sin tener que abrirlos y ejecutar la macro para cada archivo. Tengo la siguiente macro:

Sub Macro1()
'
' Macro1 Macro
'
' Acceso directo: CTRL+a
'
Sheets("ESTRATEGIAS").Select
Cells.Replace What:="EMPATES (EE)", Replacement:="EMPATES (E)", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Sheets("CALENDARIO Y RESULTADOS").Select
ActiveWorkbook.Save
End Sub

 

la cual me sustituye en las celdas de la hoja "ESTRATEGIAS" donde aparece el texto "EMPATES (EE)" por el texto "EMPATES (E)". Este pequeño cambio lo debo realizar en más de 100 archivos Excel y mi ordenador tarda muchísimo en abrir cada archivo. Supongo que habrá alguna manera de aplicar la macro a todos ellos sin necesidad de abrirlos.  La ruta donde se encuentran los archivos es:

C:\Columna 'Y'\(nombredelarchivo).xlsx

 

Muchas gracias de antemano.

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 5 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Para poder ejecutar la macro

Para poder ejecutar la macro en un libro, Excel tiene que abrirlo.

Pero no tienes que abrirlo manualmente, abrir los archivos también es algo que se puede hacer con una macro.

para esto te puede ser útil la función DIR  (http://www.necesitomas.com/recorrer-directorio-abriendo-libros)
o tal vez esto otro: http://www.necesitomas.com/trabajar-sistema-archivos

 

Si como dices, tarda mucho, puedes aplicar algunos trucos para que tarde menos, por ejemplo:

Puedes no actualizar la pantalla mientras se ejecuta la macro. (Application.ScreenUpdating=False)

Puedes poner el cálculo en manual y volver a cambiarlo a automático cuando necesites recalcular, para evitar cálculos intermedios. (Application.Calculation=xlCalculationManual)

 

 

 

------
Ya sé Excel, pero necesito más.