Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Bonjour Thomas,

Le 11/09/2018 à 02:02, Thomas De Contes a écrit :

quand on a un document ms office qui contient des macros, comment ça se passe ?

assez mal :)


j'imagine que le module qui traduit le document du format ms office au format OpenDocument ne 
traduit pas le code basic des macros ?


Les liens donnés par Bernard sont intéressants.

Je voudrais ici insister sur un point qui me semble essentiel lors du passage de MSOffice à LibreOffice ("migration").

Indubitablement, les deux outils sont différents. Les développeurs (de LibreOffice) font de leur mieux pour faciliter la prise en mains de LibO par des utilisateurs de MSO. Même si rien ne ressemble plus à un tableur qu'un autre tableur, il y a inévitablement des éléments qui ne sont pas traités de la même manière. C'est comme ça. Bon, comme dit, la prise en mains est quand même (à mon avis) relativement aisée.

Là où ça se corse, c'est quand on en arrive aux macros. Si les deux suites utilisent le même langage (Basic), doté de la même syntaxe -- ce qui rend les choses quand même familières -- les analogies s'arrêtent là.

Déjà, si vous expérimentez l'enregistreur de macros, vous verrez que le code produit par LibO est... mmm... comment dire... fort "différent" de ce à quoi on s'attendrait. J'en reste là pour cet outil qui a de l'intérêt lorsqu'il s'agit de créer du code "jetable" mais qui, autrement, ne vaut généralement guère la peine de s'y attarder.


Il faut savoir que les deux API sont fondamentalement différentes. Celle de LibO est (toujours à mon avis), bien plus puissante et sophistiquée que celle de MSO. Le prix à payer est la compréhension de la structuration "objet" très complète/complexe de cette API. Comme montré dans les pages pointées par Bernard, des commandes simples en VBA ressemble à un infâme gloubi-boulga en LibO Basic. Ne vous attardez pas à ça ; l'API LibO permet de réaliser... tout.

Pour avoir une première approche structurée de LibO Basic, il n'y a pas à tortiller, voici trois ressources indispensables au débutant :

-- en français : la Bible, par Marcelly & Godard
(existe en version papier ou électronique)
https://www.eyrolles.com/Informatique/Livre/programmation-openoffice-org-et-libreoffice-9782212132472

-- en anglais : les bouquins de Andrew Pitonyak
(à télécharger)
http://www.pitonyak.org/oo.php

-- l'API (courage !)
https://api.libreoffice.org/docs/idl/ref/index.html

et celle d'AOO
https://www.openoffice.org/api/


Pour terminer ce message un peu long, je conseille, lors des migrations, de réévaluer l'intérêt des macros VBA existantes (souvent devenues obsolètes du fait de l'ajout le la fonctionnalité nativement dans l'outil) et, pour celles qui restent, de les revoir de fond en comble à la lumière des progrès et des apports du nouvel outil. En d'autres termes : repensez-les, redéveloppez-les et réécrivez-les plutôt que de vouloir adapter des trucs qui datent parfois de Mathusalem.



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.

Bien cordialement,
--
Jean-Francois Nifenecker, Bordeaux


--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.