[RESUELTO] Completar macro "Guardar como" para que tome...

Discute sobre la aplicación de hojas de cálculo
Responder
Avatar de Usuario
osmio
Mensajes: 68
Registrado: Mié Jul 22, 2009 8:04 pm

[RESUELTO] Completar macro "Guardar como" para que tome...

Mensaje por osmio »

Hola Amigos:
En su estupendo libro, Mauricio, escribe la siguiente subrutina que denomina "Sub GuardarArchivo1()" y presenta la ventana de dialogo de "Guardar como" ahora, en la parte final escribe
" 'Lo mostramos
If oDlgGuardarArchivo.Execute() Then
mArchivo() = oDlgGuardarArchivo.getFiles()
'Solo te muestro la ruta y nombre de archivo seleccionado
'Solo te resta guardar el archivo
MsgBox ConvertFromUrl( mArchivo(0) )
'Solo te resta guardar el archivo
Else
MsgBox "Proceso cancelado"
End If

End Sub

Entonces tengo dos dudas, una mas seria que la otra: 1) He agregado mArchivo().store y mArchivo().close para guardar el archivo y me di cuenta que no funciona pienso que seguramente tengo una confusion entre variable y array, es decir no se cual es el nombre que toma el archivo para guardar . ¿ Alguien puede decirme como seria la sentencia correcta? (2) Si deseara que tomase el nombre de una celda particular por defecto (que en este caso es el numero de orden de fabricacion) como debiera armar la sentencia para que "guardar como" apunte a dicha celda?

Gracias de antemano.

Abrazos
Última edición por SLV-es el Jue Sep 04, 2014 1:19 pm, editado 2 veces en total.
Razón: Marcar como resuelto
Snow Leopard 10.6.4, intel, RAM 4 Gb. Ooo 3.3 dev
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Completar macro "Guardar como" para que tome...

Mensaje por mauricio »

Hola Osmio:

O soy mal maestro o eres mal estudiando, jejeje, es broma, vamos por partes:

mArchivo() = oDlgGuardarArchivo.getFiles()

getFiles siempre regresa una matriz, aunque solo se seleccione un archivo, por lo tanto, en mArchivo(0) estará la ruta y nombre que el usuario selecciono para guardar el archivo, puedes guardarla en una variable, aunque no es necesario

sRuta = ConvertToURL(mArchivo(0))

Página 47 en adelante para repasar matrices

Ahora si, en sRuta, tenemos la ruta y nombre del archivo donde el usuario quiere guardar el nuevo archivo, ojo, ¿dijimos nuevo?, así es, por lo que el método store, no te funcionará, ya que este método solo sirve con documento "previamente" guardados o existente.

Página 143 en adelante para guardar un archivo nuevo o uno existente con otro nombre

Para tomar el valor de una celda, específicamente es:

oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
sValor = oHojaActiva.getCellRangeByName( "E5" ).getString()

Páginas 167 en adelante, y 209 en adelante

Si entendí bien lo que quieres, es que con el valor de una celda se guarde como nombre del archivo, ¿es correcto?, si es correcto, con sRuta y sValor, debes de trabajar para armar la ruta y nombre correctos, si esto es así, entonces, lo que necesitas es que el usuario seleccione solo la ruta donde se guardara el archivo, no el nombre, ya que este lo obtendrás de una celda...

A estudiar compañero

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
Avatar de Usuario
osmio
Mensajes: 68
Registrado: Mié Jul 22, 2009 8:04 pm

Re: Completar macro "Guardar como" para que tome...

Mensaje por osmio »

Hola Mauricio:
Muchas gracias por tu respuesta.
Definitivamente son mal estudiante. Tengo 50 años y voy perdiendo la velocidad de aprendizaje, la biologia es inexorable. No obstante, tecnologicamente en los ultimos 6 meses sali de windows y me fui a mac y en otra a linux, sali del paquete de office y estoy con openoffice, hice una red inalambrica entre las 5 computadoras de casa (quedan 3 con XP, todavia)...o sea pido disculpas......pero desde la primer microcifra cientifica alla por el ´75 hasta hoy hubo demasiados cambios...

Voy a releer lo que me dices, voy a investigar un poco mas.....y muchas gracias nuevamente por tu paciencia.

Abrazo

Daniel
Snow Leopard 10.6.4, intel, RAM 4 Gb. Ooo 3.3 dev
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Completar macro "Guardar como" para que tome...

Mensaje por mauricio »

Mi estimado Daniel:

Va mi doble reconocimiento por tu valentía para no arredrarte ante el campo "tecnológico"... en reconocimiento a ello... te he preparado un ejemplo "casi" completo de:

Solicitar al usuario una ruta para guardar el archivo
Toma desde una celda de una hoja, el nombre del archivo a guardar
Guardarlo

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
Te dejo un abrazo desde tierras mexicanas

Mauricio


P.D. Si tienes más dudad de programación, por favor, usa el foro correcto: http://user.services.openoffice.org/es/ ... m.php?f=50
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
osmio
Mensajes: 68
Registrado: Mié Jul 22, 2009 8:04 pm

Re: Completar macro "Guardar como" para que tome...

Mensaje por osmio »

Hola Mauricio:
Muchas gracias por lo que hiciste y por tus palabras. Mañana me levanto temprano para estudiar esa subrutina. Lamento haber usado demasiado tu tiempo y haberme equivocado de foro, pero lei Calc y me entusiasme, cualquier duda seguiré tu recomendacion.
En pocas lineas, les cuento como hobby me ocupo de los gps y tema de cartografia, de manera que cualquier cosa en que pueda colaborar.....o que necesites ayuda (vale para cualquiera del foro) o duden en contactarse. Mi tema laboral es el packaging y dentro de esto mi especialidad son las tintas. Asi que si puedo colaborar con algo de esto, adelante.

Tu pais es bellisimo y Guadalajara es especial. Su cancha de golf.... una exquisitez.

Un gran saludo y cuando estudie un poco mas ire comentando de mis avances.

Nuevamente, gracias
Snow Leopard 10.6.4, intel, RAM 4 Gb. Ooo 3.3 dev
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Completar macro "Guardar como" para que tome...

Mensaje por mauricio »

Hola Daniel:

No lamentes nada, al contrario, con cada respuesta que doy, como decía la ilustre Doña Sor Juan (Ines de la Cruz) -ignoro menos-.

Si te gusta la cartografia, tal vez puedas colaborar en la creación del mapa libre del mundo: http://www.openstreetmap.org por ahí nos vemos.
Te cuento que tengo una carrera técnica en Topografía y fotogrametría, así que no desconozco estos temas.

Si, hay lugares bellos en este país, (si un día regresas por acá aquí tienes casa para pernoctar), lo peor que tenemos es el "crimen organizado" y el "gobierno desorganizado", pero en fin, dice por ahí que los pueblos tienen los gobiernos que se merecen.

Me es muy útil la retroalimentación del libro, si no son dudas, pues estas son mejor en el foro, si son comentarios directamente a mi correo.

De nuevo te dejo un abrazo y damos por resuelto este tema, nota como he editado tu mensaje inicial para marcarlo como [RESUELTO] de este modo tenemos foros más ordenados.

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
Avatar de Usuario
osmio
Mensajes: 68
Registrado: Mié Jul 22, 2009 8:04 pm

Re: [RESUELTO] Completar macro "Guardar como" para que tome...

Mensaje por osmio »

Hola Mauricio:
Quedó fantastico, le agregue un par de condiciones para salir de la subrutina con algo de honor y para hacerlo mas bonito., jajaja, le anide un par de subrutinas para que resetee el formulario... nada importante, solo cosmetica.

Cartografia. He visitado el foro que mencionas, es interesante... veremos que podemos aportar. ¿Curso de topografia?, guauu, magnifico. Yo te cuento que he logrado introducir el formato DEM a un mosaico cualquiera con extension img para que los gps con accesso 3D lo puedan ver y si instalas el BaseCamp lo tendras en la mismisma PC. Algo escribo en www.mapsur.com.

De todas maneras tienes mi correo cualquier cosa nos comunicamos.

(Perdon a todos por escribir esto en este hilo, pero como y esta totalmente resuelto me tome el atrevimiento)

Abrazo y muchas gracias.


Daniel
Snow Leopard 10.6.4, intel, RAM 4 Gb. Ooo 3.3 dev
Avatar de Usuario
osmio
Mensajes: 68
Registrado: Mié Jul 22, 2009 8:04 pm

Re: [RESUELTO] Completar macro "Guardar como" para que tome...

Mensaje por osmio »

Hola:
Disculpen que vuelvo a este hilo pero me aparecio un problema que no se como resolver. Mauricio gentilmente me dio un macro 99,9% hecha que la instale en mi mac y en linux y todo bien. Cuando llevo el archivo con las macro a correr en un XP no hace lo mismo. El problema lo hace con el filepicker, aparentemente.
Miren subo una captura de pantalla con la ruta del archivo y con la ventana que aparece. Si ustedes se fijan la pantalla para elegir donde guardar no es la misma que la ruta indicada en la macro. He probado varias rutas sin resultado, ¿alguien puede darme una mano?

Muchas gracias, de antemano.

Abrazo
Adjuntos
screen-capture.png
screen-capture.png (72.52 KiB) Visto 36027 veces
Snow Leopard 10.6.4, intel, RAM 4 Gb. Ooo 3.3 dev
Avatar de Usuario
osmio
Mensajes: 68
Registrado: Mié Jul 22, 2009 8:04 pm

Re: [RESUELTO] Completar macro "Guardar como" para que tome...

Mensaje por osmio »

Hola Amigos:
He podido resolverlo.
Encontre que en Herramientas-opciones-general hay una casilla con opcion Usar dialogos OpenOffice.org que si esta destildada (opcion por defecto) no permite a las macro usar el servicio "CreateUnoService ("com.sun.star.ui.dialogs.FolderPicker")...etc, etc.

Abrazos


Daniel
Snow Leopard 10.6.4, intel, RAM 4 Gb. Ooo 3.3 dev
Avatar de Usuario
elproferoman
Mensajes: 17
Registrado: Jue Dic 18, 2008 7:10 pm
Ubicación: Buenos Aires - Argentina

Re: [RESUELTO] Completar macro "Guardar como" para que tome.

Mensaje por elproferoman »

Hola gente.

Este hilo contesta casi perfecto una necesidad que tengo, salvo por un detalle: Yo quiero poner en la macro la ruta donde quedará guardado el archivo, no necesito ni quiero el diálogo de seleccionar carpeta. Pero quiero que se abra el diálogo de guardar como (con la ruta cargada) y me deje editar el nombre de archivo antes de pulsar el botón de guardar.

¿Me podrían ayudar a modificarlo?

P.D.: estoy retomando las macros luego de años de descuido de mi parte. Ahora vuelvo a necesitarlas y estaré por estos lados más seguido. :-)
++++++++++++++++++++++
Román H. Gelbort
Buenos Aires - Argentina

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

Re: [RESUELTO] Completar macro "Guardar como" para que tome.

Mensaje por mauricio »

Eso no es posible con el cuadro de dialogo gaurdar como, que esta diseñado para permitirle al usuario seleccionar la ruta, si solo quieres dar la oportunidad de cambiar el nombre, solo muestra una cuadro de dialogo con un simple cuadro de texto para el nombre...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
jsspin
Mensajes: 2
Registrado: Jue Ene 04, 2018 7:09 pm

Re: [RESUELTO] Completar macro "Guardar como" para que tome.

Mensaje por jsspin »

Buenas tardes, me ha ayudado mucho esta macro. Sin embargo, necesito saber como colocar la linea de "renombrar archivo" en el cuerpo de la macro. se las comparto a ver si pueden ayudarme:

Sub DESCOMPRIMIR_ZIP()
'Definimos variables
Dim objShell As Object
Dim iArchivo As Variant, Nombre_Carpeta As Variant, NombreArchivo As Variant
Dim Ruta As String, i As Long
Dim objScripting, objCarpeta
'Seleccionamos archivos ZIP
iArchivo = Application.GetOpenFilename(filefilter:="Archivos ZIP (*.zip), *.zip", MultiSelect:=True)
'Si no seleccionamos nada, salimos del proceso
If IsArray(iArchivo) = False Then Exit Sub
'Indicamos el directorio actual de nuestro archivo o donde queremos crear o guardar nuestros archivos
Ruta = Application.ActiveWorkbook.Path & "\"
'Nombramos la carpeta en la que vamos a descomprimir los ZIP
Nombre_Carpeta = Ruta & "ARCHIVOS EXTRAIDOS " & Replace(Date, "/", "_") & " " & Format(Now, "hh_mm_ss") & "\"
'Creamos la carpeta con el nombre anterior
Set objScripting = CreateObject("Scripting.FileSystemObject")
Set objCarpeta = objScripting.CreateFolder(Nombre_Carpeta)
'Procedemos a copiar los archivos y carpetas de los ZIP seleccionados a nuestra nueva carpeta
Set objShell = CreateObject("Shell.Application")
For i = LBound(iArchivo) To UBound(iArchivo)
objShell.Namespace(Nombre_Carpeta).CopyHere objShell.Namespace(iArchivo(i)).items
Next i
Set objScripting = Nothing
Set objCarpeta = Nothing
Set objShell = Nothing
End Sub

Mi duda es: como hago para renombrar automaticamente el archivo descomprimido.
Gracias!
Adjuntos
Macro Descomprimir.PNG
Macro Descomprimir.PNG (55.77 KiB) Visto 20662 veces
JssPin |
OpenOffice 4.1.1 en Windows 8.1
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: [RESUELTO] Completar macro "Guardar como" para que tome.

Mensaje por fornelasa »

Tal vez nos hemos equivocado de foro, este es un foro de Apache OpenOffice y derivados, no damos soporte a vba/Excel
Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
jsspin
Mensajes: 2
Registrado: Jue Ene 04, 2018 7:09 pm

Re: [RESUELTO] Completar macro "Guardar como" para que tome.

Mensaje por jsspin »

Perdones gracias!
JssPin |
OpenOffice 4.1.1 en Windows 8.1
Responder