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


Pour répondre précisément à cette question "/pourquoi je n'arrive pas à faire une macro qui respecte la valeur de la cellule d'origine et me la remplace par la valeur de la cellule où j'ai créé cette macro /."
Il faut regarder le code de la macro Outils-Macros-Editer les macros ...
On trouve à la fin quelque chose du genre

/dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "StringName"
args4(0).Value = CHR$(34)+"12:05"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args4())/

Ce qui signifieque l'on va écrire la valeur créée à l'endroit où l'on est. _L'enregistrement n'a pas enregisté la manipulation mais le résultat de la manipulation_ (le texte généré) et la macro va simplement écrire ce résultat ... Il faut bien dire que l'enregistrement de macro n'est pas le point fort de LO !  Il faut quasiment toujours rédiger soi-même la macro et donc connaître le Basic (ou autre langage accepté par LO) Peut-être que quelqu'un créera cette macro (peut-être moi, à l'occasion) mais, dans la mesure où l'on peut obtenir le résultat avec une formule relativement simple, ce sera une perte de temps, du genre le fameux marteau pilon pour ouvrir une noix. Avant de vouloir avoir recours aux macros, il vaut mieux creuser les formules. En général, quand on ne connait ni l'un ni l'autre, créer une formule prend quelques heures alors que créer une macro prend quelque jours voire plus

En dehors de ça, apprendre un langage de programmation est une expérience intéressante (... euh, quand on aime ça !) et puis ça permet aussi, souvent de mieux comprendre le comportement de l'ordinateur ou de l'application, par exemple, pour Calc, de créer des formule conditionnelles (fonction SI and C°) plus efficaces


Le 12/06/2023 à 11:52, Kohler Gerard a écrit :
bonjour,

dans une feuille calc j'ai plusieurs dizaines de cellules ayant des données sous la forme xx:yy:zz

clac les considère comme des données horaire, ce qu'elles ne sont pas.

je voudrais remplacer ces données par 'xx:yy (ajout d'un guillemet au début et suppression des 3 derniers caractères)

j'aimerai assigner une macro à une combinaison de touche.

je me place dans une cellule à modifier,

j'utilise le menu enregistrer une macro,

je fais F2 puis touche fin ensuite 3 fois retour en arrière puis touche origine puis ' puis entrée

j'enregistre la macro

lorsque je me place sur une autre cellule et que je lance cette macro elle me remplace la valeur de la cellule par celle de la cellule qui m'a servi pour enregistrer ma macro.

où est mon erreur ?

merci pour votre aide

Gérard

ma grande interrogation c'est surtout pourquoi je n'arrive pas à faire une macro qui respecte la valeur de la cellule d'origine et me la remplace par la valeur de la cellule où j'ai créé cette macro .

merci pour votre aide

Gérard

--
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.