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

Asked By Jordi on 30-Oct-09 01:36 PM
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=F3digo 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:=3DxlReadWrite
End Sub

Pero me da el siguiente error (lo subo a un server) http://img130.yfrog.com=
/i/dibujo2.jpg/
Adem=E1s, c=F3mo ser=EDa el c=F3digo para guardar y cerrar?
Espero su ayuda, un saludo!




Héctor Miguel replied to Jordi on 30-Oct-09 11:41 PM
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 __
Jordi replied to Héctor Miguel on 31-Oct-09 12:10 PM
el...
n las opciones) y marcar la opcion de:
puedes asignarle una clave contra-escritura al abrirse
ra la apertura del archivo
tivo (NO es exclusivo de excel, sino de windows)
SOLO EN/durante la sesion de excel...
ess y la propiedad .ReadOnly
... -> ActiveWorkbook.ChangeFileAccess xlReadOnly
ecesario usar un guardar como... y darle OTRO nombre)
. la siguiente vez que se abra... regresa al modo xlReadWrite
las modificaciones) para
modo readwrite
n tengo el siguiente codigo en el inicio:
.com/i/dibujo2.jpg/

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=E1
abierto...
Alguna otra soluci=F3n o alg=FAn fichero de ejemplo?
Muchas gracias, un saludo.
Héctor Miguel replied to Jordi on 31-Oct-09 03:54 PM
hola, Jordi !


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 __