[Résolu][Writer] Modifier la largeur de colonne d'un tableau

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
BiV
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 18 sept. 2010 16:11

[Résolu][Writer] Modifier la largeur de colonne d'un tableau

Message par BiV »

Bonjour à tous,

Je suis entrain de faire une macro qui insère un tableau dans un document Write.
J'arrive à créer le tableau à y écrire dedans, mais je n'arrive pas à modifier la largeur de ma première colonne.
Le tableau s'insère sur la totalité de la largeur c'est parfait comme ça.

Code : Tout sélectionner

dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "TableName"
args1(0).Value = "Tableau5"
args1(1).Name = "Columns"
args1(1).Value = 2
args1(2).Name = "Rows"
args1(2).Value = 4
args1(3).Name = "Flags"
args1(3).Value = 9

dispatcher.executeDispatch(document, ".uno:InsertTable", "", 0, args1())
Je me doute que dans ce bout de code il doit falloir ajouter quelques parts la largeur de la colonne 1 qui peut être soit un pourcentage (par exemple 20% de la totalité) soit en centimètre ou millimètre.

Merci pour votre aide.
LibreOffice 5.4.2.2
Windows 10
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
Messages : 3028
Inscription : 30 avr. 2011 23:08
Localisation : Casablanca (Maroc)

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par alhazred »

Bonjour,

Puisque tu fais ça avec l'enregistreur de macros (et pourquoi pas ? :D ), enregistre d'un coup les étapes suivantes :
  • menu Tableau > Insérer > Tableau...) ; le point d'insertion est alors automatiquement dans la première cellule ;
  • (Des Tab successifs ou autres pour aller à la colonne voulue ; inutile ici)
  • Menu Tableau > Adapter > Largeur de colonne...
Et bien sûr Terminer l'enregistrement.
À bientôt

LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.

Et la sauvegarde incrémentée, c'est sympa !
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par Churay »

Bonjour

Il me semble qu'Alain nous avait fait partager un document Writer où il était question de dimensionnement|redimensionnement de colonne d'un tableau.

Par contre, je ne retrouve pas... :oops:

Désolé
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
BiV
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 18 sept. 2010 16:11

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par BiV »

Merci pour vos réponses rapides.

@alhazred J'ai essayé de changer la dimension de la colonne de cette façon mais elle n'est pas prise en compte dans la macro. Je ne comprends pas pourquoi :(

Ci dessous une macro générée en enregistrant et en modifiant la largeur de la colonne.

Code : Tout sélectionner

sub testlargeur
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(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "TableName"
args1(0).Value = "Tableau3"
args1(1).Name = "Columns"
args1(1).Value = 2
args1(2).Name = "Rows"
args1(2).Value = 2
args1(3).Name = "Flags"
args1(3).Value = 9

dispatcher.executeDispatch(document, ".uno:InsertTable", "", 0, args1())
@Churay J'ai fais une recherche sur le forum, je n'ai pas trouvé d'exemple :( je fais essayer de faire une recherche avec le pseudo alain
LibreOffice 5.4.2.2
Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par Dude »

On le dit, on le répète : en plus du code, il faut fournir un document accompagné de ta macro.
Cela nous évite d'avoir à créer quelque chose qui au final peut ne pas correspondre à tes attentes.

Je vois ceci :
Dans ta signature, il y a écrit :LibreOffice 3.4.3
Mets toi à jour et regarde si cela ne fonctionne pas mieux.
Churay a écrit :Alain nous avait fait partager un document Writer où il était question de dimensionnement|redimensionnement de colonne d'un tableau.
https://forum.openoffice.org/fr/forum/v ... =8&t=23172
BiV
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 18 sept. 2010 16:11

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par BiV »

Pour la version, elle a un peu évolué. Par contre c'est un PC pro, je ne peux pas faire les mise à jour comme je veux :(
Chez moi j'utilise une version plus récente. J’essaierai.

Pour le fichier joint :
test largeur.odt
J'ai enregistré la macro en changeant la largeur de la colonne comme il m'a été indiqué.
Quand j'exécute la macro, j'ai deux colonnes de largeurs identiques.

Il y a peut être une autre méthode pour insérer un tableau, j'en ai un deuxième plus complexe à insérer dans mon document avec des cellules à fusionner et à scinder.
Si ça ne marche pas comme ça juste pour changer une largeur de colonne je vite galérer. Qu'en pensez-vous ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5.4.2.2
Windows 10
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
Messages : 3028
Inscription : 30 avr. 2011 23:08
Localisation : Casablanca (Maroc)

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par alhazred »

Bonjour,

Exact, j'avais oublié que certaines actions son incomplètement enregistrées.

Alors aux grands maux les grands remèdes : ajoute juste après l'insertion

Code : Tout sélectionner

table = ThisComponent.currentSelection(0).textTable
separators = table.tableColumnSeparators
separators(0).position = 2500 '25%
table.rows(0).tableColumnSeparators = separators
Attention, ici, 25% ne représente pas la largeur de colonne, mais la position du séparateur dans le tableau.

Est-il vraiment utile de formater des tableaux par macro ? Tu peux utiliser un modèle de document, ou bien tu prépares tes tableaux dans un ou plusieurs fichiers et un simple copier-coller (éventuellement par macro) fera l'affaire.
À bientôt

LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.

Et la sauvegarde incrémentée, c'est sympa !
BiV
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 18 sept. 2010 16:11

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par BiV »

Merci y'a du mieux :)
Avec ces lignes je modifie la largeur de la première colonne, mais sur une seule ligne.
Pour ce tableau, il faut que je modifie sur les 4 lignes.
Est ce qu'il faut que je fasse 4 fois la manip en changeant le numéro par exemple :

Code : Tout sélectionner

table = ThisComponent.currentSelection(1).textTable
separators = table.tableColumnSeparators
separators(1).position = 2500 '25%
table.rows(1).tableColumnSeparators = separators
Où est ce qu'il y a une solution plus rapide ?

Je pense que c'est nécessaire de le formater par macro.

Au final dans ce document je vais avoir besoin d'insérer deux sortes tableaux plusieurs fois dans le document.
Ce document sera enregistré en .ott et selon l'utilisation je n'insérerai pas le même nombre de tableaux.(Je me demande si je suis bien clair ?)
Deux tableaux soit tableau1 et tableau2.
Je crée un doc 1 ou j’insère 3 tableau1 et quatre tableau2
Je crée un doc 2 où j'insère 2 tableau1 et 5 tableau2 etc ...
Je créerai donc un raccourci pour lancer ma macro selon le tableau
Par exemple alt + F1 j’exécute la macro qui affiche le tableau1
et alt + F2 j’exécute la macro qui affiche le tableau 2

J'espère que j'ai été clair :)

Merci pour l'aide
LibreOffice 5.4.2.2
Windows 10
Avatar de l’utilisateur
Eric Villeneuve (11)
Fraîchement OOthentifié
Messages : 8
Inscription : 01 juil. 2013 16:14

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par Eric Villeneuve (11) »

bonjour Biv,
tu trouveras en Pj ton fichier modifié :
la macro activée par le bouton tableau au centre de ton document fait plusieurs choses :
- Création d'un tableau
- Lui donner un nom
- Modifier la ligne d'entête avec remplissage de 2 titres + couleur d'arrière plan
- Centrer les autres cellules
- Remplir une cellule
Ceci pour que tu puisses avoir de quoi créer tes tableaux -il faudra penser à les nommer d'un nom différent et à les référencer avant de pouvoir les modifier

En espérant t'avoir été utile

Cordialement Eric
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Windows 10 - LibreOffice Version: 5.2.5.1 (x64)
BiV
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 18 sept. 2010 16:11

Re: [Writer] modifier la largeur de colonne d'un tableau

Message par BiV »

Merci pour ce fichier, je vais prendre le temps de regarder tout ça :)

C'est une mine d'information pour moi. Je devrais pouvoir commencer à m'en sortir.
LibreOffice 5.4.2.2
Windows 10