Excel - Impedir introducción de datos si el libro esta en modo solo lectura

   
Vista:

Impedir introducción de datos si el libro esta en modo solo lectura

Publicado por Pol (6 intervenciones) el 20/03/2018 09:56:53
Hola a todos/as,

Tengo 4 excels para la introducción de datos que ejecutan una macro que hace que el libro "datos" se abra se copien los datos del formulario, guarde y cierre.

El problema que tengo que es cuando 2 personas introducen algún dato en el mismo momento, hay uno abre el libro en modo solo lectura y por lo tanto al cerrar dice que se ha de guardar una copia del archivo.

Necesitaría que una vez el formulario abra el libro "datos" si esta en modo solo lectura no me dejara enviar los datos en ese libro y que lo intente en unos segundos o cuando el libro sea de escritura y lectura.

Como lo puedo hacer?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

Impedir introducción de datos si el libro esta en modo solo lectura

Publicado por Antoni Masana (681 intervenciones) el 20/03/2018 12:22:15
Te pongo un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
c_Book = "datos.xls"
c_File = c_Ruta + "\" + c_Book
Workbooks.Open Filename:=c_File, Origin:=xlWindows
If ActiveWorkbook.ReadOnly Then
    MsgBox "Estoy en Modo READ-ONLY"
Else
    MsgBox "Me puedes actualizar"
    Call Actualizar()
End If
Windows(c_Book).Activate
ActiveWorkbook.Save
ActiveWindow.Close

La penúltima línea (.Save) no afecta porque como no hay cambios no lo guarda. la actualización debe estar done hay el Call
A mi me esta funcionando muy bien.

El proceso se ejecuta por CRON y si no lo puede actualizar me envía un correo

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Impedir introducción de datos si el libro esta en modo solo lectura

Publicado por Pol (6 intervenciones) el 20/03/2018 12:36:52
No se muy bien como adaptar la parte del call y no entiendo de entender lo del CRON, He pues exactamente lo que me has puesto y lo he adptado me salta un error en la linea del call actualizar. La macro se ejecuta con un boton al hacer click.

Gracias por tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Impedir introducción de datos si el libro esta en modo solo lectura

Publicado por Antoni Masana (681 intervenciones) el 20/03/2018 13:34:47
Lo del CRON se refiere al programador de tareas del Windows, en Unix el proceso de programar tareas se llama crontab de ahí CRON.

¿como adaptarlo?

Una vez abierto el libro:

1
Workbooks.Open Filename:=...

Tienes que poner esta condición

1
If ActiveWorkbook.ReadOnly Then

si la condición se cumple el fichero está abierto por otro usuario

Otra forma de escribirlo.

1
2
3
4
5
6
7
8
9
10
11
12
c_Book = "datos.xls"
c_File = c_Ruta + "\" + c_Book
Workbooks.Open Filename:=c_File, Origin:=xlWindows
If ActiveWorkbook.ReadOnly Then
    MsgBox "Estoy en Modo READ-ONLY"
    Windows(c_Book).Activate
    ActiveWindow.Close
    Exit Sub
End If
 
MsgBox "Me puedes actualizar"
' --- Aqui pones el codigo de actualizar

Si el libro se abre en forma Read-Only sale un aviso, lo cierra y finaliza el proceso.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Impedir introducción de datos si el libro esta en modo solo lectura

Publicado por Pol (6 intervenciones) el 20/03/2018 17:29:39
Muchas gracias. Lo he adaptado y me hace la función que yo queria auque segueramente no este de la mejor forma expresado jajaja. Lo importante es que va.

Muchas gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad