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 sans variables comme devoir de vacances...
^^
>
> > From: [email protected]
> > To: [email protected]; [email protected]
> > CC: [email protected]
> > 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: [email protected]
> > > To: [email protected]
> > > CC: [email protected]; [email protected]
> > > 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 <[email protected]>
> > > Pour : 'claude' <[email protected]>, 'libreoffice'
> > > <[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
> > >
> >
> > --
> > 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
> >
>
> --
> 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
>
--
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