Macro cerrar archivos abiertos en red

Solicito de su apoyo para agregar una instrucción a una macro para que cierre los archivos que están abiertos en la red, el tema es que tengo una macro que ejecuto todos los días por la mañana pero el problema es que el archivo esta compartido con varios usuarios en la red y cuando alguien tiene el archivo abierto la macro me abre el archivo como solo lectura y a la hora de guardar pues me marca error. Yo lo que hago es que manualmente me voy a administración de equipos y en carpetas compartidas reviso si hay alguien que tenga abierto el archivo y si lo tienen abierto pues lo desconecto. Quisiera saber si existe alguna instrucción que me haga esta acción de manera automática.

1 respuesta

Respuesta
2

Intenta lo siguiente:

Copia la siguiente macro en un libro nuevo y lo dejas grabado en tu disco con el nombre que quieras. Después ejecuta la macro y te cerrará todos los archivos guardando los cambios en cada uno de ellos

Sub proceso()
'por luismondeo
mio = ActiveWorkbook.Name
For Each book In Workbooks
If book.Name <> mio Then
 Workbooks(book.Name).Close true
End If
Next book
End Sub

recuerda finalizar la consulta

Muchas gracias Luis por tu pronta respuesta, la macro que me diste efectivamente cierra y guarda los archivos que tengo abiertos pero mi problema es que si alguien tiene el archivo abierto mi macro va a abrir el archivo como solo lectura y no me va a dejar guardarlo, lo que necesito es cerrar el archivo que tienen abierto en la red antes de abrirlo yo para que cuando yo lo abra no se me abra como solo lectura. Te comento que yo cierro los archivos que tienen abiertos en la red de manera manual, en Windows 7 me voy a: Administración de equipos > Carpetas compartidas > Archivos abiertos > Desconectar todos los archivos abiertos y lo que quiero es hacer eso de manera automática en la macro pero no se si exista alguna manera.

Entonces, si lo he entendido bien, tendrás que ejecutar mi macro antes de la tuya

Entonces la macro que me pasaste también cerrará los archivos que tienen abiertos en red o solo los que yo tengo abiertos?

Entonces tendrás que escribir en la macro los libros que NO quieres cerrar, ejemplo:

Ahora en la macro se cerrarán todos excepto el que tiene esta macro y también el libro llamado: milibro.xlsx

Sub proceso()
'por luismondeo
mio = ActiveWorkbook.Name
For Each book In Workbooks
If book.Name <> mio and book.name <> "milibro.xlsx" Then
 Workbooks(book.Name).Close true
End If
Next book
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas