Sur une feuille Calc, comme l'indique le titre, je cherche la dernière ligne et la dernière colonne avec des données (accessoirement, les premières aussi).
Les fonctions que j'ai écrit jusqu'à présent me donnent presque les résultats escomptés (sous forme de cellule), donc toute suggestion sera la bienvenue:
Code : Tout sélectionner
option explicit
const searchTypeFormulas = 0
const searchTypeValues = 1
const searchTypeNotes = 2
public sub Main
dim document as object
set document = ThisComponent
dim sheet as object
set sheet = document.sheets().getByIndex(0)
dim firstCell as object
set firstCell = getFirstCell(sheet)
dim lastCell as object
set lastcell = getlastcell(sheet)
end sub
private function getFirstCell(byref sheet as object) as object
dim cell as object
set cell = Sheet.getCellByPosition(sheet.columns.count-1, sheet.rows.count-1)
dim sd as object
set sd = cell.createSearchDescriptor()
sd.SearchRegularExpression = True
sd.SearchString = "."
sd.SearchType = searchTypeValues
sd.SearchBackwards = false
set getFirstCell = sheet.findFirst(sd)
set sd = nothing
set cell = nothing
end function
private function getLastCell(byref sheet as object) as object
dim cell as object
set cell = Sheet.getCellByPosition(0, 0)
dim sd as object
set sd = cell.createSearchDescriptor()
sd.SearchRegularExpression = True
sd.SearchString = "."
sd.SearchType = searchTypeValues
sd.SearchBackwards = True
set getLastCell = sheet.findFirst(sd)
set rx = nothing
set cell = nothing
end function