Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel de solo lectura, cambiar acceso, guardar y volver a solo lectura

1,304 views
Skip to first unread message

Jordi

unread,
Oct 30, 2009, 8:30:30 AM10/30/09
to
Hola tengo un excel de solo lectura, lo que quiero es abrirlo, cambiar
a modo readwrite, hacer operaciones, guardar y volverlo a modo de solo
lectura, ahora bien tengo el siguiente código en el inicio:

Public Sub Auto_Open()
Dim Fichero As String

Select Case LCase(User())
Case "jorcaes"
Unblock
Case Else
ComprobamosEntrada
End Select
On Error Resume Next
End Sub

Private Sub Unblock()
ThisWorkbook.ChangeFileAccess Mode:=xlReadWrite
End Sub

Pero me da el siguiente error (lo subo a un server) http://img130.yfrog.com/i/dibujo2.jpg/
Además, cómo sería el código para guardar y cerrar?
Espero su ayuda, un saludo!

H�ctor Miguel

unread,
Oct 30, 2009, 11:41:23 PM10/30/09
to
hola, Jordi !

1) existen (al menos) dos formas de solo lectura para los archivos de excel...
a) al momento de guardarlos (archivo / guardar como... / buscar en las opciones) y marcar la opcion de:
recomedar que se abra como de solo lectura (a la vez que) puedes asignarle una clave contra-escritura al abrirse
y/o cuando se abre y NO se provee la clave que tenga contra la apertura del archivo
b) modificando las propiedades del archivo desde el sistema operativo (NO es exclusivo de excel, sino de windows)

2) si te refieres a cambiar el modo de acceso (exclusivo o no) al archivo SOLO EN/durante la sesion de excel...
a) consulta en la ayuda de vba-excel por el metodo .ChangeFileAccess y la propiedad .ReadOnly
b) si estableces (en la sesion) un modo de acceso de solo lectura... -> ActiveWorkbook.ChangeFileAccess xlReadOnly
- NO es posible que el usuario le guarde cambios (seria necesario usar un guardar como... y darle OTRO nombre)
- si suponemos que esta guardado con el metodo anterior... la siguiente vez que se abra... regresa al modo xlReadWrite

3) en via de mientras, una (posible) alternativa es una macro (despues de las modificaciones) para
- quitar el modo de solo lectura
- guardar los cambios
- reponer el modo de solo lectura

Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadWrite
ThisWorkbook.Save
ThisWorkbook.ChangeFileAccess xlReadOnly
Application.DisplayAlerts = True

comentas por donde van los tiros ?
saludos,
hector.

__ OP __
> ... tengo un excel de solo lectura, lo que quiero es abrirlo, cambiar a modo readwrite
> hacer operaciones, guardar y volverlo a modo de solo lectura, ahora bien tengo el siguiente codigo en el inicio:


> Public Sub Auto_Open()
> Dim Fichero As String
> Select Case LCase(User())
> Case "jorcaes"
> Unblock
> Case Else
> ComprobamosEntrada
> End Select
> On Error Resume Next
> End Sub
>
> Private Sub Unblock()
> ThisWorkbook.ChangeFileAccess Mode:=xlReadWrite
> End Sub
>
> Pero me da el siguiente error (lo subo a un server) http://img130.yfrog.com/i/dibujo2.jpg/

> Ademas, como seria el codigo para guardar y cerrar?


Jordi

unread,
Oct 31, 2009, 5:11:13 AM10/31/09
to
On 31 oct, 04:41, "Héctor Miguel" <NOhemiordiS...@PLShotmail.com>
wrote:

Pues he probado esto mismo, pero no me funciona me da el error que
comento antes, es decir me sale un aviso de que el fichero está
abierto...
Alguna otra solución o algún fichero de ejemplo?
Muchas gracias, un saludo.

H�ctor Miguel

unread,
Oct 31, 2009, 3:54:00 PM10/31/09
to
hola, Jordi !

> ... he probado esto mismo, pero no me funciona me da el error que comento antes
> es decir me sale un aviso de que el fichero esta abierto...
> Alguna otra solucion o algun fichero de ejemplo? ...

de la imagen con el mensaje que obtienes, no es claro si el 'otro usuario' eres tu mismo u otro (???)
(hasta donde se) los errores por infraccion de uso compartido (generalmente) suceden:
cuando dos (o mas ?) aplicaciones intentan trabajar con un mismo archivo (prueba deshabilitando tu antivirus)

el proceso que aborda excel para guardar es:
1) guarda una copia termporal con un nombre aleatorio
2) (si tiene exito) BORRA el original y renombra el temporal
=>aqui es donde... (p.e.) un anti-virus o un cambio de mapeo pudiera interferir en el proceso<=

(me parece que)... falta un poquitin de informacion adicional :))
(solo por no dejar de suponer)...
-> sucede con cualquier archivo ? (o solo con algunos)
-> unidades en red ?
-> in/suficientes permisos/derechos/... para escribir en ciertas ubicaciones ?
-> problemas de desconexion con el servidor (por tiempos o alguna otra situacion) ?
-> algun antivirus inoportuno ? (al momento preciso en que excel trata de guardar)

asumiendo que se trata de un libro compartido en unidades en red...
- si se trata del unico archivo donde falla EL MISMO tipo de acciones por macro (cambios, guardado, etc,)
es probable que ese archivo este corupto (o en riesgo de corrupcion) -?-
- la otra posibilidad es que ciertas acciones no estan permitidas (aun por macros) cuando se trata de archivos compartidos -?-
- una alternativa mas, pudiera ser por razones de seguridad/permisos/tiempos de des-conexion/mapeos/... etc. -> de la red -?-
- otra mas, es que los archivos temporales no esten siendo eliminados de manera normal al terminarse las aplicaciones -?-
- (probablemente) existira un numero de otros factores que pudiera estar interviniendo en el proceso del guardado (anti-virus, etc.) -?-

en tanto comentas datos adicionales... ve si te sirve la informacion de los siguientes articulos:
XL2000 Los cambios no se guardan en servidor HTTP o FTP Web
http://support.microsoft.com/default.aspx?scid=kb;es-es;Q210780
XL2000: Los libros compartidos almacenados en el servidor Web de Office se abren como de solo lectura
http://support.microsoft.com/default.aspx?scid=kb;es-es;Q229483

comentas (si detectas) algun detalle mas... significativo/descriptivo/concreto/... ?
saludos,
hector.

__ previos __

0 new messages