Quiero que un archivo Microsoft Excel compartido en una red solo pueda estar abierto por un usuario

Explico mi problema: utilizamos un archivo excel que puede ser abierto por cualquier usuario de la red, pero cuando otro ya lo tiene abierto necesito que ningún otro usuario lo pueda abrir, ni siquiera en solo lectura ¿es eso posible?
{"Lat":-32.8426736319543,"Lng":-60.556640625}

1 respuesta

Respuesta
1
Solo encuentro una solución y es que cada vez que lo abra un usuario le cambie el uso de Libro compartido a uso exclusivo, y que la macro close vuelva a compartirlo al cerrarlo, sería algo así:
Private Sub Workbook_Open()
'Quitamos las alertas
Application.DisplayAlerts = False
'Comprobamos si el libro esta compartido
If ActiveWorkbook.MultiUserEditing Then
'Si esta compartido, lo ponemos en modo exclusivo
ActiveWorkbook.ExclusiveAccess
End If
'Activamos alertas
Application.DisplayAlerts = True
End Sub
_________________________________________________________________
Esto para la apertura y la siguiente para el cierre del libro guardando los cambios
Private Sub Workbook_Close()
'Quitamos las alertas
Application.DisplayAlerts = False

'Lo guardamos y lo ponemos en modo compartido
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, _
accessMode:=xlShared
End If
'Activamos las alertas
Application.DisplayAlerts = True
End Sub
Esto lo pones en un modulo insertado en ThisWorkbook
Espero que te funcione no he podido comprobarlo pues no dispongo de una red.
>Un saludo
>Julio
En realidad el libro no figura como compartido, y la solución que me das, aunque muy buena, no es posible para estos usuarios porque su conocimiento de excel es mínimo.
Bueno, no se si existe otra respuesta. Sino avisame así finalizo la consulta, gracias
La respuesta que te dí no implicaba que el cambio lo hiciesen los usuarios, según te lo he puesto en la apertura del archivo y en el cierre, Visual Basic lo hace solo sin implicación de los usuarios, es más, ellos ni se van a dar cuenta de que han abierto el libro de forma exclusiva, tan solo ocurrirá que si el archivo lo tiene uno de ellos abierto y otro usuario pretende abrirlo, Excel les avisará que el archivo se encuentra abierto por otro usuario y que no puede abrirlo.
>Un saludo
>Julio
*Tan solo ejecuta el editor de VBA y en un módulo insertado en ThisWorkbook pones las dos macros que te he puesto en la contestación anterior, tampoco importa que no hayas compartido el libro, quita la linea de debajo de 'Comprobamos si el libro está compartido
olvide decirte que tambien tienes que eliminar la linea que pone End If si no te dará error te saldrá End If sin If.
>Un saludo
>Julio
Muchas gracias julio por tu pronta respuesta y preocupación.
Te comento que inserté los módulos tal cual me los enviaste y aún sigue saliendo al usuario 2, el mensaje que el libro ya esta abierto por otro usuario y ofrece tres opciones:
Solo lectura
Notificar
Cancelar
En realidad yo quiero que aparezca ese mismo cartel pero solo con la opción "cancelar", decime si esto es posible, y si no avisame para finalizar la pregunta
Gracias por todo
No es posible, te iva a advertir que el mensaje saldría porque es una función de excel no te deja modificarlo pero te permite verlo sin hacer cambios, o te avisa cuando el archivo ha quedado libre nuevamente.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas