IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Copier une feuille dans un nouveau fichier et sauvegarde


Sujet :

OpenOffice & LibreOffice

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur Mécanique
    Inscrit en
    Septembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Mécanique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Copier une feuille dans un nouveau fichier et sauvegarde
    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 :
    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
    Pour info, je suis sous linux Mint et je sauvegarde les fichiers sur mon NAS qui est monté sur ma session.

    Je suis donc preneur d'un petit coup de main.

    Voici ci-dessous mon code :
    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
    Merci par avance

    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

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Sauvegardez déjà dans un répertoire plus neutre de votre disque local.
    Vous écarterez un problème de droits d'accès.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. [XL-2016] Copier une feuille dans un nouveau classeur
    Par Westood5 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/09/2019, 14h46
  3. [XL-2010] Copier une feuille dans un nouveau classeur
    Par Rob's dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/12/2013, 16h16
  4. Copier contenu d'une feuille dans un autre fichier
    Par neo2k2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2007, 18h01
  5. copier une feuille dans un nouveau doc excel
    Par alkmehd dans le forum Access
    Réponses: 1
    Dernier message: 24/09/2005, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo