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 :

Macro pour insérer un tableau [LibreOffice][Texte]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut Macro pour insérer un tableau
    Bonjour à tous,

    J'ai une utilisation un peu particulière de LO writer : il me sert de tableau numérique en classe. A la fin de chaque cours, je note les devoirs à faire dans un rectangle jaune encadré de noir.
    J'ai donc créé un style de paragraphe. Mais ce n'est pas pratique parce que si je passe à la ligne, cela créé un nouveau paragraphe et donc un nouveau rectangle. Solution pratique : créer un tableau d'une seule cellule avec le style que j'ai défini.
    Je fais cela des dizaines de fois par semaine; cela devient pénible à force.

    Donc, j'ai essayé de créer une macro. Mais avec les tableaux c'est compliqué. Je ne me souviens plus comment j'ai réussi à créer la macro suivante qui fonctionne :
    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
    sub Tab_2_col
    rem ----------------------------------------------------------------------
    rem define variables
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem get access to the document
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
     
    rem ----------------------------------------------------------------------
    dim args1(4) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "TableName"
    args1(0).Value = "Tableau8"
    args1(1).Name = "Columns"
    args1(1).Value = 2
    args1(2).Name = "Rows"
    args1(2).Value = 1
    args1(3).Name = "Flags"
    args1(3).Value = 8
    args1(4).Name = "AutoFormat"
    args1(4).Value = "Aucun"
     
    dispatcher.executeDispatch(document, ".uno:InsertTable", "", 0, args1())
     
     
    end sub
    J'ai essayé de la modifier de la façon suivante :
    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
    sub Tab_deberes
    rem ----------------------------------------------------------------------
    rem define variables
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem get access to the document
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    rem ----------------------------------------------------------------------
    dim args1(4) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "TableName"
    args1(0).Value = "Tableau8"
    args1(1).Name = "Columns"
    args1(1).Value = 1
    args1(2).Name = "Rows"
    args1(2).Value = 1
    args1(3).Name = "Flags"
    args1(3).Value = 8
    args1(4).Name = "A-deberes"
    args1(4).Value = "Aucun"
     
    dispatcher.executeDispatch(document, ".uno:InsertTable", "", 0, args1())
     
     
    end sub
    Mais cela ne fonctionne pas.

    Une idée ?

    Merci d'avance pour vos lumières.

  2. #2
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 261
    Points : 388
    Points
    388
    Par défaut
    Bonjour, un exemple pour insérer un tableau.

    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
     Sub InsertionTableau()
      Dim oDoc As Object, oTable As Object, oText As Object, oCurseur As Object 
      oDoc = ThisComponent
      oTable = oDoc.createInstance("com.sun.star.text.TextTable")
      oText = oDoc.Text
      oCurseur = oText.createTextCursor 
      With oTable
       .initialize(5,3)' nombre de : lignes, colonnes
       .Name = "monTableau"
       .HoriOrient = com.sun.star.text.HoriOrientation.FULL 'Aligner sur toute la largeur.  RIGHT = tout à droite
       .IsWidthRelative = true
       .RelativeWidth = 30 
      End With
      oText.insertTextContent(oCurseur, oTable, false)
     End Sub
     
     
    [ATTACH]648026[/ATTACH]
    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  3. #3
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 257
    Points : 317
    Points
    317
    Par défaut
    Plutôt qu'une macro dont a priori, vous ne maîtrisez pas la programmation, utilisez un AutoTexte.
    https://wiki.openoffice.org/wiki/FR/...ide/AutoTextes

    Ce sera nettement plus simple

  4. #4
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bonjour et merci beaucoup pour vos réponses à tous les deux !

    Alors, je n'avais pas pensé aux auto textes et le lien fourni m'a laissé pensé que ça ne fonctionnait pas parce que je suis dans le genre à suivre à la lettre, si on me dit de cliquer sur " Nouveau (texte seulement)", c'est ce que je fais.
    Mais bien sûr, un tableau vide, ce n'est pas seulement du texte... Du coup, en cliquant sur "Nouveau", ça fonctionne super bien et surtout cela m'ouvre de nombreuses portes qui vont m'être bien utiles.

    Petite question, y a-t'il moyen de choisir cet auto texte particulier pour le faire apparaître dans la barre d'outils ?
    Après recherches infructueuses, j'ai créé une petite macro qui, elle, peut être ajoutée à la barre d'outils (mais y'a peut-être plus simple).

    En tous cas, merci Amélie pour cette nouvelle découverte

  5. #5
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 257
    Points : 317
    Points
    317
    Par défaut
    auto texte particulier pour le faire apparaître dans la barre d'outils
    https://forum.openoffice.org/fr/foru...tils+autotexte

  6. #6
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Merci Amélie pour ta réponse.
    Donc, mes propres recherches m'avaient amené à la même conclusion, la seule solution, c'est une petite macro, c'est ce que j'ai fait.

    Merci à tous et bonnes fêtes

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

Discussions similaires

  1. Macro pour remplir un tableau automatiquement
    Par Bluesquid dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/05/2013, 20h07
  2. Réponses: 2
    Dernier message: 24/04/2012, 13h22
  3. [XL-2010] Macro pour filtrer un tableau croisé dynamique
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/02/2012, 11h59
  4. macros pour trier un tableau vers une nouvelle feuille excel
    Par argaz01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2010, 14h00
  5. Macro pour insérer un tableau
    Par Graphiste Powerpoint dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 29/05/2009, 11h00

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