J'avais un document avec plus de 200 tableaux et j'ai dû modifier la largeur de la 1ere colonne de tous les tableaux (pour passer de 1 cm à 1,3 cm).

Le code de ma macro (c'est perfectible car il y a des valeur en "dur" dedans mais je n'avais pas le temps de trop "finasser")

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
rem -------------------------------------------------------------------------------
rem procedure pour modifier la largeur de la première colonne d'un tableau à 1,3 cm
rem -------------------------------------------------------------------------------
Sub ModifyTableWidth()
    Dim largeur as double    
    Dim separateur as variant
 	Dim oVCurs
 
	' recupere la vue du curseur 
    oVCurs = ThisComponent.getCurrentController().getViewCursor()
 
    ' verifie que le curseur est dans un tableau
    If IsEmpty(oVCurs.TextTable) Then
    	MsgBox "The cursor is NOT in a table"
    	Exit Sub
  	End If
 
	' recupere le tableau
   	oTable = oVCurs.TextTable
	' MsgBox "The cursor is in table " & oTable.getName
 
	' la largeur de la page en cm (il y a probablement un autre moyen pour la récuperer)
	width_page = 17
 
	' la largeur du tableau
	width_table = oTable.TableColumnRelativeSum
 
	' la largeur desiree en cm
	desired_width = 1.3
 
	' calcule la nouvelle largeur de la colonne
	width_col = 1.3 * width_table / width_page
 
   	' recupere les separateurs du tableau
   	separateur = oTable.TableColumnSeparators
 
   	' modifie la largeur de la colonne 0
    separateur(0).position = width_col
 
    ' positionne la nouvelle largeur
    oTable.TableColumnSeparators = separateur
end sub