Bonjour
Je me permets de compléter car l’aide est un peu concise et tu commences (pour découvrir…) avec quelque chose de particulièrement compliqué : la mise en oeuvre de la fonction DECALER.
- Le service CallFunction attend en paramètre un nom de fonction en anglais (même si ton interface est en français)
- Les arguments doivent être passés dans un tableau
- Le premier paramètre est le tableau de données de la plage à décaler
- Suivent, comme dans l’interface, les lignes & col. à décaler puis la hauteur/largeur de la plage retournée
- Ce qui est retourné est en effet une plage même s’il n’y a qu’une cellule, d’où la syntaxe permettant d’afficher le résultat (instruction
PRINT
).
Voici un exemple :
sub MyoffSet()
dim oFA as object,oData as object
dim oRetour as object
oData = thiscomponent.sheets.getByName("Feuille1").getCellRangeByName("A1:B10").getDataArray()
oFA = createunoservice("com.sun.star.sheet.FunctionAccess")
' premier argument pour CallFunction est le nom de la fonction en anglais'
' second argument les paramètres à passer sous la forme de tableau'
oRetour = oFA.callFunction("OFFSET", Array(oData, 1, 0, 1 , 1))
print "En A2 : " & oRetour(0)(0)
oRetour = oFA.callFunction("OFFSET", Array(oData, 6, 1, 1 , 1))
print "En B7 : " & oRetour(0)(0)
end sub
[Ajout 17:50]
Appeler DECALER en basic est quand même le plus souvent inutile : si on connait la plage de départ et le décalage, il est plus rapide d’accéder directement à la plage “cible” soit par son son nom, soit par ses coordonnées. Je te conseille la page du wiki qui regroupe l’essentiel des ressources disponibles et où tu devrais trouver plein d’informations et d’exemples…
Cordialement