VBA: Permitir modificaciones al abrir
Resuelto
BretonBeurre
Mensajes publicados
12
Estado
Miembro
-
fabien25000 Mensajes publicados 697 Estado Miembro -
fabien25000 Mensajes publicados 697 Estado Miembro -
Hola a todos,
Quisiera abrir un archivo protegido por contraseña a través de un macro en VBA. Además, había activado la ventana que solicita confirmación al usuario si desea realizar modificaciones en el archivo:
"El autor desea que abra "FileName" en solo lectura, a menos que necesite realizar modificaciones. ¿Desea abrirlo en solo lectura?"
Así que he escrito el siguiente código para abrir el archivo con la contraseña, pero me quedo atrapado en el mensaje de solo lectura. ¿Cómo puedo indicar en mi código que no, no deseo abrir el archivo en solo lectura, para poder realizar modificaciones (copiar/pegar datos)?
Código:
He probado con "Application.DisplayAlerts = False" pero no ha funcionado, el archivo se abre correctamente, pero en solo lectura. ¿Algunas otras ideas?
Gracias a todos.
Configuración: Windows / Edge 17.17134
Quisiera abrir un archivo protegido por contraseña a través de un macro en VBA. Además, había activado la ventana que solicita confirmación al usuario si desea realizar modificaciones en el archivo:
"El autor desea que abra "FileName" en solo lectura, a menos que necesite realizar modificaciones. ¿Desea abrirlo en solo lectura?"
Así que he escrito el siguiente código para abrir el archivo con la contraseña, pero me quedo atrapado en el mensaje de solo lectura. ¿Cómo puedo indicar en mi código que no, no deseo abrir el archivo en solo lectura, para poder realizar modificaciones (copiar/pegar datos)?
Código:
Sub abrirArchivo()
Workbooks.Open Filename:="MiArchivo", WriteResPassword:="Contraseña"
End Sub
He probado con "Application.DisplayAlerts = False" pero no ha funcionado, el archivo se abre correctamente, pero en solo lectura. ¿Algunas otras ideas?
Gracias a todos.
Configuración: Windows / Edge 17.17134
2 respuestas
Gracias a fabien25000 por haber encontrado la solución, aquí está el código a utilizar al abrir el archivo:
¡Gracias de nuevo a él!
Set wkb = Workbooks.Open(Filename:=sFileName, UpdateLinks:=False, ReadOnly:=True, WriteResPassword:="Password", IgnoreReadOnlyRecommended:=True)
¡Gracias de nuevo a él!
Hola,
no tengo tiempo para probar, pero tal vez partiendo de un msgbox que pregunte si se necesita modificación o no, si sí readonly:=true, si no false
--
Cuando solo se dispone de un martillo, todos los problemas parecen un clavo.
no tengo tiempo para probar, pero tal vez partiendo de un msgbox que pregunte si se necesita modificación o no, si sí readonly:=true, si no false
--
Cuando solo se dispone de un martillo, todos los problemas parecen un clavo.
Lo que pasa es que siempre hay que poder abrir el archivo manualmente, con la opción de abrirlo en Solo lectura o no.
Así que intenté hacer un cuadro de mensaje al abrirlo, pero no se pueden modificar los atributos de un archivo abierto. Así que tuve que escribir un código que, en función de la respuesta del usuario, cierra el archivo y luego lo vuelve a abrir cambiando su atributo. Excepto que al momento de reabrirlo, me vuelve a preguntar si quiero en Solo lectura o no… Incluso con "Application.DisplayAlerts = False"... Una pena ;)
Así que intenté hacer un cuadro de mensaje al abrirlo, pero no se pueden modificar los atributos de un archivo abierto. Así que tuve que escribir un código que, en función de la respuesta del usuario, cierra el archivo y luego lo vuelve a abrir cambiando su atributo. Excepto que al momento de reabrirlo, me vuelve a preguntar si quiero en Solo lectura o no… Incluso con "Application.DisplayAlerts = False"... Una pena ;)
Por el código VBA, tengo que poder modificar y guardar "MonFichier.xlsx". Pero manualmente, debo decir al abrir si quiero estar en solo lectura o no. Así que no entendí exactamente lo que querías hacer, pero al final en mi código debería terminar diciéndole que guarde las modificaciones. ¡Gracias igual por las ideas! ;)