Dans ma macro, j'ai une zone nommée que je souhaite étendre. Je ne me suis pas méfiée, j'ai allègrement utilisé addNewByName, avant de lire dans la Bible de la programmation OpenOffice que cette fonction n'est que pour créer des nouvelles zones nommées. Je suis eue !
Dans ce classeur, la macro intègre des données provenant de la feuille "DATA" sur une feuille "Trav", et je cherche à créer une zone nommée concernant uniquement les sous-section égales à 1.
Code : Tout sélectionner
Dim docTrav As Object, lesFeuilles As Object, feuilleTrav As Object
Dim feuilleDonnees As Object, zonesNommees As Object, cellsOrig As Object
Dim cellsDest As Object, uneCellule As Object, zoneNommee As Object
Dim NumLigne As Integer, NewLigne As Integer
docTrav = ThisComponent
lesFeuilles = docTrav.Sheets
feuilleDonnees = lesFeuilles.getByName("DATA")
feuilleTrav = lesFeuilles.getByName("Trav")
zoneNommee = docTrav.NamedRanges
NumLigne = 1
NewLigne = 2
While feuilleDonnees.getCellByPosition(0, NumLigne - 1).Type <> com.sun.star.table.CellContentType.EMPTY
cellsOrig = feuilleDonnees.getCellRangeByName("A" & NumLigne & ":C" & NumLigne)
cellsDest = feuilleTrav.getCellRangeByName("A" & NewLigne & ":C" & NewLigne)
cellsDest.DataArray = cellsOrig.DataArray
If feuilleDonnees.getCellRangeByName("C" & NewLigne).Value = 1 Then
uneCellule = feuilleTrav.getCellRangeByName("C" & NewLigne)
zoneNommee.addNewByName("Sous-Section égale à 1", uneCellule.AbsoluteName, uneCellule.CellAddress, 0)
End If
NumLigne = NumLigne + 1
NewLigne = NewLigne + 1
Wend| Ajout : Enfin, si c'est pas possible, je saurais le comprendre, hein ! |

