[Résolu][Calc] Créer un bouton pour exporter en TXT

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

[Résolu][Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

Bonjour,

si vous avez été habitué à excel, exporter des fichiers au format txt-mac ou csv-windows était facile.
TROP facile, en réalité, mais pour des utilisateurs basiques comme moi, ça suffisait bien.

Avec LibreOffice, le nombre d'options est faramineux. En outre elles sont peu accessibles (il faut cocher une case au moment de l'export pour voir les options) et Libre Office ne change même pas l'extension en .txt ou .csv, il laisse .ods !
bref, pas très user-friendly (en tout cas pour les nuls dans mon genre).

J'ai été confronté au problème et après pas mal d'étapes, d'erreurs, de blablabla, j'ai fini par trouver une solution qui me convient : un bouton qui retient les réglages de MA façon d'exporter les données (celle dont j'ai besoin pour mes usages).

Voici l'explication en images (11 images = 11 posts car je n'ai pas trouvé comment ajouter pls PJ dans un post)
CreerBoutonExportCSVLibreOffice-01.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-02.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-03.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-04.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-05.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-06.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-07.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-08.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-09.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-10.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: TUTO [Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

CreerBoutonExportCSVLibreOffice-11.png

Voilà, le tour est joué.


Concernant les macro, en voici 2 variantes qui me donnent satisfaction (elles sont principalement l'œuvre de forumistes que je me dois de citer ici, luc1en et zeguedon, je n'ai fait que modifier à la marge ou compiler plusieurs sources. Merci à eux) :


Macro pour exporter en txt avec tabulations format MAC (équivalent au format « texte (séparateur : tabulations) » d'excel 2004)

Code : Tout sélectionner

Option Explicit
    Sub ExpTxtTab()
    Dim zeguedonDoc As Object
    Dim zeguedonFP As Object, zeguedonNomDoc() As String, zeguedonFPtype(0) As Integer
    Dim zeguedonPS As Object
    Dim cheminUtilisateur As String
    Dim destination As String
    Dim props1(1) As New com.sun.star.beans.PropertyValue
       zeguedonDoc = thiscomponent
       zeguedonFP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
       zeguedonPS = CreateUnoService("com.sun.star.util.PathSubstitution")
       cheminUtilisateur = zeguedonPS.getSubstituteVariableValue("$(work)")
       zeguedonFPtype(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE
       zeguedonFP.Title = "Export au format TXT"
       zeguedonFP.initialize(zeguedonFPtype())
       zeguedonFP.CurrentFilter = "Textes"
       zeguedonFP.appendFilter("Textes", "*.txt")
       zeguedonFP.DefaultName = Split(zeguedonDoc.Title,".ods")(0
       zeguedonFP.DisplayDirectory = ConvertToURL(cheminUtilisateur)
       If zeguedonFP.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
          zeguedonNomDoc() = zeguedonFP.Files
          props1(0).Name = "FilterName"
          props1(0).Value = "Text - txt - csv (StarCalc)"
          props1(1).Name = "FilterOptions"
          props1(1).Value = "9,34,MAC,1,,0,false,true,true,false"
          MsgBox(chr(13) & "   Le jeu de caractères est:  Europe Occidentale (Apple Macintosh) " & chr(13) & chr(13) &_
              "   Le séparateur de champs est: [Tabulation] ")
          destination = convertToURL(zeguedonNomDoc(0))
          zeguedonDoc.storeToURL(destination, props1())
       End If
       zeguedonFP.dispose
    End Sub
Macro pour exporter en CSV iso avec point-virgule (résultat proche du format « CSV (windows) » d'excel 2004)

Code : Tout sélectionner

Option Explicit
    Sub ExpCsvPointVirgule()
    Dim zeguedonDoc As Object
    Dim zeguedonFP As Object, zeguedonNomDoc() As String, zeguedonFPtype(0) As Integer
    Dim zeguedonPS As Object
    Dim cheminUtilisateur As String
    Dim destination As String
    Dim props1(1) As New com.sun.star.beans.PropertyValue
       zeguedonDoc = thiscomponent
       zeguedonFP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
       zeguedonPS = CreateUnoService("com.sun.star.util.PathSubstitution")
       cheminUtilisateur = zeguedonPS.getSubstituteVariableValue("$(work)")
       zeguedonFPtype(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE
       zeguedonFP.Title = "Export au format CSV"
       zeguedonFP.initialize(zeguedonFPtype())
       zeguedonFP.CurrentFilter = "Textes"
       zeguedonFP.appendFilter("Textes", "*.csv")
       zeguedonFP.DefaultName = Split(zeguedonDoc.Title,".ods")(0
       zeguedonFP.DisplayDirectory = ConvertToURL(cheminUtilisateur)
       If zeguedonFP.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
          zeguedonNomDoc() = zeguedonFP.Files
          props1(0).Name = "FilterName"
          props1(0).Value = "Text - txt - csv (StarCalc)"
          props1(1).Name = "FilterOptions"
          props1(1).Value = "59,34,22,1,,,false"
          MsgBox(chr(13) & "59    =   Le séparateur de champs est: ; [point-virgule] " & chr(13) & chr(13) &_
              "34    =   délimiteur de texte est '' [guillemet Anglais]  " & chr(13) & chr(13) &_
              "22    =   Le jeu de caractères est:  occidental iso-8859-15 " & chr(13) & chr(13) &_
              "1     =   utiliser la première ligne " & chr(13) & chr(13) &_
              "false =   décocher la checkbox 'mettre entre guillemets toutes les cellules de texte' ")
          destination = convertToURL(zeguedonNomDoc(0))
          zeguedonDoc.storeToURL(destination, props1())
       End If
       zeguedonFP.dispose
    End Sub

Et pour adapter le code à vos usages, il suffira de modifier les valeurs des jetons dans le code props1(1).Value en suivant les instructions de la page suivante : https://wiki.openoffice.org/wiki/FR/Doc ... er_Options
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu][Calc] Créer un bouton pour exporter en TXT

Message par Dude »

Pour info, les lancements de macro par bouton font l'objet d'un autre tutoriel épinglé en tête de gondole :
https://forum.openoffice.org/fr/forum/v ... =8&t=40146
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 139
Inscription : 29 août 2017 08:46

Re: [Résolu][Calc] Créer un bouton pour exporter en TXT

Message par ccciolll »

En effet, je ne l'avais pas vu.

Toutefois, de ce que j'arrive à en comprendre c'est un sujet plus large, et, à mon sens, moins accessible à un newbie dont la problématique précise serait de trouver une solution stable pour exporter en txt ou csv d'une façon précise (ce qui était mon cas). La compréhension, pour moi, s'est passée en plusieurs étapes.
- votre serviteur qui veut exporter dans un format stable de façon répétitive découvre d'abord qu'il faudra pour cela créer une macro, ce qui est nouveau pour lui, les macros il ne pratique pas ça couramment.
- Une fois qu'il a réussi à arriver à une macro fonctionnelle, l'ajout d'un bouton est un confort appréciable car sinon il serait bien incapable de se souvenir comment activer la macro épisodiquement.
De fait, mon « tuto » reprend ce parcours intellectuel et présente effectivement 2 étapes bien distinctes (1 - créer une macro / 2 - activer cette macro par un bouton) dans une seule suite de captures.
Mon « tuto » s'adresse vraiment à des débutants en montrant pas à pas dans quel endroit cliquer pour réaliser ces deux étapes (et je ne vous dis pas le temps qu'il m'a fallu pour refaire ces parcours, ça reste de l'aventure pour moi !) et en revanche ne fait que donner un clefs-en-mains concernant la programmation de macro en tant que telle (ceci car je ne suis pas suffisamment compétent pour détailler davantage le contenu de la macro).

En vérité, même si je l'avais vu, ce tuto que tu mets en lien, je n'aurais pas imaginé qu'il puisse s'appliquer à ma problématique. D'abord parce que son titre parle d'IMPORTER une macro, or ce que je cherchais à faire c'est activer une macro déjà existante. Et ensuite parce que (mais ce ne doit pas être facile de se mettre au niveau de qqun qui est vraiment débutant, tellement certaines choses doivent te sembler évidentes), quand on est débutant et qu'on veut juste pouvoir exporter au format untel, on ne pense pas forcément qu'il faudrait développer une macro pour ça. Donc on ne va pas forcément chercher le terme Macro+bouton. Et du coup ce débutant va passer à côté.
Un peu comme si, pour grossir le trait, qqun qui n'aurait jamais cuisiné cherchait comment faire pour servir du gâteau à ses invités et tombait sur un tuto qui dit « pour servir du gâteau à vos invités, acheter vos ingrédient, faire le gâteau selon votre recette, le cuire, le mettre sur la table » ça répond à sa question globale et ensuite, une fois qu'il a compris qu'il faut des ingrédients et une recette, alors il peut commencer à chercher des tutos plus barbus avec des listes d'ingrédients, des recettes, etc.
Mais avant ça, s'il n' pas le mot « ingrédient » ou « recette » en tête ou dans le champ rechercher, il va passer à côté des solutions qui le concernent.
Bon, voilà. J'en étais à ce niveau-là, en gros.
L'informatique est un peu comme une nouvelle langue, quand ce n'est pas ta langue natale, il y a des évidences à côté desquelles tu vas passer et cette difficulté n'est pas forcément évidente à appréhender quand on baigne dans cette langue-là tous les jours.


Bon, par contre, une fois qu'on leur a mis le pied à l'étrier avec mon tuto très ciblé, je trouve que tu as bien raison d'ouvrir vers des horizons un peu plus ambitieux.
Côté pro : LibreOffice 24 sur LinuxMint
Côté perso : LibreOffice 24 sur MacOSX
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Résolu][Calc] Créer un bouton pour exporter en TXT

Message par Denis4085 »

ccciolll a écrit : 27 févr. 2018 09:34 Avec LibreOffice, le nombre d'options est faramineux. En outre elles sont peu accessibles (il faut cocher une case au moment de l'export pour voir les options) et Libre Office ne change même pas l'extension en .txt ou .csv, il laisse .ods !
bref, pas très user-friendly
je n'ai même pas encore trouvé la case à cocher qui débloquent la faramineuse série d'options cachées, c'est pour te dire dans l'état de détresse où je me trouvais.

Il y a juste ceci dont je n'arrive pas à saisir la syntaxe, malgré moult relecture de Options de filtres

Code : Tout sélectionner

props1(1).Value = "9,34,MAC,1,,0,false,true,true,false"
MsgBox(chr(13) & "   Le jeu de caractères est:  Europe Occidentale (Apple Macintosh) " & chr(13) & chr(13) &_
"   Le séparateur de champs est: [Tabulation] ")
ça se joue là pour UTF8, et les séparateurs de champs (mais input ou output ?), en bref comment adapter à mes besoins.

Pour ce qui est de l'export pur, il semble qu'un simple copier coller dans un nouveau fichier texte d'un éditeur de texte qui va bien suffise à obtenir une table propre au format texte avec \t comme délimiteur de champs. Du coup, après 48h acharnées pour faire fonctionner RECHERCHV, afin d'extraire des résultats de ma table, j'obtiens les résultats voulu en 15 seconde sur une ligne de sed, avec un petit cut, (2 cmd un pipe au milieu et voilà). Je RES-PIRE.

Merci encore :P
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4345
Inscription : 06 oct. 2008 08:03

Re: [Résolu][Calc] Créer un bouton pour exporter en TXT

Message par Oukcha »

Bonjour,

Nous vous rappelons les règles de ce forum et notamment la n° 7
Un sujet = le problème d'une seule personne

Comme vous avez pu le lire, ce sujet est désormais résolu. Si vous avez également ce problème, c'est que ce dernier est différent. Votre configuration n'est peut être pas la même que celle de l'auteur de ce fil.

Dans ce cas et pour des raisons de lisibilité sur ce forum, nous vous demandons de créer une nouvelle question en rappelant que vous avez le même problème que dans ce fil.

Merci de votre collaboration.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image