suite
Voici ce que jai trouvé avec laide de lenregistreur de macro à partir de
lidée du forum OOo, pas très élégant mais ça marche, à adapter bien sûr au
contexte (je ne sais pas pourquoi il est dit dans le forum que ça ne marche
pas)
Le principe : jai une plage fusionnée : E17:K21. Jutilise le dispatcher
pour me positionner sur la première cellule E17, puis en me déplaçant
toujours grâce au dispatcher un coup en bas et un coup à droite, je trouve
les deux adresses des cellules adjacentes à la plage :
adresseDessous = $Feuille1.$E$22
adresseAdroite = $Feuille1.$L$17
A partir de là, on peut aisément déduire que la dernière cellule de la plage
est K21
Sub cherchePlage
Dim document as Object, dispatcher as Object, adresseDessous As String,
adresseAdroite As String
dim args1(0) as new com.sun.star.beans.PropertyValue
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
'rechercher cellule dessous
args1(0).Name = "ToPoint"
args1(0).Value = "$E$17"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
adresseDessous = thiscomponent.currentSelection.AbsoluteName
'rechercher cellule à droite
args1(0).Name = "ToPoint"
args1(0).Value = "$E$17"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args3())
adresseAdroite = thiscomponent.currentSelection.AbsoluteName
End Sub
Bonne journée,
Michel