Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


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: patvedel@hotmail.com
To: pref-open-office@haute-garonne.gouv.fr; rudelle.michel@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-office@haute-garonne.gouv.fr
To: rudelle.michel@gmail.com
CC: pref-open-office@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.michel@gmail.com>
Pour : 'claude' <pref-open-office@haute-garonne.gouv.fr>, 'libreoffice' 
<users@fr.libreoffice.org>
Date : 12/08/2013 17:57
Bonjour,

  
De : claude [mailto:pref-open-office@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+unsubscribe@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+unsubscribe@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+unsubscribe@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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.