Macro para seleccionar otro archivo .ODS

Discute sobre la aplicación de hojas de cálculo
Responder
jpherce
Mensajes: 9
Registrado: Vie Dic 11, 2009 4:15 pm

Macro para seleccionar otro archivo .ODS

Mensaje por jpherce »

Tengo el siguiente problema:
Tengo una aplicación (archivo) CALC que debe llenar datos desde esta hoja (C:/Users/BEA/Documents/Archivos de Trabajo/Formularios.ods) a Otro archivo distinto.
Al ejecutar una macro debería de:
Seleccionar el otro archivo, en caso de que ya esté abierto, si el archivo no está abierto, entonces abrirlo.

El problema es que siempre abre una copia del archivo en forma de sólo lectura, lo que produce, después de varios reportes llenados, que tengamos muchos archivos abiertos sólo de lectura y todos completamente diferentes.

Mi pregunta es:
¿Cuales serían las instrucciones para acceder a un archivo diferente?
¿El problema puede ser que las dos hojas en cuestión están en dos diferentes directorios?
Es muy importante que pueda trabajar desde diferentes directorios para poder trabajar desde diferentes sitios de mi red.
De antemano agradezco sus colaboraciones

Gracias

OPTION EXPLICIT
Sub AbriendoArchivos()
REM Seleccionar otro documento CALC, en caso de no encontrarlo, abrirlo el documento

Dim sRuta As String
Dim sArchivo As String
Dim mArg()
Dim oDocumento As Object
Dim oSheet as Object
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"

REM nombre del documento .ODS que se desea seleccionar
sArchivo = "C:/Users/BEA/Documents/Reporte BPM Fert.ods"
On Error Goto CONTROLERROR

INSTRUCCIONES PARA SELECCIONAR OTRO DOCUMENTO
Worksheets( sArchivo ). Activate

Exit Sub

CONTROLERROR:
sRuta = ConvertToUrl( sArchivo )
oSheet = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )
On Error Goto 0
End Sub
OpenOffice 3.1 en Windows 7 Professional/ OpenOffice 2.4 en Ubuntu 9.04
Neggo
Mensajes: 8
Registrado: Mar Dic 29, 2009 5:12 pm
Ubicación: Catalunya

Re: Macro para seleccionar otro archivo .ODS

Mensaje por Neggo »

Hola de nuevo jpherce,

Si entiendo bien tienes una aplicación en un archivo calc, llamemos-le calcA.ods que tiene origen de datos en otro archivo .ods calcB.ods.

Sí no estoy mal informado una hoja de datos solo admite una abertura en modo escritura, los demás intentos de acceder a esta hoja, solo conseguirán abrir en modo lectura.

La explicación en algún punto parece un poco ambigua. Cuando dices que al ejecutar la macro debería de: Seleccionar el otro archivo, a cual te refieres? Al que llamo calcA.ods (al que te refieres como aplicación calc y con ruta C:/..Formularios.ods) o al que llamas otro archivo distinto. Este otro archivo distinto se trata también de un archivo calc.ods?

El problema no creo que tenga nada que ver en si el archivo esta en un directorio o en otro.

Se que no te aporto mucho pero visto que des del 11 de diciembre no hay respuesta, pues te hago llegar mis comentarios. Es VBA lo que hay escrito?

Si tenes que trabajar con varios usuarios de forma simultanea, porque no intentar implementar este origen de datos y esta aplicación en Base, especialmente diseñado para soportar accesos concurrentes ?

Un saludo,

Neggo
Versi??n OpenOffice 3.1
SO W Vista
mriosv
Mensajes: 2335
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Macro para seleccionar otro archivo .ODS

Mensaje por mriosv »

¿Sabes que puedes establecer vínculos entre archivos de calc, que cuando lo abras te pregunte si quieres actualizar los vínculos, o bien actualizarlos cuando te interese (Menú-Editar/Vínculos)?.

Puedes realizar vínculos calculados mediante INDIRECTO(), de forma que por ejemplo almacenes en una sola celda el nombre del fichero al que quieres vincular y evitar tener que introducirlos varias veces, incluso puedes utilizar formulas de mátriz para vincular.

Además tienes las DDE(), que puedes crear copiando las celdas de fichero origen Ctrl-C y con Pegado Especial (Ctrl-V) en el fichero destino, puedes seleccionar la forma de pegar si seleccionas DDE() genera las funciones de vinculación, en cada celda automáticamente. (Si haces pruebas los dos ficheros tiene haber sido grabados al menos una vez).

También existe un modo de trabajo compartido para las hojas de calc, que permite mantener actualizado (Con algunas limitaciones) los datos entre los distintos usuarios que la tengan abierta. Menú-Herramientas/Compartir.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
Responder