Bonjour,

1) Dans le livre Programmation OpenOffice.org 3 de Marcelly/Godard page 465 il est expliqué qu'une fonction calc ne peu pas modifier la cellule en cours ou une autre cellule et que l'API ignore les actions que peut produire la fonction. Il s'agit donc bien d'une fonction au sens mathématique du terme, elle renvoie une valeur mais ne modifie pas l'environnement. Inutile donc de tenter de modifier une cellule en appelant une fonction depuis cette cellule ou une autre.

2) Par contre, je fais une petite remarque concernant les sub et les fonctions de OOoBasic dans le cadre d'une exécution ordinaire par macro. Là, il n'y pratiquement pas de différence entre sub et function. Par exemple si on code :

  sub test() as long
  print "salut"
  test = 5
  end sub

  sub essai
  dim num as long
  num = test
  print num
  end sub

l'exécution de essai affiche "salut" puis 5. Le sub test se comporte exactement comme une fonction.

Inversement si on code :

  function truc()
  print "Hello"
  end function

  sub essai2
  truc
  end sub

l'exécution de essai2 affiche "Hello". La fonction truc se comporte exactement comme une sub.

En fait, OpenOffice ne semble avoir qu'une sorte de sous-programme, la différence de nom n'étant qu'une déclaration d'intention du contexte dans lequl on souhaite l'utiliser.

Bien entendu, je ne recommande pas d'utiliser ce genre de codage et, personnellement, je fais bien attention à ne définir : - que des fonctions qui ne font que renvoyer une valeur et ne modifie pas l'environnement (cad qui n'agissent pas) - que des sub (actions) qui ne renvoient pas de valeur (sauf éventuellement un code d'erreur d'exécution par exemple, cela peut être pratique) mais il faut savoir que OOoBasic permet la confusion des 2 ce qui peut empêcher de détecter rapidement certaines erreur.

Pascal

---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à