Bonjour

Je dois passer à quelque chose d'évident, c'est pourquoi je viens chercher une explication rationnelle..

Je voulais naïvement créer une fonction qui en fonction d'un paramètre me change la couleur de la cellule (pour l'instant nombre de ne sert à rien, c'est pour illustrer l'ECM.

function Engins2(nombre as integer) as variant
Dim oDocument as object, oFeuilles as object
Dim oFeuille as object, oCell as object, oZone as object
oDocument = thisComponent
oFeuilles = oDocument.Sheets
oFeuille = oFeuilles.getByName("Feuille1")
oCell=oFeuille.getCellByPosition(1,1)
oCell.CellBackColor=RGB(150,0,0)
end function

Si j'appelle cette fonction depuis une cellule elle est sans effet, oCell contient bien les valeurs proprement dite, mais les affectations ne sont pas faites.

sub Engins2()
Dim oDocument as object, oFeuilles as object
Dim oFeuille as object, oCell as object, oZone as object
oDocument = thisComponent
oFeuilles = oDocument.Sheets
oFeuille = oFeuilles.getByName("Feuille1")
oCell=oFeuille.getCellByPosition(1,1)
oCell.CellBackColor=RGB(150,0,0)
end sub

Par contre, ce codage fonctionne, si j'affecte la macro à un bouton ou je la lance via le lanceur de macros...

Quelle est l'explication de ce comportement ? On ne peut pas créer de fonction qui utilise l'API ?

D'avance merci pour toute information
xavier

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

Répondre à