[Résolu] [Calc] Fusionner .txt dans un .csv lié à QGis

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 !
Reb24
Fraîchement OOthentifié
Messages : 6
Inscription : 11 sept. 2018 13:36

[Résolu] [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Reb24 »

Bonjour à tous,

J'arrive sur le forum et je débute avec LibreOffice.

Depuis que je me suis mise à LibreOffice, j'ai pas mal réussi à me débrouiller en cherchant par moi même les choses que j'avais besoin de faire. Cependant aujourd'hui je fait face à un problème qui dépasse mes compétences informatiques.

Je reçois régulièrement des mails contenant les fichiers .txt avec des localisations GPS.
J'ai créé un .csv que j'ai importé dans un logiciel de cartographie QGis. A chaque ouverture de QGis, le logiciel va chercher toutes les localisations GPS du .csv et les projette sur la carte.

Pour le moment, je copie colle les données de chaque .txt dans mon .csv manuellement. Cependant, j'aimerai savoir si il y a une macro permettant à mon fichier .csv (1) d'aller chercher les derniers .txt enregistrés dans un dossier, (2) de coller les lignes à partir de la 4ème (le nombre de lignes de données varient mais la 1ère donnée GPS commence à la 4ème ligne) à la suite des autres données déjà présentes dans le .csv en laissant la 1ère colonne vide et (3) d'étirer la 1ère colonne numéro de ligne jusqu'à la dernière ligne de données collée (colonne essentielle pour mon projet cartographique sous QGis).

J'imagine que par une macro c'est possible, mais je ne suis pas du tout familière avec le langage nécessaire pour formuler ma requête.

En PJ, j'ai collé un screenshot de la structure de mon fichier .csv ainsi que la structure des données GPS que je reçois en .txt

Merci d'avance pour tout l'aide que la communauté pourrait m'apporter.
Pièces jointes
screenshot.jpg
Dernière modification par micmac le 21 sept. 2018 10:26, modifié 3 fois.
Raison : Ajout de la coche verte
LibreOffice version: 5.4.6.2 - Windows 7 Professionnel
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Hubert Lambert »

Bonjour,

Si tu fournissais un échantillon du fichier csv et des fichiers txt, je pense que les membres du forum seraient plus enclins à te répondre. Et tu augmenterais tes chances d'une réponse adaptée... :wink:
Par ailleurs, es-tu certain(e) qu'il faille absolument passer par un programme comme LibreOffice pour obtenir ce que tu cherches ? Si un script permet déjà à ton programme de récupérer le csv, il pourrait sans doute être adapté pour, préalablement, y insérer les txt (la numérotation des lignes n'étant, a priori, pas un obstacle en soi).
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 623
Inscription : 10 août 2017 00:15

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Jurassic Pork »

hello,
voici un exemple de manipulation de fichier csv en import dans calc par macro Basic. Cela ressemble fortement à ce qui est demandé dans ce fil de discussion mais il faudra certainement ajuster certains paramètres.
le principe :
1 - On choisit le fichier à importer par une boîte de dialogue.
2 - On importe le fichier csv dans calc on ne filtrant que ce qui est intéressant et en formatant les données pour qu'elles correspondent au fichier cible.
3 - On copie la plage de cellules contenant les données récupérées.
4 - On cherche le dernier indice dans le document cible et on génére tous les indices suivants.
5 - On transfert la plage de cellules copiées à partir de la deuxième colonne à côté des indices générés.

Voici le code de la macro avec commentaires :

Code : Tout sélectionner

Sub ImportCSV
' J.P  Septembre 2018
Dim vDoc ' Le document csv de travail
dim fileProps(2) as new com.sun.star.beans.PropertyValue
cDoc = ThisComponent 'classeur courant
oTargetSheet = cDoc.Sheets(0)  'première feuille classeur courant
fileProps(0).Name = "FilterName"
fileProps(0).Value = "Text - txt - csv (StarCalc)"
FileProps(1).Name = "Hidden"
FileProps(1).value = true ' on cache ou pas le fichier
fileProps(2).Name = "FilterOptions"
' La doc pour le format du filtre est ici : 
' https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
ChoixColonnes = ""
' Le csv de test comprend 12 colonnes
' 5 -> on traite les colonnes  1 à 2 avec format Date/Heure YY/MM/DD
For i = 1 to 2
ChoixColonnes = ChoixColonnes & i & "/5/"
Next i 
' 10 -> on traite les colonnes  3 à 7 avec format "english" -> . séparateur décimal
For i = 3 to 7
ChoixColonnes = ChoixColonnes & i & "/10/"
Next i 
' On ignore les colonnes 8 à 12 (9)
For i = 8 to 12
ChoixColonnes = ChoixColonnes  & i & "/9/"
Next i
' 9 = tab - 44 = virgule - 59 = point virgule - délimiteur de champ
' 34  guillemet délimiteur de texte
' 77 Caractères iso-8859
' 4 on saute 4 lignes
fileProps(2).Value = "9,34,77,4," & choixColonnes
' On crée une boîte de dialogue pour choisir le fichier csv
oDlg = createUnoService("com.sun.star.ui.dialogs.FilePicker")
oDlg.setMultiSelectionMode(false)
oDlg.execute
aUrl = oDlg.getFiles()
' On ouvre le fichier avec le filtre construit
vDoc = StarDesktop.loadComponentFromURL(aURL(0), "_blank", 0, fileProps())
oSourceSheet=vDoc.sheets(0) 'première feuille
' On cherche le nombre de lignes 
Curs = oSourceSheet.createCursor
Curs.gotoEndOfUsedArea(True)
NumRows = Curs.Rows.Count
oArange=oSourceSheet.getCellRangeByPosition(0,0,6,NumRows-1)'source
' On copie les cellules
oAarray=oARange.getDataArray()
' On cherche le dernier indice de la 1ère colonne dans la cible
Curs = oTargetSheet.createCursor
Curs.gotoEndOfUsedArea(True)
LastRow = Curs.Rows.Count
LastId = oTargetSheet.getCellByPosition(0,LastRow -1).Value
for i=0 to NumRows - 1
oTargetSheet.getCellByPosition(0,LastRow + i).Value = LastId + i + 1
next i
'  On indique où l'on doit coller les cellules
' Attention la plage cible doit avoir ABSOLUMENT la même taille que la plage source
oCrange=oTargetSheet.getCellRangeByPosition(1,LastRow,7,LastRow + NumRows - 1 )'cible
' On  copie les cellules dans la cible
oCrange.setDataArray(oAarray)
' On ferme le document source
vDoc.close (-1)
End Sub
En pièce jointe un zip contenant le fichier test_csv.ods contenant la macro ImportCSV et un fichier exemple d'entrée csv.
Avec cela :
testCSV_calc-1.png
J'obtiens ceci après exécution de la macro :
testCSV_calc-2.png
Ami calmant, J.P
Pièces jointes
test_csv.zip
(17.01 Kio) Téléchargé 49 fois
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Reb24
Fraîchement OOthentifié
Messages : 6
Inscription : 11 sept. 2018 13:36

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Reb24 »

Bonjour à tous les deux et merci pour vos réponses.

Je ne réussissai pas à joindre mon .csv et les .txt mais je n'avais pas pensé au .zip que j'ai donc mis en pièce jointe cette fois.

Je suis obligée de passer par un .csv construit avec séparation point virgule car c'est uniquement comme ça que mon logiciel de cartographie QGis le lit directement à l'ouverture du projet QGis (il reconnait les .csv séparateur point virgule). J'ai donc dû construire le .csv de cette manière.

Merci beaucoup pour cette macro. Malheureusement, c'est un langage que je ne connais pas. C'est donc très flou pour moi.

Un problème qui se pose est que je reçois les fichiers .txt par mail, que j'enregistre dans un dossier et que j'alimente au fur et à mesure des emails reçu. J'aimerai donc dans l'idée que à chaque ouverture du .csv, le .csv aille chercher les nouveaux fichiers .txt qu'il n'a pas encore traité. Sauf que les fichiers .txt sont en séparateur tabulation. Donc quand je le fait manuellement à copier coller les lignes de données des fichiers .txt, je colle avec le paramétrage séparateur tabulation.

Egalement, je ne passe pas par un .ods : j'ouvre mon .csv (en choisissant séparateur point virgule) en utilisant Calc en effet, mais le fichier reste un .csv et il faut qu'il le reste car mon logiciel de cartographique ne gère pas les .ods

Je ne sais donc pas si il y a un moyen d'automatiser tout cela... et je suis clairement perdue en termes de macro.

Merci d'avance pour vos compétences :D
Pièces jointes
base de donnees.zip
(1.69 Kio) Téléchargé 37 fois
LibreOffice version: 5.4.6.2 - Windows 7 Professionnel
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Hubert Lambert »

Bonjour,
Reb24 a écrit :Merci beaucoup pour cette macro. Malheureusement, c'est un langage que je ne connais pas. C'est donc très flou pour moi.
Ci-joint un script en python, qui peut-être conviendra mieux (ou alors dis-nous avec quoi tu scriptes QGis) .
Pour l'utiliser :
- sauvegarde le fichier "Reb24.py" dans le répertoire "\Scripts\python" du profil utilisateur (si tu dois créer le répertoire "python", veille à respecter les minuscules)
- ouvre ton fichier csv
- menu Outils -> Macros -> Exécuter la macro -> Mes macros -> Reb24 -> importtxtfiles
Les fichiers txt sont présumés se trouver dans un sous-répertoire "fichiers .txt" au même niveau que le fichier csv, comme dans ton exemple.
Cordialement.
Reb26.py.zip
v.2 corrigée
(1.14 Kio) Téléchargé 41 fois
Le code au besoin :

Code : Tout sélectionner

# -*- coding: utf-8 -*-

import glob
import os.path
import csv
from uno import systemPathToFileUrl, fileUrlToSystemPath
from com.sun.star.beans import PropertyValue

def importtxtfiles(event=None):
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets[0]
    cursor = sheet.createCursor()
    cursor.gotoEndOfUsedArea(False)
    startrow = cursor.RangeAddress.StartRow + 1
    if startrow == 1:
        lastdate = ""
    else:
        lastdate = "{}_{}".format(sheet[startrow-1, 1].String, sheet[startrow-1, 2].String)[:20]

    basedir = os.path.join(os.path.dirname(fileUrlToSystemPath(doc.URL)), "fichiers .txt")
    txtfiles = gettxtfiles(basedir, lastdate)
    lastrow = startrow
    rows = []
    for file in txtfiles:
        with open(file, newline='', encoding='latin-1') as csvfile:
            reader = csv.reader(csvfile, delimiter='\t', skipinitialspace=True)
            for line in tuple(reader)[3:]:
                if line:
                    rows.append([lastrow]+line)
                    lastrow +=1

    if rows:
        cols = len(rows[0])
        dest = sheet[startrow:lastrow, 0:cols]
        dest.setDataArray(rows)
        args = createPropertyValues(FilterName="Text - txt - csv (StarCalc)", FilterOptions="59,39,ANSI,1,,1033,false,false")
        doc.storeAsURL(doc.URL, args)
        frame = doc.CurrentController.Frame
        frame.loadComponentFromURL(doc.URL, "_self", 0, doc.Args)
        msgbox("Fichier sauvegardé.")
    else:
        msgbox("Aucun fichier à ajouter.")


def gettxtfiles(dir, lastdate):
    path = os.path.join(dir, "*.txt")
    files = [os.path.join(dir, f) for f in glob.glob(path) if f[-21:-6] > lastdate]
    files.sort()
    return files

def createPropertyValues(**kwargs):
    return tuple(PropertyValue(k,0,kwargs[k],0) for k in kwargs)

def msgbox(message):
    ctx = XSCRIPTCONTEXT.getComponentContext()
    desktop = XSCRIPTCONTEXT.getDesktop()
    smgr = ctx.ServiceManager
    tk = smgr.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx)
    win = desktop.ActiveFrame.ComponentWindow
    box = tk.createMessageBox(win, 0, 1, "", message)
    box.execute()


g_exportedScripts = importtxtfiles,
Dernière modification par Hubert Lambert le 14 sept. 2018 09:38, modifié 1 fois.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 623
Inscription : 10 août 2017 00:15

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Jurassic Pork »

hello,
Reb24 a écrit : Je suis obligée de passer par un .csv construit avec séparation point virgule car c'est uniquement comme ça que mon logiciel de cartographie QGis le lit directement à l'ouverture du projet QGis (il reconnait les .csv séparateur point virgule).
Egalement, je ne passe pas par un .ods : j'ouvre mon .csv (en choisissant séparateur point virgule) en utilisant Calc en effet, mais le fichier reste un .csv et il faut qu'il le reste car mon logiciel de cartographique ne gère pas les .ods
Dans QGIS il existe une extension qui permet de gérer les fichiers .ods , il s'agit de l'extension Spreadsheet layers.
Voici un exemple d'utilisation où je visualise les points géographiques qui se trouve dans la feuille 1 de mon classeur ods et où je mets comme étiquette le numéro qui se trouve dans la première colonne de la feuille :
test_csv.ods - QGIS.jpg
[EDIT] Effectivement avec un fichier .ods on n'a pas de lien direct avec le fichier dans QGIS donc il faut réimporter le fichier si il y a une modification dedans contrairement à un fichier csv qui lui est lu directement.

Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Reb24
Fraîchement OOthentifié
Messages : 6
Inscription : 11 sept. 2018 13:36

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Reb24 »

Bonjour,

Et bien c'est tout simplement génial ! C'est exactement cela et ça fonctionne !

QGis fonctionne également avec des scripts Python oui. Mais du coup à l'ouverture de mon projet QGis, il s'actualise avec la mise à jour du .csv ce qui est top. Merci en tout cas pour l'idée de l'extension QGis J.P. mais en effet, je préfère que QGis reconnaisse le .csv à chaque ouverture plutôt de devoir réimporter un .ods, mais c'est toujours bon à savoir et je garde ça en tête.

Je reviens au .csv. J'ai fait l'essai d'enregistrer un .txt dans le dossier qui vient se ranger avant d'autres .txt enregistrés du fait de la date et de l'heure de téléchargement dans le nom du fichier (voir screenshot en PJ). Le script ne reconnait donc pas qu'il y a un nouveau .txt à gérer car il prend les derniers c'est bien ça ?
Et j'imagine que demander au script d'aller chercher les .txt qu'il n'a pas encore vu, quelque soit l'ordre de rangement dans le dossier, et de coller les données non plus à la suite mais entre les lignes au bon endroit pour que les dates et heures se suivent, ça devient compliqué n'est-ce pas ? Je peux très bien rester comme ça avec ce super script et bien penser qu'il faut absolument être certain d'avoir enregistrés tous les .txt reçu avant de lancer le script, et non pas oublier un .txt avec dates antérieures.

Aussi, existe t'il un moyen d'automatiser le lancement du script à l'ouverture du .csv ? Au lieu de faire la démarche, outils, macros, etc.

Merci en tout cas, c'est vraiment super !!
Pièces jointes
screenshot.jpg
LibreOffice version: 5.4.6.2 - Windows 7 Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Dude »

Reb24 a écrit :existe t'il un moyen d'automatiser le lancement du script à l'ouverture du .csv ?
Non car un CSV ne peut pas embarquer de macro.
Le plus simple reste de créer un raccourci clavier : https://forum.openoffice.org/fr/forum/v ... =8&t=40146
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 623
Inscription : 10 août 2017 00:15

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Jurassic Pork »

hello,
Reb24 a écrit : QGis fonctionne également avec des scripts Python oui. Mais du coup à l'ouverture de mon projet QGis, il s'actualise avec la mise à jour du .csv ce qui est top. Merci en tout cas pour l'idée de l'extension QGis J.P. mais en effet, je préfère que QGis reconnaisse le .csv à chaque ouverture plutôt de devoir réimporter un .ods, mais c'est toujours bon à savoir et je garde ça en tête.
en attendant ta réponse j'avais trouvé une autre solution, voici le principe :
On a toujours mon classeur qui permet d'importer les données des fichiers txt. Un bouton permet de lancer la macro ImportCSV
Mais là où cela change c'est qu'il y a maintenant un autre bouton qui va permettre de générer un fichier csv compatible avec QGIS d'après les données de la feuille.
Le nom du fichier est en paramètre dans la feuille.
Le fichier csv généré sera celui qui est déclaré dans QGIS en import CSV .
Voici le code de la macro de génération du fichier csv :

Code : Tout sélectionner

Sub SaveToCsv()
Document = ThisComponent  'assigns the current document to the variable document
Sheets = Document.Sheets  'get the container of all Sheets
Sheet = Sheets(0)   'get the first sheet
Document.CurrentController.setActiveSheet(Sheet)
Dim Propval(1) as New com.sun.star.beans.PropertyValue
Propval(0).Name = "FilterName"
Propval(0).Value = "Text - txt - csv (StarCalc)"
Propval(1).Name = "FilterOptions"
Propval(1).Value ="59,34,0,1,1"   'ASCII  59 = ;  34 = "
FileName =  Sheet.getCellByPosition(9,1).string
FileURL = convertToURL(FileName)
Document.StoreToURL(FileURL, Propval())
End Sub
Voici à quoi cela ressemble :
test_csv.ods-LibreOfficeCalc.jpg
En pièce jointe le classeur ods avec les macros à l'intérieur.
Avec ce principe on peut éditer les données qui seront lues dans QGIS.
Ami calmant, J.P
Pièces jointes
test_csv.ods
(26.01 Kio) Téléchargé 42 fois
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Reb24
Fraîchement OOthentifié
Messages : 6
Inscription : 11 sept. 2018 13:36

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Reb24 »

Bonjour,

Alors j'ai essayé les 2 options :

* Créer un raccourci clavier sur mon .csv pour exécuter la macro importfusiontxt avec le raccourci Alt+i.
Cela marche très bien du coup.

* J'ai essayé ta solution en passant par un .ods
A l'éxecution de la commande importCsv (qui correspond en fait à ImportTxt non ?), cela me fait ouvrir une fenêtre où je peux parcourir les fichiers .txt à ajouter. Mais si j'en ai plusieurs à ajouter d'un coup, il semblerait que je doive recommencer la démarche. Alors que dans l'idée, comme la macro importfusiontxt, cela va me chercher les derniers txt non traités.
2ème "problème" est que le .csv généré laisse les 2 premières lignes de la colonne J et ce n'est pas l'idéal pour QGis (voir impr écran en PJ).

Les 2 méthodes fonctionnent en soit. Dans un soucis de rapidité et de minimum de commande, passer par le raccourci clavier pour exécution macro dans le .csv directement me semble le mieux. Sauf si vous voyez un intérêt à passer par un .ods.
Pièces jointes
Sans titre.jpg
LibreOffice version: 5.4.6.2 - Windows 7 Professionnel
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Hubert Lambert »

Reb24 a écrit :Sauf si vous voyez un intérêt à passer par un .ods.
Passer par un fichier ods te permettrait de résoudre les 2 problèmes que tu soulèves plus haut :
Reb24 a écrit :demander au script d'aller chercher les .txt qu'il n'a pas encore vu, quelque soit l'ordre de rangement dans le dossier
en stockant la liste des fichiers déjà vus dans une 2e feuille
Reb24 a écrit :automatiser le lancement du script à l'ouverture du .csv ?
en affectant la macro à l'événement "ouverture du document".

Tu pourrais tout aussi bien utiliser un fichier odb (base de données) pour le même résultat...

:wink:
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Reb24
Fraîchement OOthentifié
Messages : 6
Inscription : 11 sept. 2018 13:36

Re: [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Reb24 »

Bonjour,

Merci pour ta réponse.

Du coup, je pense rester avec mon .ods et veiller à bien enregistrer tous les derniers .txt reçus par mail avant d'exécuter la macro.

Et après coup, je me dit que c'est peut être mieux de garder la commande Alt+i pour exécuter la macro afin de voir qu'il a bien ajouter des lignes.

Merci à tous pour vos réponses, vos solutions mais surtout vos compétences :bravo:
Dernière modification par Reb24 le 21 sept. 2018 10:01, modifié 1 fois.
LibreOffice version: 5.4.6.2 - Windows 7 Professionnel
Reb24
Fraîchement OOthentifié
Messages : 6
Inscription : 11 sept. 2018 13:36

Re: [Résolu] [Calc] Fusionner .txt dans un .csv lié à QGis

Message par Reb24 »

Sans titre.jpg
J'ai re réfléchi cette nuit... hihi

Hubert Lambert, y aurait-il un moyen avec le script que tu as écris que les fichiers .txt à importer se trouvent dans un sous-dossier "import csv en attente" et qu'une fois qu'ils aient été traité qu'ils soient déplacés dans l'autre sous-dossier "import csv ok" ?

Comme ça, on peut voir rapidement si des fichiers n'ont pas été intégré au .csv

C'est possible tu penses ?

La modération vous a écrit: Nous vous rappelons que la règle n° 7 stipule qu'il ne faut mettre qu'une question par fil.

Poser plusieurs questions complique la compréhension et n'encourage pas les réponses : il vaut donc mieux découper votre problème. Le titre de votre question ne peut pas refléter l'ensemble des problèmes exposés.

Afin que nous puissions avoir une base de connaissance efficace lors d'une recherche sur un seul de vos problèmes, nous vous prions de créer autant de fil que de questions.

Merci de votre collaboration.

LibreOffice version: 5.4.6.2 - Windows 7 Professionnel
Verrouillé