[RESUELTO]Guardar copia de un doc con el nombre de una celda

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
EDGARD
Mensajes: 10
Registrado: Mar Feb 23, 2010 8:28 pm

[RESUELTO]Guardar copia de un doc con el nombre de una celda

Mensaje por EDGARD »

Guardar copia de un documento con el nombre de una celda

Bueno el nombre dice todo, pero solo necesito un archivo que cuando pulse un boton guarde una copia del documento con el nombre de una celda, lo cierre y vuelva al archivo. Consegui este codigo en el foro pero Quisiera q no me pida la ubicacion donde guardar sino q ya este establecida la direccion en la macro.

Este proyecto en totalmente aparte al q tengo en otro tema. Al final lo publico para cualquiera q le pueda servir.

Código: Seleccionar todo

        Sub GuardarArchivo2()
        Dim oDlgCarpeta as Object
        Dim sRuta As String
        Dim oHoja As Object
        Dim oCelda As Object
        Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"

                'Servicio para seleccionar una ruta, solo la carpeta
                oDlgCarpeta = CreateUnoService ("com.sun.star.ui.dialogs.FolderPicker")
               
                With oDlgCarpeta
                        'El título del cuadro de diálogo
                        .Title = "Selecciona el directorio donde guardar el nuevo archivo"
                        'El directorio predeterminado, si usas Windows puede ser D:\Mis documentos
                        .DisplayDirectory = ConvertToUrl("/home/mau")
                End With
               
                'Lo mostramos
                If oDlgCarpeta.Execute() Then
                   'Obtenemos la ruta seleccionada por el usuario
                   sRuta = oDlgCarpeta.Directory
                   'La hoja donde se tomara el dato para el nombre del archivo
                   oHoja = ThisComponent.getSheets().getByName("Hoja1")
                   oCelda = oHoja.getCellRangeByName("A1")
                   'Construimos la ruta completa
                   sRuta = sRuta & "/" & oCelda.getString() & ".ODS"
                 'Guardamos el archivo
                    ThisComponent.storeAsURL( sRuta, mOpciones() )
                    MsgBox "Archivo guardado correctamente"
                Else
                    MsgBox "Proceso cancelado"
                End If

        End Sub
Última edición por EDGARD el Mié Mar 24, 2010 7:58 pm, editado 1 vez en total.
OpenOffice 3.2 en Windows 7 Ultimate/OpenOffice 3.2 Windows XP
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Guardar copia de un documento con el nombre de una celda

Mensaje por mauricio »

Hola...

La siguiente modificación a la macro, te guarda el archivo en la carpeta especificada en sRuta y con el nombre de la celda A1 de la Hoja1

Código: Seleccionar todo

Sub GuardarArchivo3()
Dim sRuta As String
Dim oHoja As Object
Dim oCelda As Object
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"

     'La ruta que quieras aquí
     sRuta = "/home/usuario/carpeta"
     'La hoja donde se tomara el dato para el nombre del archivo
     oHoja = ThisComponent.getSheets().getByName("Hoja1")
     oCelda = oHoja.getCellRangeByName("A1")
     'Construimos la ruta completa
     sRuta = ConvertToUrl( sRuta & "/" & oCelda.getString() & ".ODS" )
     'Guardamos el archivo
     ThisComponent.storeAsURL( sRuta, mOpciones() )
     MsgBox "Archivo guardado correctamente"

End Sub
Si esto responde tu pregunta, por favor edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
EDGARD
Mensajes: 10
Registrado: Mar Feb 23, 2010 8:28 pm

Re: Guardar copia de un documento con el nombre de una celda

Mensaje por EDGARD »

Ok, apenas tenga el documento listo le pongo RESUELTO.

Saludos y gracias.
OpenOffice 3.2 en Windows 7 Ultimate/OpenOffice 3.2 Windows XP
Responder