Je rencontre un bug similaire à celui que j'avais rencontré il y a 3 ans
https://forum.openoffice.org/fr/forum/v ... =8&t=23205
et qui avait été résolu par une mise à jour d'openoffice sous linux.
Je suis toujours sous linux avec libreoffice en version 4.1.
J'utilise la fonction filepicker avec le template "FILESAVE_SIMPLE". Lorsque la boite d'enregistrement apparait et que je clique sur "enregistrer", libreoffice plante.
Cela ne le fait pas si je clique sur "annuler"
Si je change le template en "FILESAVE_AUTOEXTENSION" j'ai toujours le bug.
Par contre si je mets "FILEOPEN_SIMPLE" cela ne plante pas.
A la fin de ma macro j'ai mis un print"" pour voir si elle va au bout ou pas pour tester.
Je précise que dans l'exemple que je propose ici j'ai enlevé toute la partie traitement de l'enregistrement qui vient après avoir cliqué sur le bouton pour isoler mon problème.
De plus cette fonction marchait avant et c'est depuis peu qu'elle plante. Je ne peux pas tester sous windows actuellement.
Code : Tout sélectionner
Sub Test
ExportPDF("Feuille1","A1:K24","essai","paysage","essai")
end sub
Sub ExportPDF(feuille as String, zone as String, DefaultName as String, style as string, TitrePDF as string)
Dim oDoc As Object, oSheet As Object,oStoreDialog as Object
Dim oRanges(0), oRange As New com.sun.star.table.CellRangeAddress
Dim aOptionsPrinter(0) As New com.sun.star.beans.PropertyValue
dim aFiltreExport(2) As new com.sun.star.beans.PropertyValue
Dim ListAny(0) as Long,iAccept as Integer
' Le document
oDoc = thisComponent
oSheet = oDoc.Sheets.getByName(feuille)
' Orientation
aOptionsPrinter(0).Name = "PaperOrientation"
if style="paysage" then
aOptionsPrinter(0).Value = com.sun.star.view.PaperOrientation.LANDSCAPE
else
aOptionsPrinter(0).Value = com.sun.star.view.PaperOrientation.PORTRAIT
end if
thisComponent.setPrinter( aOptionsPrinter() )
oRanges(0) = oSheet.getCellRangeByName(zone).RangeAddress
' Option choix de la feuille par les options du Filtre
aFiltreExport(0).Name = "FilterName"
aFiltreExport(0).Value = "calc_pdf_Export"
aFiltreExport(1).Name = "CompressMode"
aFiltreExport(1).Value = 1
' Export
ListAny(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION
oStoreDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
oStoreDialog.Initialize(ListAny())
oStoreDialog.SetDefaultName(DefaultName &".pdf")
'oStoreDialog.setValue(com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_AUTOEXTENSION,0, true)
iAccept=oStoreDialog.Execute()
oSheet.PrintAreas=array()
print ""
End Sub
Fabien


