Re, suite aux réponses de Pierre-Yves et Michel qui m'ont bien aidé, voici le résultat qui fonctionne, si ça peut aider :
8< ----------------------------------------------- 'CSV_To_ODS 'macro d'importation de fichiers NRB au format CSV vers le format ODS 'à installer dans Mes Macros, bibliothèque CSVlib, module NRBimport Option Explicit Sub CSV_To_ODS(ByVal pCSVFileName, pODSFileName As String) Dim l_PropsIn(1) As New com.sun.star.beans.PropertyValue Dim l_PropsOut() Dim l_CSVAdr As String 'le nom du fichier converti en URL Dim l_ODSAdr As String 'le nom du fichier ODS cible, en URL Dim oODSdoc As Object 'le classeur à créer Dim l_SepOpt As String Dim l_CharSep As String Dim l_CharType As String Dim l_ColProps As String Dim l_Line As String 'conversion des noms des fichiers l_CSVAdr = ConvertToURL(Trim(pCSVFileName)) l_ODSAdr = ConvertToURL(Trim(pODSFileName)) 'paramètres d'importation l_PropsIn(0).Name = "FilterName" l_PropsIn(0).Value = "Text - txt - csv (StarCalc)" l_PropsIn(1).Name = "FilterOptions" 'colonnes : L,Fichier,Page,Struct,Matricule,Nom,Prenom,ZL,CodeErreur,Libelle,ZoneLibre,Pole,Equipe 'numéro : 1 2 3 4 5 6 7 8 9 10 11 12 13 'type : 1 2 1 2 2 2 2 2 2 2 2 2 2 l_ColProps = "1/1/2/2/3/1/4/2/5/2/6/2/7/2/8/2/9/2/10/2/11/2/12/2/13/2" l_SepOpt = "44" 'code ascii du séparateur de colonnes (virgule) l_CharSep = "" 'code ascii du délimiteur de texte (aucun) l_CharType = "22" 'jeu de caractères (ISO-8859-15/EURO) l_Line = "1" 'ligne de départ de l'import l_PropsIn(1).Value = l_SepOpt & "," & l_CharSep & "," & l_CharType & "," & l_Line & "," & l_ColProps 'importation oODSdoc = StarDesktop.loadComponentFromURL(l_CSVAdr, "_blank", 0, l_PropsIn()) 'enregistrement oODSdoc.storeAsURL(l_ODSAdr, l_PropsOut()) oODSdoc.close(True) End Sub 'CSV_To_ODS ----------------------------------------------- >8 La ligne de commande Windows shell pour appeler cette macro est : "%programfiles%\libreoffice 4\program\soffice.exe" --headless "macro:///CSVlib.NRBimport.CSV_To_ODS(F:\CSRH_DTE\CSV2ODS\NRBresult.csv,F:\CSRH_DTE\CSV2ODS\NRB_test.ods)" Amicalement, -- Jean-Francois Nifenecker, Bordeaux -- Envoyez un mail à [email protected] pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
