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

30/10/2009 - 13:30 por Jordi | Informe spam
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!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
31/10/2009 - 04:41 | Informe spam
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?
Respuesta Responder a este mensaje
#2 Jordi
31/10/2009 - 10:11 | Informe spam
On 31 oct, 04:41, "Héctor Miguel"
wrote:
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?



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.
Respuesta Responder a este mensaje
#3 Héctor Miguel
31/10/2009 - 20:54 | Informe spam
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/defaul...es;Q210780
XL2000: Los libros compartidos almacenados en el servidor Web de Office se abren como de solo lectura
http://support.microsoft.com/defaul...es;Q229483

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

__ previos __
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?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida