

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
5 messages in org.openoffice.fr.progRe: [prog] fusionner des cellules calc| From | Sent On | Attachments |
|---|---|---|
| zorglub.1er | Jun 18, 2007 5:13 am | |
| Christophe Mathysen | Jun 18, 2007 5:32 am | |
| zorglub.1er | Jun 20, 2007 3:31 pm | |
| Francois Gatto | Jun 20, 2007 10:59 pm | |
| Christophe Mathysen | Jun 20, 2007 11:33 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] fusionner des cellules calc | Actions... |
|---|---|---|
| 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
--- Christophe Mathysen
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







