Bonjour,
> -----Message d'origine-----
> De : [email protected]
> [mailto:[email protected]]
>
> Bonjour
>
> Email:: [email protected]
> 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 à [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