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 :

Ajout de feuille dans nouveau classeur [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Homme Profil pro
    fonctionnaire utilisant VBA
    Inscrit en
    Août 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : fonctionnaire utilisant VBA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Ajout de feuille dans nouveau classeur
    Bonjour,

    Je travaille sur une macro et je rencontre une difficulté. En fait, j'ouvre par code un nouveau fichier où je souhaite notamment y ajouter une nouvelle feuille "Détail" après la première feuille. Mon code actuel abouti abouti à un rajout mais dans le fichier source "Origine" (qui doit rester ouvert) et non dans le nouveau fichier (qui doit rester ouvert également).

    Zone1 de code posant problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monDocument = ThisComponent
    lesFeuilles = monDocument.Sheets
    lesFeuilles.insertNewByName("Détail", 1)
    Je souhaite aussi enregistrer le fichier créé sous le nom "rapport" et le placer dans un dossier nommé "T3" se trouvant sur mon bureau. J'ai mis un bout de code à ce sujet que j'ai récupérer mais, débutant en programmation OO, je ne comprends pas bien la syntaxe et donc je ne sais pas comment l'adapter à mon projet.

    Zone 2 de code posant problème :

    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
    Dim document* *as object
    dim dispatcher as object
     
    rem get access to the document
    document* *= ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
     
     
    dim args1(1) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "URL"
    args1(0).Value = ConvertToUrl(myfilename) 'On converti le chemin 
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
     
    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
    Quelqu'un pourrait-il m'aider ?

    Nota : Je doit rendre utilisable cette macro sous LibreOffice 3.6 (par obligation de version) avec Windows 7

    En vous remerciant par avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Pour ta première demande voici un code exemple de création d'un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dok = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Array())
    Dans ta déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monDocument = ThisComponent
    lesFeuilles = monDocument.Sheets
    lesFeuilles.insertNewByName("Détail", 1)
    il n'apparaît qu'un seul document : ThisComponent, c'est à dire le document calc actif lors de l'exécution du code.

    "Mon code actuel abouti à un rajout mais dans le fichier source "Origine" (qui doit rester ouvert) et non dans le nouveau fichier (qui doit rester ouvert également)." ce qui est cohérent puisqu'il n'y a qu'un seul document calc ouvert.

    Je ne peux pas te répondre sur le deuxième point, je ne maîtrise pas la fonction dispatcher.

    A+
    Pascaltech

    Traduction : guides, manuels, normes : http://tradinfo.e-monsite.com/

  3. #3
    Membre à l'essai
    Homme Profil pro
    fonctionnaire utilisant VBA
    Inscrit en
    Août 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : fonctionnaire utilisant VBA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Ajout de feuille dans nouveau classeur
    Bonjour et merci d'avoir porté attention à mon problème.
    Le document "Origine" est effectivement ouvert et le nouveau classeur est créé. J'ai besoin de savoir le code pour "activer" ce nouveau classeur et y insérer la feuille "Détail".

    A +

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    c'est tout simple, ton nouveau document est en fait oClassrB , il suffit que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       'Insère feuille dans classeur créé :
      lesFeuilles = oClassrB.Sheets
    ' insérer la feuille "Détail" après la feuille "Synthèse"
       lesFeuilles.insertNewByName("Détail", 1)
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre à l'essai
    Homme Profil pro
    fonctionnaire utilisant VBA
    Inscrit en
    Août 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : fonctionnaire utilisant VBA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Ajout de feuille dans nouveau classeur
    Merci beaucoup J.P. Cela résout parfaitement mon problème d'insertion. Auriez-vous la réponse pour mon deuxième point concernant la sauvegarde ?

    En vous remerciant par avance,
    PJ

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Pour l'enregistrement tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Dim Fichier
       Dim Opts()
       Fichier = ConvertToUrl("F:\temp\synthèse.ods") 
       'on enregistre le fichier destination
       oClassrb.storeAsURL (Fichier, Opts())
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre à l'essai
    Homme Profil pro
    fonctionnaire utilisant VBA
    Inscrit en
    Août 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : fonctionnaire utilisant VBA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Ajout de feuille dans nouveau classeur
    Un grand bravo JP,
    Vous avez résolu mes deux problèmes. Merci aussi de m'avoir fait progressé.

    Plein de bonnes choses et excellent WE

    PJ

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Copier/coller dans nouveau classeur la ou les feuille(s) sélectionnée avec checkbox
    Par apache84 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/02/2014, 17h19
  2. Ajouter une feuille dans classeur excel
    Par sniperpro dans le forum Langage
    Réponses: 10
    Dernier message: 22/02/2013, 18h00
  3. Ajouter une feuille dans un classeur fermé
    Par SilkyRoad dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2011, 15h38
  4. [XL-2003] copier des feuilles dans nouveau classeur
    Par JohnNC115 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2011, 08h25

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