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