Error en macro para guardar documento
-
- Mensajes: 25
- Registrado: Sab Jul 04, 2009 4:18 pm
Error en macro para guardar documento
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 contenga 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
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 contenga 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
Re: Error en macro para guardar documento
Hola a todos...
El mensaje de error es muy claro, debes de tener algo así
Eso es incorrecto, no puedes tener un procedimiento (Sub) dentro de otro.
Prueba la siguiente macro
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
El mensaje de error es muy claro, debes de tener algo así
Código: Seleccionar todo
Sub Macro1
Sub Macro2
End Sub
End Sub
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
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
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
-
- Mensajes: 25
- Registrado: Sab Jul 04, 2009 4:18 pm
Re: Error en macro para guardar documento
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
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
-
- Mensajes: 25
- Registrado: Sab Jul 04, 2009 4:18 pm
Re: Error en macro para guardar documento
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
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
Re: Error en macro para guardar documento
Para saber si un archivo ya existe usas:
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
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...If Dir(sRuta) <> "" Then
MsgBox "El archivo ya existe"
End If
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
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
-
- Mensajes: 25
- Registrado: Sab Jul 04, 2009 4:18 pm
Re: Error en macro para guardar documento
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
muchas gracias!!!
Gaston