Vbscript --> conversion de fichier texte en fichier excel par ligne de commande

Contenu du snippet

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

A voir également

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.