4 messages in org.openoffice.fr.progRe: [prog] [Calc] recopie de formule ...
FromSent OnAttachments
jovialFeb 25, 2004 1:22 am 
Bernard MarcellyFeb 25, 2004 6:27 am 
jovialFeb 25, 2004 10:19 am 
jovialFeb 25, 2004 3:37 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] [Calc] recopie de formule avec indexageActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Feb 25, 2004 6:27:04 am
List:org.openoffice.fr.prog

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