Re: [fr-users] macro d'édition de cellule dans calc
Oui bien vu Christian, je m'étais basé sur le "reformatage en texte" et j'ai omis le fait qu'il fallait enlever les 3 derniers caractères dans ma formule... Yves Le mar. 13 juin 2023 à 01:13, C Fourcroy a écrit : > Euh, me goure-je ou ça marche pas ? > Il faut enlever les 3 derniers caractères, non ? > $1 renvoi la totalité de la chaîne sélectionnée, donc le ":cc" final aussi. > ça ne serait pas plutôt ^(.*:.*):.*$ > Et si l'on veut vraiment un ' ou un " en début de chaîne il faudrait > quelque chose du genre ''$1 ou "$1 > > > Le 12/06/2023 à 22:48, yves dutrieux a écrit : > > Bonsoir, > > > > comme Claire le mentionne, la solution regex combinée à une macro est > > possible et est drôlement efficace ! > > > > > > > > rechercher : (^.*$) > > remplacer : '$1 (attention à l'apostrophe devant le $1 ! ) > > [x] selection active seulement. > > [x] expression régulière > > [remplacer tout] > > > l'option d'afficher cet écran)> > > [fermer] > > > > et nommer cette macro par exemple : "forcer_en_texte" > > Ensuite soit adapter la barre d'outils ou un raccourci pour y affecter > > cette macro. > > > > Il faudra donc sélectionner les cellules ad-hoc ensuite avant de cliquer > > sur le bouton ou actionner le raccourci ;) > > > > Bonne découverte. > > Yves > > > > > > Le lun. 12 juin 2023 à 14:21, Ocleyr2lalune a > > écrit : > > > >> Bonjour > >> Si ce n'est pas un horaire, ou une durée, et qu'il y a : qui separent > les > >> valeurs, ce doit être traité comme du texte. > >> Cela fait plusieurs questions qu'on essaie de garder un format numérique > >> alors que le format texte s'impose. Chercher à le conserver est une > source > >> d'erreur. > >> > >> Quand une suite de caractère contient uniquement des chiffres qui n'ont > >> pas vocation à s'additionner, les fonctions texte permettent de > manipuler > >> cette suite de caractères. > >> > >> Quand une série de chiffres doit subir une opération du type j'enleve > les > >> 3 derniers chiffres (caractères), j'extraie le 2e et 3e chiffre... On > n'est > >> clairement sur un manipulation de chaine de caractère et se compliquer > la > >> vie a manipuler ça comme des nombres me paraît vraiment hasardeux. > >> > >> Ben oui moi aussi j'ai mes manies Les valeurs texte quand c'en > est > >> > >> Sur la question d'origine > >> > >> Peut-être qu'il faudrait déjà regarder si le format seulement ne doit > pas > >> être corrigé (si on était sur un chrono par exemple) => format/cellules > >> Sinon Sélectionner la colonne données / texte en colonnes > >> Dans la fenêtre qui s'affiche selectionner l'aperçu des valeurs puis > >> texte.(du coup on ne perd pas les 0 en début de chaîne et on revient > dans > >> les clous. > >> > >> Peut-être qu'une regex repond directement à la question : > >> Soit via un rechercher/remplacer (ctrl H) > >> Soit via la fonction regex qu'on oublie souvent > >> > >> Pour la macro, les experts macro pourront corriger ou compléter mais... > >> Il me semble qu'on peut faire d'une fonction personnalisée une macro (si > >> la correction à effectuer est récurrente... Ça s'entend) > >> > >> Claire > >> > >> Le 12 juin 2023 à 13:14, à 13:14, C Fourcroy a > écrit: > >>> OUPS... > >>> > >>> ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); > >>> > >>> & GAUCHE(A1;5)) > >>> Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... > >>> > >>> > >>> > >>> 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 > > > >>> -- > >>> Envoyez un mail à users+unsubscr...@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 > >> -- > >> Envoyez un mail à users+unsubscr...@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 > >> > > >
Re: [fr-users] macro d'édition de cellule dans calc
Le problème étant que la plupart des utilisateurs ne maîtrisent pas la source des données ni la façon dont elle est récupérée. Bien souvent, pour mes clients, on leur donne un fichier Excel, CSV ou autre et ils doivent se débrouiller avec. Notamment il ne faut pas croire que les "services informatiques" des sociétés maîtrisent la bureautique, ils connaissent l’informatique des gros systèmes, Oracle, SQL, ASP, AS400, IBM ou autres mais Excel, Word ou équivalent, ben non, ils n'y connaissent quasiment rien. Au point de ne pas accepter les connections Access, Excel ou autres sur leur base de données alors qu'elles sont en lecture seule ! Notre rôle est de faire communiquer des gens qui ne connaissent pas le boulot ni les possibilités des uns et des autres. Du moins , moi j'y suis confronté au moins une fois par mois. On doit faire avec ce que l'on a, avec ce que les clients ont, pas avec ce qu'ils devraient avoir. Par exemple, faire une requêtes ASP (seule intervention autorisée) pour avoir un csv (seul format autorisé) pour récupérer dans un tableur avant de faire un tableau croisé et autres statistiques, alors que ASP est accessible directement à la plupart des tableur sous Windows . Et ceci dans une société à dimension européenne, juste parce que leur service informatique ne croit pas un "simple formateur" M'enfin bon ...ce que j'en dis ... Le 12/06/2023 à 14:21, Ocleyr2lalune a écrit : Bonjour Si ce n'est pas un horaire, ou une durée, et qu'il y a : qui separent les valeurs, ce doit être traité comme du texte. Cela fait plusieurs questions qu'on essaie de garder un format numérique alors que le format texte s'impose. Chercher à le conserver est une source d'erreur. Quand une suite de caractère contient uniquement des chiffres qui n'ont pas vocation à s'additionner, les fonctions texte permettent de manipuler cette suite de caractères. Quand une série de chiffres doit subir une opération du type j'enleve les 3 derniers chiffres (caractères), j'extraie le 2e et 3e chiffre... On n'est clairement sur un manipulation de chaine de caractère et se compliquer la vie a manipuler ça comme des nombres me paraît vraiment hasardeux. Ben oui moi aussi j'ai mes manies Les valeurs texte quand c'en est Sur la question d'origine Peut-être qu'il faudrait déjà regarder si le format seulement ne doit pas être corrigé (si on était sur un chrono par exemple) => format/cellules Sinon Sélectionner la colonne données / texte en colonnes Dans la fenêtre qui s'affiche selectionner l'aperçu des valeurs puis texte.(du coup on ne perd pas les 0 en début de chaîne et on revient dans les clous. Peut-être qu'une regex repond directement à la question : Soit via un rechercher/remplacer (ctrl H) Soit via la fonction regex qu'on oublie souvent Pour la macro, les experts macro pourront corriger ou compléter mais... Il me semble qu'on peut faire d'une fonction personnalisée une macro (si la correction à effectuer est récurrente... Ça s'entend) Claire Le 12 juin 2023 à 13:14, à 13:14, C Fourcroy a écrit: OUPS... ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); & GAUCHE(A1;5)) Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... 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 -- Envoyez un mail à users+unsubscr...@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 -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
Euh, me goure-je ou ça marche pas ? Il faut enlever les 3 derniers caractères, non ? $1 renvoi la totalité de la chaîne sélectionnée, donc le ":cc" final aussi. ça ne serait pas plutôt ^(.*:.*):.*$ Et si l'on veut vraiment un ' ou un " en début de chaîne il faudrait quelque chose du genre ''$1 ou "$1 Le 12/06/2023 à 22:48, yves dutrieux a écrit : Bonsoir, comme Claire le mentionne, la solution regex combinée à une macro est possible et est drôlement efficace ! rechercher : (^.*$) remplacer : '$1 (attention à l'apostrophe devant le $1 ! ) [x] selection active seulement. [x] expression régulière [remplacer tout] [fermer] et nommer cette macro par exemple : "forcer_en_texte" Ensuite soit adapter la barre d'outils ou un raccourci pour y affecter cette macro. Il faudra donc sélectionner les cellules ad-hoc ensuite avant de cliquer sur le bouton ou actionner le raccourci ;) Bonne découverte. Yves Le lun. 12 juin 2023 à 14:21, Ocleyr2lalune a écrit : Bonjour Si ce n'est pas un horaire, ou une durée, et qu'il y a : qui separent les valeurs, ce doit être traité comme du texte. Cela fait plusieurs questions qu'on essaie de garder un format numérique alors que le format texte s'impose. Chercher à le conserver est une source d'erreur. Quand une suite de caractère contient uniquement des chiffres qui n'ont pas vocation à s'additionner, les fonctions texte permettent de manipuler cette suite de caractères. Quand une série de chiffres doit subir une opération du type j'enleve les 3 derniers chiffres (caractères), j'extraie le 2e et 3e chiffre... On n'est clairement sur un manipulation de chaine de caractère et se compliquer la vie a manipuler ça comme des nombres me paraît vraiment hasardeux. Ben oui moi aussi j'ai mes manies Les valeurs texte quand c'en est Sur la question d'origine Peut-être qu'il faudrait déjà regarder si le format seulement ne doit pas être corrigé (si on était sur un chrono par exemple) => format/cellules Sinon Sélectionner la colonne données / texte en colonnes Dans la fenêtre qui s'affiche selectionner l'aperçu des valeurs puis texte.(du coup on ne perd pas les 0 en début de chaîne et on revient dans les clous. Peut-être qu'une regex repond directement à la question : Soit via un rechercher/remplacer (ctrl H) Soit via la fonction regex qu'on oublie souvent Pour la macro, les experts macro pourront corriger ou compléter mais... Il me semble qu'on peut faire d'une fonction personnalisée une macro (si la correction à effectuer est récurrente... Ça s'entend) Claire Le 12 juin 2023 à 13:14, à 13:14, C Fourcroy a écrit: OUPS... ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); & GAUCHE(A1;5)) Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... 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 -- Envoyez un mail à users+unsubscr...@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 -- Envoyez un mail à users+unsubscr...@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 -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
Merci Yves Mais n'est-il pas possible d'utiliser directement la fonction regex dans la macro (avec les bons paramètres) ? https://help.libreoffice.org/latest/fr/text/scalc/01/func_regex.html Et donc sans passer par le ctrl H (c'était le sens de mon ultime proposition) Claire Le 12 juin 2023 à 22:48, à 22:48, yves dutrieux a écrit: >Bonsoir, > >comme Claire le mentionne, la solution regex combinée à une macro est >possible et est drôlement efficace ! > > > >rechercher : (^.*$) >remplacer : '$1 (attention à l'apostrophe devant le $1 ! ) >[x] selection active seulement. >[x] expression régulière >[remplacer tout] >décocher >l'option d'afficher cet écran)> >[fermer] > >et nommer cette macro par exemple : "forcer_en_texte" >Ensuite soit adapter la barre d'outils ou un raccourci pour y affecter >cette macro. > >Il faudra donc sélectionner les cellules ad-hoc ensuite avant de >cliquer >sur le bouton ou actionner le raccourci ;) > >Bonne découverte. >Yves > > >Le lun. 12 juin 2023 à 14:21, Ocleyr2lalune >a >écrit : > >> Bonjour >> Si ce n'est pas un horaire, ou une durée, et qu'il y a : qui separent >les >> valeurs, ce doit être traité comme du texte. >> Cela fait plusieurs questions qu'on essaie de garder un format >numérique >> alors que le format texte s'impose. Chercher à le conserver est une >source >> d'erreur. >> >> Quand une suite de caractère contient uniquement des chiffres qui >n'ont >> pas vocation à s'additionner, les fonctions texte permettent de >manipuler >> cette suite de caractères. >> >> Quand une série de chiffres doit subir une opération du type j'enleve >les >> 3 derniers chiffres (caractères), j'extraie le 2e et 3e chiffre... On >n'est >> clairement sur un manipulation de chaine de caractère et se >compliquer la >> vie a manipuler ça comme des nombres me paraît vraiment hasardeux. >> >> Ben oui moi aussi j'ai mes manies Les valeurs texte quand c'en >est >> >> Sur la question d'origine >> >> Peut-être qu'il faudrait déjà regarder si le format seulement ne doit >pas >> être corrigé (si on était sur un chrono par exemple) => >format/cellules >> Sinon Sélectionner la colonne données / texte en colonnes >> Dans la fenêtre qui s'affiche selectionner l'aperçu des valeurs puis >> texte.(du coup on ne perd pas les 0 en début de chaîne et on revient >dans >> les clous. >> >> Peut-être qu'une regex repond directement à la question : >> Soit via un rechercher/remplacer (ctrl H) >> Soit via la fonction regex qu'on oublie souvent >> >> Pour la macro, les experts macro pourront corriger ou compléter >mais... >> Il me semble qu'on peut faire d'une fonction personnalisée une macro >(si >> la correction à effectuer est récurrente... Ça s'entend) >> >> Claire >> >> Le 12 juin 2023 à 13:14, à 13:14, C Fourcroy a >écrit: >> >OUPS... >> > >> >ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); >> > >> >& GAUCHE(A1;5)) >> >Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... >> > >> > >> > >> >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 >> >> >> >> >> > >> >-- >> >Envoyez un mail à users+unsubscr...@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 >> >> -- >> Envoyez un mail à users+unsubscr...@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 >> > > >-- >web site : http://www.molenbaix.com -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
Bonsoir, comme Claire le mentionne, la solution regex combinée à une macro est possible et est drôlement efficace ! rechercher : (^.*$) remplacer : '$1 (attention à l'apostrophe devant le $1 ! ) [x] selection active seulement. [x] expression régulière [remplacer tout] [fermer] et nommer cette macro par exemple : "forcer_en_texte" Ensuite soit adapter la barre d'outils ou un raccourci pour y affecter cette macro. Il faudra donc sélectionner les cellules ad-hoc ensuite avant de cliquer sur le bouton ou actionner le raccourci ;) Bonne découverte. Yves Le lun. 12 juin 2023 à 14:21, Ocleyr2lalune a écrit : > Bonjour > Si ce n'est pas un horaire, ou une durée, et qu'il y a : qui separent les > valeurs, ce doit être traité comme du texte. > Cela fait plusieurs questions qu'on essaie de garder un format numérique > alors que le format texte s'impose. Chercher à le conserver est une source > d'erreur. > > Quand une suite de caractère contient uniquement des chiffres qui n'ont > pas vocation à s'additionner, les fonctions texte permettent de manipuler > cette suite de caractères. > > Quand une série de chiffres doit subir une opération du type j'enleve les > 3 derniers chiffres (caractères), j'extraie le 2e et 3e chiffre... On n'est > clairement sur un manipulation de chaine de caractère et se compliquer la > vie a manipuler ça comme des nombres me paraît vraiment hasardeux. > > Ben oui moi aussi j'ai mes manies Les valeurs texte quand c'en est > > Sur la question d'origine > > Peut-être qu'il faudrait déjà regarder si le format seulement ne doit pas > être corrigé (si on était sur un chrono par exemple) => format/cellules > Sinon Sélectionner la colonne données / texte en colonnes > Dans la fenêtre qui s'affiche selectionner l'aperçu des valeurs puis > texte.(du coup on ne perd pas les 0 en début de chaîne et on revient dans > les clous. > > Peut-être qu'une regex repond directement à la question : > Soit via un rechercher/remplacer (ctrl H) > Soit via la fonction regex qu'on oublie souvent > > Pour la macro, les experts macro pourront corriger ou compléter mais... > Il me semble qu'on peut faire d'une fonction personnalisée une macro (si > la correction à effectuer est récurrente... Ça s'entend) > > Claire > > Le 12 juin 2023 à 13:14, à 13:14, C Fourcroy a écrit: > >OUPS... > > > >ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); > > > >& GAUCHE(A1;5)) > >Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... > > > > > > > >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 > >> > >> > > > >-- > >Envoyez un mail à users+unsubscr...@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 > > -- > Envoyez un mail à users+unsubscr...@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 > -- web site : http://www.molenbaix.com -- Envoyez un mail à users+unsubscr...@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
Fwd: [fr-users] macro d'édition de cellule dans calc
Message transféré Sujet : Re: [fr-users] macro d'édition de cellule dans calc Date : Mon, 12 Jun 2023 15:17:55 +0200 De :Kohler Gerard Pour : fourcroy.christ...@free.fr 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 Le 12/06/2023 à 13:14, C Fourcroy a écrit : OUPS... ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); & GAUCHE(A1;5)) Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... 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 -- == https://www.leregardduchat.fr/ == -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
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+unsubscr...@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
Re: [fr-users] modification
Bonjour Je remonte un peu mais c'est parce qu'après réflexion je vois que si c'est une évidence pour moi, ça ne l'est pas forcément pour d'autres... Gauche manipule des chaînes de caractères. Donc le résultat est du texte. C'est tant mieux. Effectivement dans l'exemple de Gilbert on se doute qu'on ne va pas additionner des Siret, Siren qui ne sont "que" l'expression d'une nomenclature. Il est toujours préférable de trouver la solution adaptée à notre propre besoin. Elle a des chances d'être plus simple qu'une solution générique "qui marche dans tous les cas". Reste que quels qu'ils soient, si l'on triture une suite de chiffre. C'est que c'est une chaine de caractère, et que l'on n'ira pas additionner ces valeurs, tout au plus on fera du dénombrement. Ce qui n'empêche pas de faire des calculs plus ou moins savants sur ces dénombrements qui eux sont bien des valeurs chiffrées Claire Le 1 juin 2023 à 18:07, à 18:07, Philippe POUMAILLOUX a écrit: >Merci Claire pour tes interventions toujours très intéressantes. > >Mais GAUCHE transforme le nombre en un résultat “texte”, si je ne me >trompe pas, en tout cas c'est ce que j'ai constaté en appliquant cette >fonction proposée par plusieurs intervenants. > >Je pense que dans l'exemple proposé par Gilbert, cela n'a pas >d'importance car il ne prévoit sans doute pas de faire des opérations >avec les N° SIREN et les SIRET... > >Bien cordialement et surtout merci > >Philippe > >envoyé : 1 juin 2023 à 14:47 >de : Ocleyr2lalune >à : LIARD >Cc: Libre Office >objet : Re: [fr-users] modification > > > > >Bonjour Gilbert > >transformer un siret en siren est un besoin assez commun, penses avant >tout à vérifier que ta source de données ne te fourni pas un résultat >propre avec les siren à chaque fois. > >En l'occurrence les données Sirene sont ouvertes (et plus payantes) >depuis quelques années. Tu peux donc, selon ton besoin te reporter à > >https://www.sirene.fr/sirene/public/creation-fichier > >Les spécialistes de Sirene ne s'amuseront pas à mélanger des Siret et >des Siren dans la même colonne... > >Conceptuellement, Calc travaille en tableur, s'il fallait réaliser une >conversion, un remplacement pour toutes les cellules d'une colonne, >sans >ajouter une colonne "propre" où tu passes ta formule, en fait tu ferais > >une macro qui ferait la même chose que ferait la formule, c'est un peu >"superflu" vu ce que tu cherches à faire !!! > >Effectivement si tu voulais en une ligne appliquer cette >transformation, >un select en SQL ferait trés bien l'affaire... voilà pourquoi tant de >remarques sur ta question, pourtant simple et basique et en rien >choquante. > >La formule qui répond spécifiquement à ta demande est Gauche. Elle est >faite pour ça > >Bonne journée à toi > >Claire > >Le 2023-05-31 18:09, LIARD a écrit : > >Bonjour à tous, > >J'ai un colonne en format nombre avec soit des numéros de SIREN (9 >chiffres) soit des numéros de SIRET (14 chiffres). Je rame pour >qu'automatiquement toute ma colonne soit en 9 chiffres (donc en Siren) >et éliminer les 5 derniers chiffres des numéros en Siret. > >Ex. Siret à l'origine : 48381893600013 pour transformer automatiquement > >en Siren 483818936 > >Est-ce qu'il y a une formule que l'on peut appliquer à la colonne et >pas à chaque cellule ? > >Bien à vous, > >Gilbert LIARD > >-- Envoyez un mail à users+unsubscr...@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 -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
Bonjour Si ce n'est pas un horaire, ou une durée, et qu'il y a : qui separent les valeurs, ce doit être traité comme du texte. Cela fait plusieurs questions qu'on essaie de garder un format numérique alors que le format texte s'impose. Chercher à le conserver est une source d'erreur. Quand une suite de caractère contient uniquement des chiffres qui n'ont pas vocation à s'additionner, les fonctions texte permettent de manipuler cette suite de caractères. Quand une série de chiffres doit subir une opération du type j'enleve les 3 derniers chiffres (caractères), j'extraie le 2e et 3e chiffre... On n'est clairement sur un manipulation de chaine de caractère et se compliquer la vie a manipuler ça comme des nombres me paraît vraiment hasardeux. Ben oui moi aussi j'ai mes manies Les valeurs texte quand c'en est Sur la question d'origine Peut-être qu'il faudrait déjà regarder si le format seulement ne doit pas être corrigé (si on était sur un chrono par exemple) => format/cellules Sinon Sélectionner la colonne données / texte en colonnes Dans la fenêtre qui s'affiche selectionner l'aperçu des valeurs puis texte.(du coup on ne perd pas les 0 en début de chaîne et on revient dans les clous. Peut-être qu'une regex repond directement à la question : Soit via un rechercher/remplacer (ctrl H) Soit via la fonction regex qu'on oublie souvent Pour la macro, les experts macro pourront corriger ou compléter mais... Il me semble qu'on peut faire d'une fonction personnalisée une macro (si la correction à effectuer est récurrente... Ça s'entend) Claire Le 12 juin 2023 à 13:14, à 13:14, C Fourcroy a écrit: >OUPS... > >ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); > >& GAUCHE(A1;5)) >Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... > > > >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 >> >> > >-- >Envoyez un mail à users+unsubscr...@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 -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] poster un message
Bonjour Exactement comme vous venez de le faire. Et pour répondre gardez toujours us...@libreoffice.org en destinataire Vous pouvez poser votre question avec un nouveau message, en mettant en objet quelques mots parlant pour identifier vite demande Claire Le 12 juin 2023 à 07:18, à 07:18, joseph a écrit: >Bonjour ! > >Je voudrais poster un message, comment dois je faire ? > > >-- >Envoyez un mail à users+unsubscr...@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 -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
OUPS... ça serait mieux avec =SI(ESTNONTEXTE(A1); & TEXTE(A1;"hh:mm"); & GAUCHE(A1;5)) Sinon on risque de perdre les 0 de tête, 05 devient 5 etc ... 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 -- Envoyez un mail à users+unsubscr...@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
Re: [fr-users] macro d'édition de cellule dans calc
Bonjour , Je pense que l'on peut faire la même chose sans macro avec une formule du genre =SI(ESTNONTEXTE(A1); & HEURE(A1) & ":" &MINUTE(A1); & GAUCHE(A1;5)) Le test EstNonTexte permet de gérer les saisies qui sont prise sous forme de texte (si l'on a des choses comme 25:78:63) * Si ce n'est pas un texte ( donc, a priori, une heure), on concatène un guillemet ( ... oui, je sais, c'est un peu bizarre) avec l’heure, deux points puis les minutes * sinon (si c'est du texte) on concatène le guillemet avec les 5 caractères à gauche L'idéale serait de mettre ces données dans une colonne au format texte, on pourrait résumer la formule à = & Gauche(A1;5). Sinon, pour la macro, c'est normal : un enregistrement se fait en référence absolue par défaut, contrairement aux formules Bon courage Christian 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 -- Envoyez un mail à users+unsubscr...@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
[fr-users] macro d'édition de cellule dans calc
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 -- == https://www.leregardduchat.fr/ == -- Envoyez un mail à users+unsubscr...@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