[Calc] Obtenir l'adresse d'une cellule/plage (version < 2.3)

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
Kikof
Fraîchement OOthentifié
Messages : 7
Inscription : 03 nov. 2006 08:08
Localisation : Au soleil, planet Mars...

[Calc] Obtenir l'adresse d'une cellule/plage (version < 2.3)

Message par Kikof »

Salut,

Une petite contribution pour tous ceux qui comme moi travaillent sur une version OOo inférieure à la version 2.3 par obligation.

Vous serez peut être amenés à créer dynamiquement/mettre à jour des formules de calcul sur des tableaux auquels vous ajoutez des lignes.
Voici la fonction qui vous permettra de récupérer l'adresse de la cellule ou d'une plage de cellules adjacentes.

Code : Tout sélectionner

' Retourne une adresse du style : B2:B24 ou B2:B2 ou A1:F2 
Function fRenvoiAdressePlage(oCellule as Object) As String

    ' 1ère colonne de la plage
    Dim c as integer 
    ' 2ème colonne de la plage
    Dim c1 as integer
 
    ' OOo travaille avec un index commençant à 0 : on ajoute donc + 1
    c = oCellule.RangeAddress.StartColumn + 1
    c1 = oCellule.RangeAddress.EndColumn + 1
    
    fRenvoiAdressePlage = IIf(c > 26, Chr(64 + c \ 26) & Chr(64 + c Mod 26), Chr(64 + c)) & _
 							oCellule.RangeAddress.StartRow + 1 & ":" & _
    		 				IIf(c1 > 26, Chr(64 + c1 \ 26) & Chr(64 + c1 Mod 26), Chr(64 + c1)) & _
    		 				oCellule.RangeAddress.EndRow + 1

End Function
Exemple :

Code : Tout sélectionner

Sub Test

    Dim oDoc As Object
    Dim oCellule As Object
	
    oDoc = ThisComponent   
    oCellule = oDoc.getCurrentSelection 
	
    msgbox fRenvoiAdressePlage(oCellule)
	
End Sub
OOo 2.2.0 -- Win XP Pro SP1
Package CNAF :evil: