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!
 

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?

Preguntas similares