Bonjour,
J'ai créer un petit outil sur LibreOffice Calc qui permet de générer des factures à partir de plusieurs tables de données (Planning,liste de prestations, annuaire client).
Lorsque les factures sont générées dans plusieurs feuilles distinctes, j'ai un programme qui me permet d'exporter la feuille (facture) que j'ai à l'écran dans un fichier indépendant et d'en générer un pdf.
Malheureusement, la sauvegarde automatique de ce nouveau fichier bug (Ligne 59-60) alors que la sauvegarde du pdf se passe très bien.
Je suis donc obliger de sauvegarder les fichiers générés à la main
Voici le message d'erreur :
Pour info, je suis sous linux Mint et je sauvegarde les fichiers sur mon NAS qui est monté sur ma session.Erreur d'exécution BASIC.'1'
Type: com.sun.star.task.ErrorCodeIOException
Message: SfxBaseModel::impl_store <file:///media/MonNas/001-DOSSIER/08-Boulot/marcelus/auto%20entrepreneur/factures/A%20domicile/2020-03-L007.ods> failed: 0x20d
Je suis donc preneur d'un petit coup de main.
Voici ci-dessous mon code :
Merci par avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 Sub ExportFacture() Dim oDoc As Object Dim oExport As Object Dim Facture as object Dim Cellule As Object Dim oFrame As Object Dim oDisp As Object Dim Args(2) As New com.sun.star.beans.PropertyValue Dim ArgsSave(0) As New com.sun.star.beans.PropertyValue Dim NomFichier as string Dim CheminFichier as string dim propFich(2) as new com.sun.star.beans.PropertyValue dim filterProps(0) as new com.sun.star.beans.PropertyValue '*******Définier le nom et l'adresse du fichier************* oDoc = ThisComponent Facture = oDoc.getCurrentController().getActiveSheet() CheminFichier = Facture.getCellByPosition(0,14).string NomFichier = Facture.getCellByPosition(10,14).string NomFichier = NomFichier & "-" & Facture.getName() NomFichier = NomFichier & ".ods" '*******Dupliquer la feuille************* oFrame = oDoc.CurrentController.Frame oDisp = createUnoService("com.sun.star.frame.DispatchHelper") Args(0).Name = "DocName" Args(0).Value = "" Args(1).Name = "Index" Args(1).Value = 65535 Args(2).Name = "Copy" Args(2).Value = True oDisp.ExecuteDispatch(oFrame, ".uno:Move", "", 0, Args()) 'Trouver le nouveau document Dim eDesktop As Object Dim eDoc As Object Dim eDocs As Object Dim eComponents As Object eComponents = StarDesktop.getComponents() eDocs = eComponents.createEnumeration() Do eDoc = eDocs.nextElement() Loop While eDoc.title like "*Sans Nom*" 'Sauvegarder le nouveau documment ArgsSave(0).Name = "Password" ArgsSave(0).Value = "" CheminFichier =ConvertToURL(CheminFichier & "/"& NomFichier) msgbox CheminFichier eDoc.storeAsURL(CheminFichier,ArgsSave()) edoc.close(false) filterProps(0).Name = "Selection" filterProps(0).Value = thisComponent.currentController.activeSheet propFich(0).Name = "FilterName" propFich(0).Value = "calc_pdf_Export" propFich(1).Name = "FilterData" propFich(1).Value = filterProps() CheminFichier = replace(CheminFichier,".ods",".pdf") msgbox thisComponent.getURL() thiscomponent.storeToURL(CheminFichier, propfich()) end sub
PS : Désolé pour les vrai développeur mais ce code est une agrégation de codes trouvés sur le net et je doit avouer que j'ai encore du mal avec la syntaxe du Basic
Partager