zorglub.1er a écrit :
Bonjour ;0)

D'abord merci pour votre attention et votre engagement dans
cette liste :0)

  REM equivalence com.sun.star.table.CellHoriJustify.CENTER
  oRange.HoriJustify = 2

Cela fonctionne.

Toutefois, quand je cherche dans l'aide d'OpenOffice.org je ne
trouve ni la  propriété CellHoriJustify ni la propriété merge.

http://api.openoffice.org/docs/common/ref/com/sun/star/util/XMergeable.html#merge

D'ailleurs, comment sais tu que pour CellHoriJustify on
utilise les chiffres 1, 2, 3 et non left, center, right quand
cette propriété est utilisée sans l'usage de com.sun.star.table. ?


Un bon moyen d'en apprendre un peu plus pour manipuler OOo via des macros est d'utiliser l'excellent outils Xray

Ainsi, pour HoriJustify tu obtiendras cette information :

http://www.cijoint.fr/cij97272337418937.png

qui précise qu'une valeur Integer est utilisée.

En faisant quelques tests on finit par en retirer des éléments d'informations utiles ;)

Xray est disponible ici (merci Bernard Marcelly) :
http://fr.openoffice.org/Documentation/How-to/Basic/XrayTool_fr.sxw

En effet, il n'est pas mentionné dans cette page ci-desous que
les chiffres doivent être utilisés dans ce cas.

http://api.openoffice.org/docs/common/ref/com/sun/star/table/CellHoriJustify.html


L'emploi des valeurs numériques n'est pas recommandée, ainsi que l'a rappelé Laurent Godard dans ce dernier message :
http://fr.openoffice.org/servlets/ReadMsg?list=prog&msgNo=5965

Il est nettement préférable d'utiliser les constantes alpha.

Mais parfois il pourra être nécessaire d'en récupérer le correspondant numérique :

http://ooo.developpez.com/faq/?page=Automation#Question174


Ainsi, je ne sais pas comment trouver (et comment chercher)
que c'est les chiffres 1, 2, 3 qu'il faut utiliser dans le cas
de CellHoriJustify sans com.sun.star.table.

Voici une macro fonctionelle usant de ces deux propriétés sans com.sun.star

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

REM  *****  BASIC  *****

Sub ExempleFusion

thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("d2").String
= "OUILLE"
thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("d2:e2").merge(true)
thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("d2:e2").HoriJustify=3

thisComponent.Sheets.getByName("Feuille1").getCellByPosition(1,0).String
= "quatre"
thisComponent.Sheets.getByName("Feuille1").getCellRangeByPosition(1,0,
6,0).merge(true)
thisComponent.Sheets.getByName("Feuille1").getCellRangeByPosition(1,0,
6,0).HoriJustify=2

thisComponent.Sheets.getByName("Feuille1").getCellByPosition(3,
1).String = "KIKO"
thisComponent.Sheets.getByName("Feuille1").getCellRangeByPosition(3,1,
4,1).merge(true)
thisComponent.Sheets.getByName("Feuille1").getCellRangeByPosition(3,1,
4,1).HoriJustify=2

End Sub

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

Mais quel est le but de la question ?
Quel est l'interet escompté ?

Comme je ne comprends pas ce qu'est "com.sun.star.table", ni
son usage (je ne sais pas m'en servir), j'essaye de faire des
macros sans "com.sun.star.table"

En effet, étant débutant dans l'apprentissage des macros
l'usage  de "com.sun.star.table" ne m'est pas évident.

Merci d'avance ;0)


La programmation "avancée" requiert de l'expérience, aussi il faut prendre le temps de se documenter (les sources d'informations sont nombreuses) , puis de tester.

Je t'invite dans un premier temps à lire ces documents:

http://docs.sun.com/app/docs/doc/819-1328?l=fr (en ligne)
http://docs.sun.com/app/docs/doc/819-1328?l=fr&a=load (téléchargement)

http://www.eyrolles.com/Informatique/Livre/9782212117639/livre-programmation-openoffice-org-2.php
ouvrage d'excellente qualité à lire et relire ;)

Francois Gatto

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à