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
_____
De : Michel Rudelle [mailto:[email protected]]
Envoyé : mardi 13 août 2013 11:11
À : 'claude'; 'libreoffice'
Objet : RE: [fr-users] Calc macro - Trouver plage associée à une cellule
fusionnée
Bonjour,
Ce nest pas un problème de version et ma réponse était idiote :(
En effet, elle contenait la réponse, car javais défini toto nommée comme
E17:K21 (cellules effectivement fusionnées)
La même chose en définissant le nom toto uniquement sur la première E17 ne
permet pas de connaître létendue de la plage fusionnée et en effet, je ne
trouve pas de méthode.
Jai une idée qui me trotte derrière la tête, je vais essayer dans la
journée, on ne sait jamais
Bonne journée,
Michel
_____
De : claude [mailto:[email protected]]
Envoyé : mardi 13 août 2013 08:07
À : Michel Rudelle
Cc : 'claude'; 'libreoffice'
Objet : Re: RE: [fr-users] Calc macro - Trouver plage associée à une cellule
fusionnée
-------- Message original --------
Sujet : [INTERNET] RE: [fr-users] Calc macro - Trouver plage associée à
une cellule fusionnée
De : Michel Rudelle <mailto:[email protected]>
<[email protected]>
Pour : 'claude' <mailto:[email protected]>
<[email protected]>, 'libreoffice'
<mailto:[email protected]> <[email protected]>
Date : 12/08/2013 17:57
Bonjour,
De : claude [mailto:[email protected]]
Envoyé : lundi 12 août 2013 17:24
Je n'arrive pas à trouver dans les propriétés d'une cellule fusionnée la
plage associée qui me donnerait la première et la dernière cellule
concernée par cette fusion .
J'ai juste trouvé la propriété "merged" ou pas !!!
Essai rapide:
Sub essaiToto
Dim cellule As Object, objetAdresse As Object, plage as String
cellule =
Thiscomponent.Sheets.getByName("Feuille1").getCellRangeByName("toto")
objetAdresse = cellule.RangeAddress
plage = cellule.AbsoluteName
End Sub
toto est une plage nommée fusionnée (5x7) dans ma Feuille1
objetAdresse est l'objet qui décrit la plage
et plage donne directement la chaîne (par ex: $Feuille1.$D$17:$J$21)
Est-ce que ça répond ?
Bonne soirée,
Michel
Désolée mais moi çà me donne que l'adresse de la première cellule
Peut être un roblème de version ? Je suis en LibreOffice 3.5.7.2 MIMO
Merci quand même
Claude
--
Envoyez un mail à [email protected] pour savoir comment vous
désinscrire
Les archives de la liste sont disponibles à
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne
pourront pas être supprimés