Error en macro para guardar documento

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Error en macro para guardar documento

Mensaje por elmesiasahora »

Hola , quiero darle las instruccion a un boton que te[img][img][/img]ngo en un formulario "GUARDAR" para que guarde el documento en una ruta del c:/...en un tutorial consegui este escript pero al ejecutarlo me lanza este error ???

ERROR DE SINTAXIS BASIC
NO SE PERMITE sub EN PROCEDIMEINTOS[/b]
-----------------------------------------------------------------------------------------

El tutorial dice :

Ahora, introduzca la Sub creaNuevoDocumento, alterando la variable sUrl para que conten­ga una vía de acceso completa a una plantilla de texto en su sistema, y ejecute la macro para ver el resultado.

Pero no se donde insertar la Sub creaNuevoDocumento?????????

gcias.

-------------------------------------------------
' Crea un nuevo documento a partir de una plantilla
' -------------------------------------------------
Sub creaNuevoDocumento
Dim oDesktop As Variant
Dim oDocumento As Object
Dim mPropArchivo(0) As New com.sun.star.beans.PropertyValue
Dim sUrl As String

' crea el objeto oDesktop
oDesktop = createUnoService("com.sun.star.frame.Desktop")
' define la URL del Archivo modelo, MODIFÍQUELO según su sistema
surl = "file:///D:/nad/openoffice/documentation.stw"
' define la propiedad AsTemplate como True (Verdadero)
mPropArchivo(0).Name = "AsTemplate"
mPropArchivo(0).Value = True
' crea el objeto oDocumento
oDocumento = oDesktop.loadComponentFromURL(sUrl,"_blank",0,mPropArchivo())
' INSERTAR CÓDIGO PARA SALVAR AQUÍ
End Sub

Editado por el moderador (RGB-es) para separar el mensaje del tema original por tratarse de un problema diferente. Si no lo has hecho aún por favor lee la Guía de supervivencia
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Error en macro para guardar documento

Mensaje por mauricio »

Hola a todos...

El mensaje de error es muy claro, debes de tener algo así

Código: Seleccionar todo

Sub Macro1
   Sub Macro2
   End Sub
End Sub
Eso es incorrecto, no puedes tener un procedimiento (Sub) dentro de otro.

Prueba la siguiente macro

Código: Seleccionar todo

Sub GuardandoDocumento1()
Dim sRuta As String
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"
Dim oDoc As Object
        
        sRuta = "private:factory/scalc"
        oDoc = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )

        'Establecemos la ruta y nombre donde se guardara el archivo
        'Cambia la ruta para que corresponda a tu sistema de archivo
        'Por ejemplo "C.\Mis archivos\miArchivo.ods"
        sRuta = ConvertToUrl( "/home/mau/Archivo de Calc.ods" )
        'Guardamos el archivo
        oDoc.storeAsURL( sRuta, mOpciones() )
End Sub
Con la macro anterior, creamos un documento nuevo y lo guardamos en la ruta indicada, toma nota de que si el archivo ya existe lo reemplazara sin avisarte...

El tema de abrir y guardar documentos, lo trato en mis apuntes, página 143 en adelante...
http://www.universolibre.org/archivos/A ... oBasic.odt

Saludos a todos...

Mauricio
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: Error en macro para guardar documento

Mensaje por elmesiasahora »

ok Mauricio copie y pegue todo el codigo ....no me doy cuenta donde poner la ruta donde se va a guardar el documento?????? tendria que guardarlo en C:\prueba Mauricio el formulario yo lo hago con extension .sxw por que quiero que un usuario lo complete, en realidad quiero que sea html para subirlo por intranet ..pero al hacerlo guardando como los campos desplegables y botones quedan desconfigurados....bueno gracias!!!





Sub Main
' -------------------------------------------------
' Crea un nuevo documento a partir de una plantilla
' -------------------------------------------------
Sub creaNuevoDocumento
Dim oDesktop As Variant
Dim oDocumento As Object
Dim mPropArchivo(0) As New com.sun.star.beans.PropertyValue
Dim sUrl As String

' crea el objeto oDesktop
oDesktop = createUnoService("com.sun.star.frame.Desktop")
' define la URL del Archivo modelo, MODIFÍQUELO según su sistema
sUrl = "file:///D:/nad/openoffice/documentation.stw"
' define la propiedad AsTemplate como True (Verdadero)
mPropArchivo(0).Name = "AsTemplate"
mPropArchivo(0).Value = True
' crea el objeto oDocumento
oDocumento = oDesktop.loadComponentFromURL(sUrl,"_blank",0,mPropArchivo())
' INSERTAR CÓDIGO PARA SALVAR AQUÍ
Sub GuardandoDocumento1()
Dim sRuta As String
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"
Dim oDoc As Object

sRuta = "private:factory/scalc"
oDoc = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )

'Establecemos la ruta y nombre donde se guardara el archivo
'Cambia la ruta para que corresponda a tu sistema de archivo
'Por ejemplo "C.\Mis archivos\miArchivo.ods"
sRuta = ConvertToUrl( "/home/mau/Archivo de Calc.ods" )
'Guardamos el archivo
oDoc.storeAsURL( sRuta, mOpciones() )

End sub
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: Error en macro para guardar documento

Mensaje por elmesiasahora »

Hola ,

Estoy tratando de guardar un documento qye lo tengo en :

C:\Documents and Settings\Estudio Navas\Escritorio

y se llama demo2.sxw , la pregunta es : al querer guardarlo en esta direccion C:\Documents and Settings\Estudio Navas\Escritorio\carpeta1 me da error.....ADONDE LE PONGO LA RUTA DONDE QUIERO QUE ESTE SE GUARDE ??????????

Esto lo sque de un tutorial que abajo de esta macro dice. :Te queda de tarea implementar la pregunta al usuario para reemplazar o no el archivo. Veamos algunas propiedades interesantes para guardar archivos, por ejemplo, guardar con contraseña:

NO SE COMO HACER ESA PREGUNTA?? LA QUE LE DICE AL USUARIO QUE EL DOCUMENTO EXISTE??? ............ACA LES PASO LA MACRO
GRACIAS!!!!!!!!!!!!!!





Sub AbriendoGuardandoDocumentos5()
Dim sRuta As String
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"
Dim oDoc As Object

sRuta = "private:factory/scalc"
oDoc = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )

sRuta = ConvertToUrl( "/home/mau/Archivo de Calc.ods" )
If Len( Dir( sRuta )) = 0 Then
'Guardamos el archivo
oDoc.storeAsURL( sRuta, mOpciones() )
Else
MsgBox "El archivo ya existe, no se ha guardado el nuevo archivo"
End If

End Sub
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Error en macro para guardar documento

Mensaje por mauricio »

Para saber si un archivo ya existe usas:
If Dir(sRuta) <> "" Then
MsgBox "El archivo ya existe"
End If
Pero veo que tienes problemas con las variables, con las funciones, con los métodos, con los objetos y en general, con el lenguaje de programación, esto es por que quieres correr antes de caminar, si bien no tienes la obligación de aprender, entonces, procura no ser tan disperso, aun, con todo lo que has publicado, no acierto plenamente a saber que es lo que "realmente" quieres, la mayoría del código mostrado, no es simplemente copiar y pegar, si no que tienes que "analizarlo", "entenderlo" (el paso más importante), "adaptarlo" a tus circunstancias y necesidades y "aplicarlo", por tus repetitivas continuas preguntas, no estas haciendo estos pasos, y si tu no haces el esfuerzo, no esperes que los demás lo hagan para entender tu problema...

Consulta la Guía de supervivencia para mejorar tus preguntas
Guía de supervivencia
Entre más clara, que no lo ha sido, sea tu pregunta y tu exposición, tendrá mucha más probabilidad de ser respondida, por "cualquier" usuario de nuestros foros. Te recomiendo empezar un nuevo hilo, haciendo un doble esfuerzo por ser aun, más claro...

Saludos

Mauricio
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
elmesiasahora
Mensajes: 25
Registrado: Sab Jul 04, 2009 4:18 pm

Re: Error en macro para guardar documento

Mensaje por elmesiasahora »

si Mauricio es cierto tengo mucha ansiedad y confunde mi manera de expresar mis dudas, lo que quiero hacer es un simple formulario con el cual pueda un " usuario " completar el contenido del mismo y luego poder guardarlo.
muchas gracias!!!

Gaston
Responder