En me relisant, je me dis que je ne suis pas très explicite. Donc un bout de 
code (compact) pour illustrer le propos :

Sub essaiToto
Dim sPlage as String, oPlage As Object, oRange As Object
    sPlage = 
Thiscomponent.Sheets.getByName("Feuille1").getCellRangeByName("Toto").AbsoluteName
    oPlage = 
Thiscomponent.Sheets.getByName("Feuille1").getCellRangeByName(sPlage)
    oRange = oPlage.RangeAddress
    
    MsgBox     "Feuille     : " & oRange.Sheet & chr(10) & _
            "Haut Gauche : " & oRange.StartColumn & "," & oRange.StartRow & 
chr(10) & _
            "Bas  Droite : " & oRange.EndColumn & "," & oRange.EndRow, 64, 
"Index de la plage fusionnée"
End Sub


Pour l'utilisation directe de .AbsoluteName, c'est 2 splits avec variables 
intermédiaires ou 3 splits en mode compact (sans variables intermédiaires)... 
Version 2 splits : 

Sub essaiToto2
Dim oSheet As Object, sPlage As String
    oSheet = Thiscomponent.Sheets.getByName("Feuille1")
    sPlage = oSheet.getCellRangeByName("Toto").AbsoluteName
    
Dim aInfosF() As String, aInfosCell() As String, sFeuille As String
Dim sHautGauche As String, sBasDroite As String
    aInfosF = split(sPlage, ".") : sFeuille = aInfosF(0)
    
    aInfosCell = split(aInfosF(1), ":")
    sHautGauche = aInfosCell(0) : sBasDroite = aInfosCell(1)
    
    MsgBox sFeuille & chr(10) & sHautGauche & chr(10) & sBasDroite
End Sub

Je vous laisse la version 3 splits comme devoir de vacances...

^^


> From: patve...@hotmail.com
> To: pref-open-off...@haute-garonne.gouv.fr; rudelle.mic...@gmail.com
> CC: users@fr.libreoffice.org
> Subject: [fr-users] RE: [fr-users] Re:     RE: [fr-users] Calc macro - 
> Trouver plage associée à une cellule fusionnée
> Date: Tue, 13 Aug 2013 12:38:52 +0000
> 
> Bonjour,
> 
> La solution de Michel me semble plus élégante car :
> 
> - soit on récupère une chaîne contenant le nom de la feuille et le nom des 
> cellules délimitant le merge : deux split permettent d'isoler les infos,
> - soit on repart de l'objet objetAdresse (objetAdresse = 
> cellule.RangeAddress) et puisque c'est un type RangeAddress :
>             objetAdresse.Sheet donne l'index de la feuille,
>             objetAdresse.StartColumn et objetAdresse.StartRow, les index de 
> la cellule haut gauche,
>             objetAdresse.EndColumn et objetAdresse.EndRow, les index de la 
> cellule bas droite.
> 
> Testé sous AOO et LO.
> 
> 
> > Date: Tue, 13 Aug 2013 08:07:24 +0200
> > From: pref-open-off...@haute-garonne.gouv.fr
> > To: rudelle.mic...@gmail.com
> > CC: pref-open-off...@haute-garonne.gouv.fr; users@fr.libreoffice.org
> > Subject: [fr-users] 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 <rudelle.mic...@gmail.com>
> > Pour : 'claude' <pref-open-off...@haute-garonne.gouv.fr>, 'libreoffice' 
> > <users@fr.libreoffice.org>
> > Date : 12/08/2013 17:57
> > > Bonjour,
> > >
> > >   
> > >> De : claude [mailto:pref-open-off...@haute-garonne.gouv.fr]
> > >> 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 à users+unsubscr...@fr.libreoffice.org 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
> > 
>                                         
> -- 
> Envoyez un mail à users+unsubscr...@fr.libreoffice.org 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
> 
                                          
-- 
Envoyez un mail à users+unsubscr...@fr.libreoffice.org 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

Reply via email to