Bonjour,

> -----Message d'origine-----
> De : [email protected]
> [mailto:[email protected]]
> Envoyé : samedi 17 décembre 2016 18:44
> 
> Email:: [email protected]
> Sujet:: Ma macro me retourne une formule en texte et non son résultat.
> Question:: Bonsoir,
> J'ai dans une macro cette séquence :
> rem ----------------------------------------------------------------------
> dim args55(0) as new com.sun.star.beans.PropertyValue
> args55(0).Name = "ToPoint"
> args55(0).Value = "$G$1"
> 
> dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args55())
> 
> rem ----------------------------------------------------------------------
> dim args56(0) as new com.sun.star.beans.PropertyValue
> args56(0).Name = "StringName"
> args56(0).Value = "Commune"
> 
> dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args56())
> 
> rem ----------------------------------------------------------------------
> dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0,
> Array())
> 
> rem ----------------------------------------------------------------------
> dim args57(0) as new com.sun.star.beans.PropertyValue
> args57(0).Name = "ToPoint"
> args57(0).Value = "$G$2"
> 
> dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args57())
> 
> rem --------------------------------------------------------------------
> dim args58(0) as new com.sun.star.beans.PropertyValue
> args58(0).Name = "StringName"
> args58(0).Value = "=DROITE(I2;NBCAR(52)-CHERCHE(""%"";SUBSTITUE(I2;""
> "";""%"";NBCAR(I2)-NBCAR(SUSTITUE(I2;"" "";"""")))))"
> 
> dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args58())
> rem ---------------------------------------------------------------------
> 
>  document = thisComponent
>    maFeuille = document.Sheets.getByName("Feuille1")
>    Y = 2
>    maCellule = maFeuille.getCellByPosition(0,y)
>    While maCellule.String <> ""
>       zOrigine = maFeuille.getCellByPosition(6,y -1)
>       CellArrive = maFeuille.getCellByPosition(6,y)
>       maFeuille.copyRange(CellArrive.CellAddress, zOrigine.RangeAddress)
>       y = y + 1
>       maCellule = maFeuille.getCellByPosition(0,y)
>    Wend
> 
> rem ---------------------------------------------------------------------
> curieusement la formule est restituée sous forme de texte au lieu
> d'afficher le résultat.
> J'ai essayé aussi en faisant saisir la formule comme suit :
> rem --------------------------------------------------------------------
> ' document = thisComponent
> '   maFeuille = document.Sheets.getByName("Feuille1")
> '   maCellule = maFeuille.getCellByPosition(6, 1)
> '   maCellule.FormulaLocal = "=DROITE(I2;NBCAR(I2)-
> CHERCHE(""%"";SUBSTITUE(I2;"" "";""%"";NBCAR(I2)-NBCAR(SUBSTITUE(I2;""
> "";"""")))))"
> 
> rem ---------------------------------------------------------------------
> j'obtiens la même chose !
> Pouvez vous m'aider à résoudre ce problème ?
> Merci d'avance
> DJ

J'ai reproduit la macro dans LibO 5.2.3.3 sous Vista, et le résultat est un
code d'erreur, ce qui est normal puisque je n'ai pas les données, en
remplaçant la formule par =MOYENNE(A1:A10) j'obtiens le bon résultat.

MAIS ...si je formate auparavant les cellules en Texte, alors en effet,
j'obtiens le texte de la formule, ce qui est logique => voir de ce coté là.

Cordialement,

Michel 

PS: Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la liste
reçoive une copie de votre réponse.


-- 
Envoyez un mail à [email protected] pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à