Hola necesito poner en cola otros usuarios ..
Y aparente mente de los mejores,,,
Tengo una pregunta: tengo una macro trabajando en 7 equipos diferentes conectados en red esta macro abre un archivo único y le información para cada macro en cada equipo pero tengo un problema, cuando dos personas entran al mismo tiempo la macro se descontrola, no se si es posible pero necesito saber si puedo hacer que el archivo común ponga en cola a los usuarios que intenten abrir el archivo y modificarlo...
Tengo una pregunta: tengo una macro trabajando en 7 equipos diferentes conectados en red esta macro abre un archivo único y le información para cada macro en cada equipo pero tengo un problema, cuando dos personas entran al mismo tiempo la macro se descontrola, no se si es posible pero necesito saber si puedo hacer que el archivo común ponga en cola a los usuarios que intenten abrir el archivo y modificarlo...
1 Respuesta
Respuesta de paramisolo
1
1
paramisolo, Desconozco temas financieros
Si el Libro esta compartido en la red no es posible tan solo te quedaría una solución y es que cuando lo abra algún usuario que lo haga en forma exclusiva y hasta que no lo cierre que no se vuelva a compartir, pero eso va a dejar de ser practico porque el fin de un libro compartido es eso que se pueda trabajar en él al mismo tiempo. Decide tú y si no sabes poner el código para abrir el libro forma exclusiva me lo dices y te doy las instrucciones.
>Un saludo
>Julio
>Un saludo
>Julio
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
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
Buenas tardes Julio el archivo que tengo no esta compartido esta en una carpeta compartida el archivo esta normal no tiene nada ni macros ni nada, es solo un archivo con datos.
Los 7 equipos que están en red tienen una macro que dice : abra el libro de la ruta tal y copie 10 datos y marquelos y luego guarde y cierre el libro como te decía lo que me pasa es que si dos usuarios lo abren al tiempo los dos copian los mismos datos.
La soluicion que me diste se la puse en el thisworks del archivo que consultan los siete equipos y no paso nada lo que aparentemente hace es convertir un archivo compartido en uno normal ...
Lo intente puse compartido el archivo que consultan los 7 equipos y lo que paso fue que esa macro que me diste quita el compartido y lo deja normal... porque la otra parte de la macro la que cierra el libro nunca se activa
Los 7 equipos que están en red tienen una macro que dice : abra el libro de la ruta tal y copie 10 datos y marquelos y luego guarde y cierre el libro como te decía lo que me pasa es que si dos usuarios lo abren al tiempo los dos copian los mismos datos.
La soluicion que me diste se la puse en el thisworks del archivo que consultan los siete equipos y no paso nada lo que aparentemente hace es convertir un archivo compartido en uno normal ...
Lo intente puse compartido el archivo que consultan los 7 equipos y lo que paso fue que esa macro que me diste quita el compartido y lo deja normal... porque la otra parte de la macro la que cierra el libro nunca se activa
No has entendido el funcionamiento de la macro y yo no sabía que lo que tenías compartido es una carpeta y no el Libro de Excel.
1º Si ponemos en una red un Libro de forma compartida todos podrán abrirlo al mismo tiempo y trabajar en él. Tu problema es que los datos que toman todos los usuarios son los mismos y le aparecerá resolución de conflictos porque puede darse que se estén modificando los datos al mismo tiempo, por ello te viene estupendamente las macros que te he puesto.
2º Pones el Libro en formato compartido y cuando lo abra un usuario lo tendrá en forma exclusiva, realizará sus trabajos en él y al cerrarlo es cuando se activa la segunda macro que volverá a dejar el libro en forma compartida para que lo pueda abrir otro usuario. Si mientras lo tiene abierto uno lo intenta abrir otro les aparecerá el mensaje de Excel de que el Libro esta abierto por otro usuario y les dará la opción de notificarle cuando el Libro vuelva a estar disponible para abrirlo.
>Un saludo
>Julio
1º Si ponemos en una red un Libro de forma compartida todos podrán abrirlo al mismo tiempo y trabajar en él. Tu problema es que los datos que toman todos los usuarios son los mismos y le aparecerá resolución de conflictos porque puede darse que se estén modificando los datos al mismo tiempo, por ello te viene estupendamente las macros que te he puesto.
2º Pones el Libro en formato compartido y cuando lo abra un usuario lo tendrá en forma exclusiva, realizará sus trabajos en él y al cerrarlo es cuando se activa la segunda macro que volverá a dejar el libro en forma compartida para que lo pueda abrir otro usuario. Si mientras lo tiene abierto uno lo intenta abrir otro les aparecerá el mensaje de Excel de que el Libro esta abierto por otro usuario y les dará la opción de notificarle cuando el Libro vuelva a estar disponible para abrirlo.
>Un saludo
>Julio
Gracias julio
Pero no entiendo como ponerlo porque solo me deshabilita el archivo compartido y no me lo vuelve a habilitar
un archivo se llama base de datos y es el archivo compartido y el otro se llama gestión que es el que tiene una macro que abre el archivo compartido toma ciertos datos y vuelve y lo cierra.
¿En qué ThisWorkbook lo pongo en base de datos o en gestión?
Pero no entiendo como ponerlo porque solo me deshabilita el archivo compartido y no me lo vuelve a habilitar
un archivo se llama base de datos y es el archivo compartido y el otro se llama gestión que es el que tiene una macro que abre el archivo compartido toma ciertos datos y vuelve y lo cierra.
¿En qué ThisWorkbook lo pongo en base de datos o en gestión?
Vamos a ver imagino que el usuario tiene un Libro que se llama Gestión.xls y que al abrirlo se ejecuta una macro que abre el Libro compartido que se llama Base de Datos.xls pues bien cuando se abre ese Libro es cuando tiene que modificar las características del propio libro Base de Datos, en él tu tienes que poner las dos macros la de Open y la de Close, este libro tiene la característica de Libro compartido pues cuando se abra (da igual que lo abra otra macro que un usuario haciendo click en él) se ejecutará la macro Open y el usuario que lo abra lo tendrá de modo exclusivo para él solo y los demás no lo podrán abrir excepto de "Solo Lectura" o esperar a que se cierre.
Cuando este Libro Base de Datos se cierre (bien por que lo cierre el usuario desde el aspa o bien porque lo cierre la macro del otro Libro una vez que haya copiado los datos) se ejecutará la macro Close y volverá a poner la propiedad del Libro a compartido y Excel notificará a los usuarios que estén esperando la comunicación de que ya está disponible para abrirlo.
Resumiendo las dos macros que te puse las tienes que poner en el ThisWorkbook del Libro Base de Datos una para que se ejecute a la apertura y otra se ejecutará al cierre.
>Un saludo
>Julio
PD: Comenta, puntúa y finaliza la consulta. No se debe tener una consulta abierta una semana desde la última contestación, te comento cada experto admite un numero de consultas si tiene pendientes por finalizar y llega al limite no puede ayudar a más personas porque no le entran.
Cuando este Libro Base de Datos se cierre (bien por que lo cierre el usuario desde el aspa o bien porque lo cierre la macro del otro Libro una vez que haya copiado los datos) se ejecutará la macro Close y volverá a poner la propiedad del Libro a compartido y Excel notificará a los usuarios que estén esperando la comunicación de que ya está disponible para abrirlo.
Resumiendo las dos macros que te puse las tienes que poner en el ThisWorkbook del Libro Base de Datos una para que se ejecute a la apertura y otra se ejecutará al cierre.
>Un saludo
>Julio
PD: Comenta, puntúa y finaliza la consulta. No se debe tener una consulta abierta una semana desde la última contestación, te comento cada experto admite un numero de consultas si tiene pendientes por finalizar y llega al limite no puede ayudar a más personas porque no le entran.
Hola Julio disculpa no sabia lo de que tenia que finalizar la aclaración
intente colocar esa macro en el archivo base de datos pero cuando lo hice no me dejo compartirlo. Entonces lo deje sin compartir corrí la macro y me salio un error de sintaxis..
Luego lo compartí pero cuando lo corrí me salio un error que decía libro oculto porque aparentemente cuando uno comparte un libro deshabilita las macros ...
¿Qué debo hacer?
intente colocar esa macro en el archivo base de datos pero cuando lo hice no me dejo compartirlo. Entonces lo deje sin compartir corrí la macro y me salio un error de sintaxis..
Luego lo compartí pero cuando lo corrí me salio un error que decía libro oculto porque aparentemente cuando uno comparte un libro deshabilita las macros ...
¿Qué debo hacer?
Vamos a ver no entiendo que haces y donde pones las macros, las tienes que poner en el propio libro Base de Datos no en el Personal. Xl (para todos los libros) porque evidentemente este archivo que es la plantilla de Excel esta oculto.
Vamos a seguir los pasos:
1º Abres el Libro de Base de Datos. Xl
2º Pulsas la combinación Alt+F11 (se abrirá el editor de VBA)
3º En el icono de la col de la izquierda ThisWorkbook (del VBAProject(Base de Datos)) haces doble click en él y ahora copia y pega estas macros de una vez:
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
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
4º Cierras el editor de VBA desde el aspa de la izquierda arriba (en rojo)
5º Pulsas en Herramientas>Compartir Libro y no activas la opción Permitir la modificación por varios usuarios a la vez...
6º Ahora pulsas en Archivo>Guardar Como y elige la carpeta donde ponerlo, y lo guardas.
7º Ahora abre el Libro que tienes Gestión.xls al abrir este libro debe de tener una macro para que al ejecutarla vaya a la carpeta compartida busque el archivo Base de Datos.xls y lo abra ( al abrirlo se ejecutará la macro que tiene en el Auto_Open Base de Datos)
* Las macros en Libros compartidos SI se ejecutan NO quedan deshabilitadas existen muchas limitaciones para Libros compartidos pero no el que no se ejecuten las macros, te dejo las limitaciones que informa el propio Microsoft en esta página:
http://office.microsoft.com/es-es/excel/HP052010803082.aspx
8º Al ejecutarse la macro Auto_Open pondrá el Libro en modo exclusivo
>Un saludo
>Julio
Si necesitas alguna aclaración más me lo dices.
Vamos a seguir los pasos:
1º Abres el Libro de Base de Datos. Xl
2º Pulsas la combinación Alt+F11 (se abrirá el editor de VBA)
3º En el icono de la col de la izquierda ThisWorkbook (del VBAProject(Base de Datos)) haces doble click en él y ahora copia y pega estas macros de una vez:
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
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
4º Cierras el editor de VBA desde el aspa de la izquierda arriba (en rojo)
5º Pulsas en Herramientas>Compartir Libro y no activas la opción Permitir la modificación por varios usuarios a la vez...
6º Ahora pulsas en Archivo>Guardar Como y elige la carpeta donde ponerlo, y lo guardas.
7º Ahora abre el Libro que tienes Gestión.xls al abrir este libro debe de tener una macro para que al ejecutarla vaya a la carpeta compartida busque el archivo Base de Datos.xls y lo abra ( al abrirlo se ejecutará la macro que tiene en el Auto_Open Base de Datos)
* Las macros en Libros compartidos SI se ejecutan NO quedan deshabilitadas existen muchas limitaciones para Libros compartidos pero no el que no se ejecuten las macros, te dejo las limitaciones que informa el propio Microsoft en esta página:
http://office.microsoft.com/es-es/excel/HP052010803082.aspx
8º Al ejecutarse la macro Auto_Open pondrá el Libro en modo exclusivo
>Un saludo
>Julio
Si necesitas alguna aclaración más me lo dices.
- Compartir respuesta
1 comentario
Muchachos.. hay otra posible solución .. crear un libro con los datos de la ejecución (Base Datos) y otro con las macros que sería la interface .. (creas una interface por usuario y ya está) .. con eso cada uno tiene su propio scenario y alimenta a la base de datos. Ahora, como le digo a mi macro que abra la BD la actualice, ¿la guarde y la cierre? Gracias. - Red Interlogix