At 10:23 2004-02-25 +0100, jovial wrote:
Bonjour
J'ai un tableau dans lequel j'ai fait ne macro afin d'insérer des lignes
automatiquement et il me faut aussi recopier les formules.
Ce que je veux c'est par exemple pouvoir recopier la formule de A10 dans
dans la zone de cellules de A5 à A2
Si j'utilise ce type d'instruction:
UneZone.getcellbyPosition(Colonne,Ligne).formula = MaFormule
Ma formule est recopiée sans être indexée
je peux le faire avec du code de l'enregistreur de macro
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:FillUp", "", 0, Array()
Cela équivaut à Copier>coller et Edition>Remplir>En haut
Mais je voudrai eviter de passer par l'interface utilisateur
Comment puis-je faire?
S'il sagit d'une simple copie le "Edition > Remplir > haut" est inutile ce
qui simplifie le code d'enregistreur.
Par contre avec l'API je ne vois pas mieux que ça :
zoneSource = uneFeuille.getCellRangeByName("A10")
celluleCible = uneFeuille.getCellRangeByName("A5")
uneFeuille.copyRange(celluleCible.CellAddress, zoneSource.RangeAddress)
zoneCible = uneFeuille.getCellRangeByName("A2:A5")
zoneCible.fillAuto(com.sun.star.sheet.FillDirection.TO_TOP, 1)
copyRange ne sait que copier une zone vers une autre, repérée par sa
première cellule.
Ici le fillAuto ne sert qu'à recopier la cellule du bas de la zone cible
sur le reste de la zone.
Bernard