[RESUELTO] Problema con macro Generar PDF y guardar como.

Discute sobre la aplicación de hojas de cálculo

[RESUELTO] Problema con macro Generar PDF y guardar como.

Notapor Pacomer93 » Mar Oct 03, 2017 1:24 pm

Hola a todo el mundo;
Lo primero que me gustaría decir es gracias de antemano por su colaboración.

Llevo toda la mañana con una macro que he modificado de dos que he absorvido del gran libro de Mauricio y el caso es que funciona bien pero quiero añadirle un detalle.

Me explico:
*Tengo un boton que guarda una copia pdf de las hojas (saca la hoja de un rango de impresion) y abre un cuadro de "Guardar Como" por si se me da el caso que quiera cambiar el lugar de guardado.

El problema es que ahora tengo otra hoja que es igual tiene su propio boton de manera que cuando pulse el boton generar pdf de su hoja deberia exporta a pdf su hoja activa pero desgraciadamente exporta todas las hojas.

El caso es que estoy ya mas que quemado y no me sale la macro.
Quiero tener dos hojas cada una con un boton y que al pulsar dicho boton exporte a pdf solamente la hoja que estoy viendo no todas.

Dejo aqui mi codigo porque seguramente es una chorrada y no lo veo jaja

Código: Seleccionar todo   Expandir vistaContraer vista
Sub GenerarPDF
'----------------------------------------------------------------------
  Dim document   As Object
  Dim dispatcher As Object
  Dim numFactura As String
  Dim CarpetaNombrePDF As String
  Dim FechaDelDia As String
  Dim HoraDelDia As String
   
  FechaDelDia=Format(date, "dd-mm-yyyy") 
  HoraDelDia =Format(NOW(), "hh:mm:ss")
  document   = ThisComponent.CurrentController.Frame
  dispatcher = CreateUNOService("com.sun.star.frame.DispatchHelper")

  Dim aSaltarA(0) As New com.sun.star.beans.PropertyValue
  aSaltarA(0).Name = "A1:G55"
  aSaltarA(0).Value = "ImprimirFactura"

  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

  aSaltarA(0).Value = "CodCliente"
  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

 
  CarpetaNombrePDF = GuardarComo("/home/javi/Escritorio/FACTURA TALLERES PACO/" & FechaDelDia & "  " & HoraDelDia)

  If CarpetaNombrePDF > "" Then

    Dim args2(1) As New com.sun.star.beans.PropertyValue
    args2(0).Name = "URL"
    args2(0).Value = CarpetaNombrePDF
    args2(1).Name = "FilterName"
    args2(1).Value = "calc_pdf_Export"
   

    dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args2())

  EndIf

End Sub


Function GuardarComo( cNombre As String ) As String
'----------------------------------------------------------------------
  Dim oDlgGuardarArchivo As Object
  Dim mDlgOpciones()
  Dim mArchivo() As String
  Dim mOpciones()

  oDlgGuardarArchivo = CreateUNOService ("com.sun.star.ui.dialogs.FilePicker")
  mDlgOpciones = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)

  With oDlgGuardarArchivo
    .Initialize ( mDlgOpciones() )
    .AppendFilter( "Documentos PDF (.pdf)", "*.pdf" )
    .Title = "Exportar factura en  formato PDF"
    .SetDefaultName(cNombre)
  End With

  If oDlgGuardarArchivo.Execute() Then
    mArchivo() = oDlgGuardarArchivo.getFiles()
    GuardarComo = mArchivo(0)
  End If

End Function
Última edición por fornelasa el Dom Oct 08, 2017 5:45 pm, editado 1 vez en total
Razón: Marcar tema como resuelto.
LibreOffice 3.5.7.2
Pacomer93
 
Mensajes: 3
Registrado: Mar Oct 03, 2017 1:10 pm

Re: Problema con macro Generar PDF y guardar como.

Notapor mauricio » Mar Oct 03, 2017 2:59 pm

El problema son los rangos de impresión, elimina primero cualquier rango de impresión, después estableces el rango "antes" de exportar, solo en la hoja que te interesa, y pruebas tu macro y nos cuentas.

https://wiki.openoffice.org/wiki/ES/Man ... mprimiendo

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.3 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5391
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Problema con macro Generar PDF y guardar como.

Notapor Pacomer93 » Mar Oct 03, 2017 3:54 pm

Hola Mauricio muchas gracias por ayudarme y tu respuesta, acabo de eliminar los rango de impresion y el codigo queda así:
Código: Seleccionar todo   Expandir vistaContraer vista
Sub GenerarPDF
'----------------------------------------------------------------------
  Dim document   As Object
  Dim dispatcher As Object
  Dim numFactura As Object
  Dim CarpetaNombrePDF As String
  Dim FechaDelDia As String
  Dim HoraDelDia As String
  Dim oHojaActiva2 As Object
 
  oHojaActiva2 = ThisComponent.getCurrentController.getActiveSheet()
  'Referencia a la celda B11
  numFactura =oHojaActiva2.getCellRangeByName( "B11" )
  FechaDelDia=Format(date, "dd-mm-yyyy") 
  HoraDelDia =Format(NOW(), "hh:mm:ss")
  document   = ThisComponent.CurrentController.Frame
  dispatcher = CreateUNOService("com.sun.star.frame.DispatchHelper")

 

 
  CarpetaNombrePDF = GuardarComo("/home/javi/Escritorio/FACTURA TALLERES PACO/" & numFactura.getString() & " Fecha: " & FechaDelDia)

  If CarpetaNombrePDF > "" Then

    Dim args2(1) As New com.sun.star.beans.PropertyValue
    args2(0).Name = "URL"
    args2(0).Value = CarpetaNombrePDF
    args2(1).Name = "FilterName"
    args2(1).Value = "calc_pdf_Export"

    dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", , args2())

  EndIf

End Sub


Function GuardarComo( cNombre As String ) As String
'----------------------------------------------------------------------
  Dim oDlgGuardarArchivo As Object
  Dim mDlgOpciones()
  Dim mArchivo() As String
  Dim mOpciones()

  oDlgGuardarArchivo = CreateUNOService ("com.sun.star.ui.dialogs.FilePicker")
  mDlgOpciones = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)

  With oDlgGuardarArchivo
    .Initialize ( mDlgOpciones() )
    .AppendFilter( "Documentos PDF (.pdf)", "*.pdf" )
    .Title = "Exportar factura en  formato PDF"
    .SetDefaultName(cNombre)
  End With

  If oDlgGuardarArchivo.Execute() Then
    mArchivo() = oDlgGuardarArchivo.getFiles()
    GuardarComo = mArchivo(0)
  End If

End Function



el problema persiste solamente quiero que si estoy en la hoja2 y le doy al "boton guardar copia" la macro que la tenga asociada solamente exporte a pdf esa hoja. Y si no es mucho pedir me gustaría no perder el cuadro de dialogo de "guardar como".

He conseguido con otra macro hacerlo pero la macro sobreescribía automaticamente el archivo si exitia otro con otro nombre (de ahi el porque quiero el cuadro de dialogo "guardar como").

Te mando la foto de lo que tengo para que te hagas una imagen de lo que necesito:
Selección_001.png
esta seria la Hoja 1


Lo que deseo es que con el codigo que tengo que funciona bien, a la hora de pulsar el boton guardar copia si estoy en la hoja1 me exporte la hoja1 en pdf y si estoy en la dos solamente me exporte la 2.

Crees que es mu dificil? si no lo dejo ya por imposible jaja.
Gracias compañero por estrujarte la cabeza conmigo jeje :D
Adjuntos
Selección_002.png
Y esta seria la Hoja 2
LibreOffice 3.5.7.2
Pacomer93
 
Mensajes: 3
Registrado: Mar Oct 03, 2017 1:10 pm

Re: Problema con macro Generar PDF y guardar como.

Notapor fornelasa » Mar Oct 03, 2017 10:35 pm

Pacomer93 escribió:a la hora de pulsar el botón guardar copia si estoy en la hoja1 me exporte la hoja1 en pdf y si estoy en la dos solamente me exporte la 2.

mauricio escribió:
El problema son los rangos de impresión, elimina primero cualquier rango de impresión, después estableces el rango "antes" de exportar, solo en la hoja que te interesa, y pruebas tu macro y nos cuentas.
:super: ¡Exacto!

Ejemplo:
En este archivo de tres hojas; cada hoja tiene un rango con nombre ( a saber imp1, imp2 e imp3 que son los rangos que deseo exportar a PDF). Fueron creados con el menú Hoja > Intervalos y expresiones con nombre > Definir ......
Etcetera ..... :mrgreen:
Ojala puedas adaptarlo a tus necesidades. Cambia tu ruta correcta.
Pulsa las formas/dibujos de cada hoja para exportar solo la hoja activa (rango x)
Saludos, Federico.
Adjuntos
exportar.ods
EXPORTAR HOJA ACTIVA (rango x) A PDF
(15.29 KiB) 21 veces
lo 5.3.7 | aoo 4.1.4 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2809
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Problema con macro Generar PDF y guardar como.

Notapor Pacomer93 » Mié Oct 04, 2017 11:47 pm

Simplemente maravilloso lo habeis bordado !!
LibreOffice 3.5.7.2
Pacomer93
 
Mensajes: 3
Registrado: Mar Oct 03, 2017 1:10 pm

Re: Problema con macro Generar PDF y guardar como.

Notapor mauricio » Jue Oct 05, 2017 2:02 am

Por favor, si consideras que el tema ha sido resuelto, marcalo como tal, mira en: ¿Cómo marcar como RESUELTO un tema?, de esta forma, conseguiremos un Foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.3 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5391
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 22 invitados