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
Code : Tout sélectionner
Sub Test
Dim oDoc As Object
Dim oCellule As Object
oDoc = ThisComponent
oCellule = oDoc.getCurrentSelection
msgbox fRenvoiAdressePlage(oCellule)
End Sub