Bonjour,
Dans la macro suivante je sélectionne une zone de tableau dynamique qui doit être utilisée pour paramétrer la plage d'un diagramme. Cette zone contient la colonne total à droite et la ligne total en bas. La sélection ne doit pas les sélectionner, donc elle raffecte la valeur de l'étendue en diminuant zone.RangeAddress.EndColumn et zone.RangeAddress.EndRow d'une unité. Mais cela ne fonctionne pas... et je ne comprends pas la raison !
Merci pour votre aide.
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 Function zoneDynamique(cellule As String) As Object Dim monDocument As Object Dim feuilleActive As Object Dim curseur As Object Dim topLeft As Object Dim unBord As New com.sun.star.table.BorderLine Dim zone As Object Dim aname As String monDocument = ThisComponent feuilleActive = monDocument.CurrentController.ActiveSheet topLeft = feuilleActive.getCellRangeByName(cellule) curseur = feuilleActive.createCursorByRange(topLeft) curseur.gotoEndOfUsedArea(True) zone = feuilleActive.getCellRangeByName(curseur.AbsoluteName) Rem supression des lignes des totaux 'if ((zoneDynamique.RangeAddress.Columns > 1) and (zoneDynamique.RangeAddress.Rows >1)) then aname = zone.AbsoluteName with zone.RangeAddress .StartColumn = 0 .EndColumn = .EndColumn - 1 .StartRow = .StartRow + 1 .EndRow = .EndRow - 1 end With aname = zone.AbsoluteName 'Coloration des zones topLeft.CellBackColor = RGB(200,0,0) With unBord .Color = RGB(200,0,0) .outerLineWidth = 100 topLeft.LeftBorder = unBord topLeft.RightBorder = unBord topLeft.TopBorder = unBord topLeft.BottomBorder = unBord End With zone.CellBackColor = RGB(0,100,0) zoneDynamique = zone 'endif End Function
Partager