Bonjour a tous et merci de votre reactivite.
Ce forum est super.
Voici mon code (j'ai commente les parties de la macro qui marchent deja)
Code : Tout sélectionner
Sub impression
Dim mondocument as object, lesfeuilles as object, mafeuille as object, mazone as object
Dim Props(0) as New com.sun.star.beans.PropertyValue
Dim adrzones(1) as New com.sun.star.table.CellRangeAddress
Dim date as long
'Variable pour la sauvegarde
Dim dummy()
Dim propFich(0) as New com.sun.star.beans.PropertyValue
Dim adressedoc as string, adressebc as string
Dim numerobc as integer, nomclient as string, url as string, urlbc as string, repertoire as string, extension as string
'On se positionne sur l'onglet bon de commande
mondocument = thisComponent
lesfeuilles = mondocument.sheets
mafeuille = lesfeuilles.getbyname("Bon de commande")
'Fige la valeur de la date
' date = mafeuille.getcellByPosition(9,5).value
' mafeuille.getcellByPosition(9,5).value = date
'On selectionne la zone a imprimmer et imprime 2 ex. - ok
' mazone = mafeuille.getcellrangebyname("C3:J55")
' adrzones(0) = mazone.RangeAddress
' Props(0).Name = "CopyCount"
' Props(0).Value = 2
' mondocument.Print(Props()) 'une page par zone
'Sauvegarde sous le nom demande dans le repertoire de transfert en ods- OK
' repertoire = "//home/vendeur/.transfert/"
' nomclient = InputBox("Entrer le nom du fichier:")
' extension = ".ods"
' url = repertoire + nomclient + extension
' adressedoc = converttourl(url)
' mondocument.storeasurl(adressedoc, dummy() )
'Sauvegarde sous le nom demande dans le repertoire de transfert - en cours
repertoire = "//home/paul/Desktop/Bc_magasin/"
nomclient = InputBox("Entrer le nom du fichier:")
extension = ".pdf"
url = repertoire + nomclient + extension
adressedoc = converttourl(url)
propFich(0).Name = "FilterName"
propFich(0).Value = "calc_pdf_Export"
mondocument.storeToURL( adressedoc, propFich())
' mondocument.storeToURL( adressedoc, Array( makePropertyValue( "FilterName", "calc_pdf_Export" ) ) )
'Ouverture du Bc_magasin - OK
' urlbc = "/home/vendeur/Desktop/Carnet_Bon_Commandes_v8,9.ods" 'remplacer par le vrai nom du carnet de commande
' adressebc = converttourl(urlbc)
' mondocument = StarDesktop.loadComponentFromURL(adressebc, "_blank", 0, dummy())
' lesfeuilles = mondocument.sheets
' mafeuille = lesfeuilles.getbyname("Bon de commande")
'Incremente le numero du BC - OK
numerobc = mafeuille.getcellByPosition(12,4).value
mafeuille.getcellByPosition(12,4).value = numerobc + 1
numerobc = mafeuille.getcellByPosition(12,4).value
'Sauvegarde du Bc_magasin - OK
' mondocument.store
' on error resume next
' mondocument.close(true)
' on error goto 0
End Sub
Pour la concatenation, ca marche bien avec +, en imprimant le resultat a l'ecran, j'ai bien une concatenation.
En plus ca marche pour la sauvegarde en ods dans le repertoir choisi.
J'ai bien la permission d'ecrire dans tous les repertoires du home
Lorsque je commente la ligne
Ca me sauve un fichier .
pdf au bon endroit, mais le fichier ne s'ouvre pas. Un message d'erreur apparait dans evince (lecteur de
pdf sous linux)
Des que je decommente la ligne j'ai le premier message d'erreur
Je bloque vraiment sur ce probleme...
Je precise a tout hasard que l'
export pdf a partir de l'icone
export to
pdf marche bien. (Peut-on regarder le detail de cette macro ou l'appeler directement a partir d'une autre macro ? ?)
Merci
ps : Effectivmeent j'avais oublier la fontion
Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" )
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
depuis que je l'ai mise, j'ai le premier message d'erreur qui apparait...