Bonjour,

> -----Message d'origine-----
> De : demande_aide...@libreoffice.org
> [mailto:demande_aide...@libreoffice.org]
> 
> Bonjour
> 
> Email:: didierjasse...@gmail.com
> Sujet:: Appeler une fonction de calc dans une macro
> Question:: Bonjour,
> Voici mon problème : j'ai une feuille de calcul comportant une colonne où
> figurent la civilité ou la forme juridique d'une entreprise. Je souhaite
> faire apparaître séparément dan 2 colonnes ces éléments. J'ai procédé
> ainsi :
> Inserttion d'une colonne avant celle contenant les données à exploiter
> (colonne D) et saisie de la formule = =GAUCHE(E2;CHERCHE(" ";E2)-1), puis
> recopie de la formule jusqu'au bas de mon tableau
> Insertion d'une autre colonne après celle contenant les données à
> exploiter (colonne D) et saisie de la formule
> =STXT(E2;TROUVE("%";SUBSTITUE(E2;" ";"%";1))+1;NBCAR(E2)) puis recopie de
> la formule jusu'au bas de mon tableau et masquage de la colonne contenant
> les données d'origine.
> Je voudrais automatiser cela par une macro mais avec l'enregistreur les
> formule ne sont pas prises.
> Comment faire sachant que je ne maîtrise pas le langage macro de
> LibreOffice ?
> Merci de votre aide

Pourquoi automatiser ? une fois le travail que vous avez décrit effectué, il
reste présent ...

Voici quelques éléments:
les formules complexes ne sont pas enregistrées avec l'enregistreur de
macro, mais on peut les rajouter avec un peu d'astuce:

1/ faire la même chose avec des formules simples (=A1+A2) par exemple

2/ dans la macro vous trouverez les lignes suivantes :

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "=A1+A2"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())

3/ remplacer alors =A1+A2 par la bonne formule, mais attention, en anglais:

=LEFT(E2;SEARCH(" ";E2)-1)
=MID(E2;FIND("%";SUBSTITUTE(E2;" ";"%";1))+1;LEN(E2))

Ça devrait marcher, je viens de le faire sur un cas très simplifié (LibO
5.1.5 / Vista)

Pour trouver les formules en anglais, après les avoir écrites en français:
Outils > Options > LibreOffice Calc > Formules > Cocher "utilser les noms de
fonction en anglais


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 à users+unsubscr...@fr.libreoffice.org 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

Reply via email to