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

Discute sobre la aplicación de hojas de cálculo
Responder
Pacomer93
Mensajes: 3
Registrado: Mar Oct 03, 2017 1:10 pm

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

Mensaje por Pacomer93 »

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

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Problema con macro Generar PDF y guardar como.

Mensaje por mauricio »

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
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Pacomer93
Mensajes: 3
Registrado: Mar Oct 03, 2017 1:10 pm

Re: Problema con macro Generar PDF y guardar como.

Mensaje por Pacomer93 »

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

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:
esta seria la Hoja 1
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
Y esta seria la Hoja 2
Y esta seria la Hoja 2
LibreOffice 3.5.7.2
Avatar de Usuario
fornelasa
Mensajes: 3268
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.

Mensaje por fornelasa »

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) Descargado 384 veces
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!
Pacomer93
Mensajes: 3
Registrado: Mar Oct 03, 2017 1:10 pm

Re: Problema con macro Generar PDF y guardar como.

Mensaje por Pacomer93 »

Simplemente maravilloso lo habeis bordado !!
LibreOffice 3.5.7.2
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Problema con macro Generar PDF y guardar como.

Mensaje por mauricio »

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
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder