Ce script, lancé en ligne de commande dos, permet de convertir un fichier texte en fichier excel.
Le code est à copier coller dans notepad, et à enregistrer sous genExcel.vbs, il est ensuite exécutable en ligne de commande sous Windows
Le code est suffisamment documenté pour vous permettre de voir les options disponibles
Source / Exemple :
'Script de génération de fichier Excel à partir d'un fichier texte ou CSV
'Yves LAURENT - juin 2008
'______________________________________________________________________________________
'
'Usage : genExcel -s chemin_nom_fichier_texte -d chemin_nom_fichier_excel
' -a (ajustement auto des colonnes)
'______________________________________________________________________________________
'
'Structuration du fichier texte :
'- Séparateur : ";"
'- GR!| avant l'information : "Gras"
'- IT!| avant l'information : "Italique"
'- TI!| avant l'information : Titre
'______________________________________________________________________________________
' Récupération des infos
dim Options, Numopt
dim chemtxt, chemexcel
dim fso, objExcel, objBook, objSheet, ligne, Ftxt, Cptli, Tabli
Set Options = wscript.Arguments
numopt=0
while numopt< Options.count
Select Case LCase(Options(numopt))
Case "-s":
numopt=numopt+1
chemtxt=Options(numopt)
Case "-d":
numopt=numopt+1
chemexcel=Options(numopt)
Case "-?":
call usage
Case Else:
call usage
End Select
numopt=numopt+1
wend
' Création de l'objet excel
Set objExcel = CreateObject("Excel.Application")
Set objBook = objExcel.Workbooks.Add
Set objSheet = objBook.WorkSheets.Add
Cptli=1
Set fso= CreateObject("Scripting.FileSystemObject")
if chemtxt<>"" then
Set Ftxt = fso.OpenTextFile(chemtxt)
Do While Ftxt.AtEndOfStream<>true
ligne=Ftxt.ReadLine
Tabli=split(ligne,";")
For icpt=0 to ubound(Tabli)
Select Case Left(Tabli(icpt), 3)
Case "GR!":
objSheet.Cells(Cptli, icpt+1).Value = Right(Tabli(icpt), len(Tabli(icpt))-3)
objSheet.Cells(Cptli, icpt+1).Font.Bold = true
Case "IT!":
objSheet.Cells(Cptli, icpt+1).Value = Right(Tabli(icpt), len(Tabli(icpt))-3)
objSheet.Cells(Cptli, icpt+1).Font.Italic = true
Case "TI!":
objSheet.Cells(Cptli, icpt+1).Value = Right(Tabli(icpt), len(Tabli(icpt))-3)
'objSheet.Cells(Cptli, icpt+1).Font.Size = "11"
objSheet.Cells(Cptli, icpt+1).Font.Bold = true
objSheet.Cells(Cptli, icpt+1).Font.Color = RGB(0, 0, 255)
Case Else:
objSheet.Cells(Cptli, icpt+1).Value = Tabli(icpt)
End Select
Next
Cptli=Cptli+1
Loop
End if
objSheet.Columns.Autofit
objBook.SaveAs chemexcel
objBook.Close 'Fermeture du classeur Excel
objExcel.Quit 'Fermeture de l'application Excel
'Désallocation mémoire
Set objSheet = Nothing
Set objBook = Nothing
Set objExcel = Nothing
Sub Usage
MsgBox _
"genExcel -s chemin_nom_fichier_texte -d chemin_nom_fichier_excel"&VBCRLF& _
" -s chemin_nom_fichier_texte : chemin et nom du fichier source"&VBCRLF& _
" -d chemin_nom_fichier_excel : chemin et nom du fichier excel de destination"&VBCRLF& _
" GR! devant un champ : champ en gras"&VBCRLF& _
" IT! devant un champ : champ en italique"&VBCRLF& _
" TI! devant un champ : Titre en gras et bleu"&VBCRLF& _
" -? Aide",vbInformation,"Usage"
WScript.Quit (1)
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.