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.