5 messages in org.openoffice.fr.progRe: [prog] fusionner des cellules calc
FromSent OnAttachments
zorglub.1erJun 18, 2007 5:13 am 
Christophe MathysenJun 18, 2007 5:32 am 
zorglub.1erJun 20, 2007 3:31 pm 
Francois GattoJun 20, 2007 10:59 pm 
Christophe MathysenJun 20, 2007 11:33 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] fusionner des cellules calcActions...
From:Francois Gatto (oo@volcar.org)
Date:Jun 20, 2007 10:59:32 pm
List:org.openoffice.fr.prog

zorglub.1er a écrit :

Bonjour,

Merci pour cette réponse ;0)

Il me semble qu'on peut obtenir un résultat similaire en ouvrant Calc puis allant dans Outils->Macros-> Enregistrer une macro.

Oui, c'est bien pratique !

Une fenêtre apparaît alors ; elle se nomme "Enregistrement". On sélectionne alors plusieures cellules. Puis on les fusionne en allant dans Format->Fusionner les cellules->Fusionner les cellules. Enfin, on clic sur "Terminer l'enregistrement" dans la fenêtre nommée "Enregistrement". Une fenêtre apparaît alors, nommée "Macros OpenOffice.org Basic". Là on enregistre la macro enregistrée dans un module, une macro déjà existant(e) ou dans un nouveau module, une nouvelle bibliothèque, macro.

------------------------------------

sub Fusion rem

---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem

---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem

---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "ToPoint" args1(0).Value = "$E$8"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem

---------------------------------------------------------------------- dim args2(0) as new com.sun.star.beans.PropertyValue args2(0).Name = "ToPoint" args2(0).Value = "$D$8:$F$8"

Cette définition pourra être supprimée si l'on souhaite donnée une portée générale à la macro, sinon seules les cellules référencées seront traitées.

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem

---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, Array())

end sub

--------------------------------------------------

Est ce que tu t'es inspiré de ce modèle ou tu t'y es pris autrement avec l'enregistreur de macro pour arriver à la macro que tu m'as écrite ?

D'ailleurs, il me semble qu'avec la fonction mergeRange(), on pourrait faire la même chose.

Oui, mais :

1) avec l'enregistreur on peut obtenir la même chose de manière souple et efficace. Toutefois il conviendrait de compléter la macro précitée pour qu'elle tienne compte des contenus des cellules.

Quelque chose comme :

dim args2(0) as new com.sun.star.beans.PropertyValue args2(0).Name = "MoveContents" args2(0).Value = true

2) la rédaction manuelle de ce genre de macro si elle est trés simple au moyen de la fonction mergeRange evoquée, devra néanmoins assurer la fusion des contenus éventuels.

http://api.openoffice.org/docs/common/ref/com/sun/star/text/XTextTableCursor.html#mergeRange

Mais je ne sais comment m'y prendre.

Merci d'avance ;0)

Hello,

Et voici quelque chose qui devrait t'aider...

sub Fusion rem

rem define variables dim document as object dim dispatcher as object rem

rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") rem

dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, Array())

End Sub

Le lun 18/06/2007 à 14:14, zorglub.1er a écrit :

Bonjour,

Comment fusionner plusieures cellules dans calc avec une macro ? Il me semble qu'on peut utiliser la méthode mergeRange pour fusionner des cellules de tableau dans Writer, mais je ne sais pas comment l'utiliser, m'en servir dans Calc.

Sinon, j'ai pensé à une autre solution (je ne sais pas si c'est réalisable) qui est d'utilisée à travers une macro la "fonction" déjà existante dans Format->Fusionner les cellules.

Ainsi, dans la macro on "appele" la fonction "Fusionner les cellules" qu'on trouve dans Format->Fusionner les cellules.

Mais je ne sais pas comment m'y prendre.

D'avance merci pour votre aide ;0)

Francois