begin process at 2012 02 14 15:05:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBScript

 > VBSCRIPT --> CONVERSION DE FICHIER TEXTE EN FICHIER EXCEL PAR LIGNE DE COMMANDE

VBSCRIPT --> CONVERSION DE FICHIER TEXTE EN FICHIER EXCEL PAR LIGNE DE COMMANDE


 Information sur la source

Note :
Aucune note
Catégorie :VBScript Classé sous :texte, excel, conversion, commande, dos Niveau :Débutant Date de création :21/11/2008 Date de mise à jour :15/12/2008 09:29:17 Vu :6 993

Auteur : thorspark

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

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

  • '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
'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






 Historique

15 décembre 2008 09:29:17 :
Ajout du nom de fichier sous lequel enregistrer le script

 Sources de la même categorie

Source avec Zip Source avec une capture RECHERCHE & SAUVEGARDE DES FICHIERS PAR LEURS EXTENSIONS par hackoo
Source avec Zip Source avec une capture [VBS] SPLASH SCREEN EN VBSCRIPT par hackoo
Source avec Zip Source avec une capture [VBS] GOOGLE EASTER EGGS par hackoo
Source avec Zip Source avec une capture FILE2COMPARE: COMPARAISON DE DEUX FICHIERS LIGNE PAR LIGNE par hackoo
Source avec Zip Source avec une capture [VBS] COMMENT CRÉER UN DOSSIER ET LE PROTÉGER PAR MOT DE PAS... par hackoo

 Sources en rapport avec celle ci

METTRE EN FORME DU TEXTE WORD DEPUIS EXCEL EN VBA par phanoulevoyou
Source avec Zip Source avec une capture EXPORT TABLEAU EXCEL EN BBCODE par nikovb
DOSTIMETODATE (CONVERTION DATE ET TIME DE DOS VERS UN TYPE D... par Renfield
Source avec Zip Source avec une capture Source .NET (Dotnet) EXÉCUTION DE COMMANDES (DOS) SUR UNE PLAGE IP par eldim
Source avec Zip Source avec une capture EDITEUR DE TEXTE PERMETTANT DE MULTIPLES OPÉRATIONS SUR UN F... par Arcanis

Commentaires et avis

Commentaire de srecher le 15/12/2008 01:10:23

Super ton code, thorspark, mais je voudrais savoir comment supprimer les feuil2, et feuil3 ?
Et est ce que dans la feuille generée, tu obtient deux classeurs car pour moi c'est le cas
En tout cas super code que je compte bien reutilisé en y apportant quelques modifs specifiques a mon traitement

Commentaire de petitmoustique le 16/12/2008 21:11:55

Pourquoi msgbox ?
C'est mieux wscript.write !
Pour les programmes en batch

Commentaire de tatger le 09/03/2009 15:31:33

j'y arrive pas , c'est normal?

Commentaire de thorspark le 09/03/2009 15:38:12

Quel est le problème qui se pose exactement ?

Commentaire de JeanBin le 17/08/2009 15:21:14

Bonjour,

Quand j'utilise le script ci-dessus, j'obtiens un fichier Excel avec seulement 3 caractères "ÿþD" dans la cellule A1 dans la feuille 4.

Merci pour votre aide.

Commentaire de thorspark le 24/08/2009 09:04:48

il faudrait plus de précisions, je ne peux pas deviner comme ça d'où vient le problème.

Quel est le fichier texte d'entrée ?

Commentaire de Laymante le 27/04/2011 09:19:35

Bonjour,
ce code est exactement ce que je recherche mais quand j'exécute le fichier à partir de l'invite de commandes, soit cela me l'ouvre quand je tape "genExcel -s fichier.txt -d fichier.xls -a", soit cela n'exécute que Usage quand je tape "cscript genExcel.vbs -s ... -d ... -a".
NEED HELP POR FAVOR.

Commentaire de Laymante le 27/04/2011 09:27:45

Autant pour moi : il ne faut pas utiliser -a ni -? pour générer le fichier xls, et ce dernier est étrangement créé dans Mes Documents.

Réactualisation futile de cette page donc. Mais merci pour le code.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Excel : Conversion de données numériques au format texte [ par seb ] Bonjour,Je bosse avec Excel en ce moment (ah, les chiffres...). Je souhaite convertir le contenu (numérique) d'une cellule au format texte. Quelqu'un Conversion fichier unix en fichier dos [ par thguillon ] Est-ce que quelqu'un pourrait me filer une de ses sources pour convertir un fichier texte UNIX en un fichier texte au format DOS?En fait, mon problème probleme conversion automatique et non voulue de texte sous excel (vba) [ par ppiou ] j'ai concu une macro qui permet l'import d'un fichier texte tbulé dans excel.ma macro fonctionne toutefois il y a un gros probleme lors de l import... Please help me! conversion d'un fichier texte en fichier excel(97) en utilisant VB [ par wanirb ] bounjours tt le monde,lors de l'ouverture d'un fichier texte sous EXCELL97 avec VB, toutes les valeurs numériques contenant des virgules sont concider Envoyer du texte après l'execution du commande DOS ? [ par kouby2k3 ] Bonjour,je suis confronté à un pb après l'execution d'une appli exe sous DOS, l'application, une fois lancée, demande des paramètres (ke l'on ne peut Conversion fichier texte format DOS en WIN [ par JMiche ] Bonjour, J'ai des fichiers en dBaseIII utilisant le codage DOS que je voudrais utiliser sous VBA. Problème : la table de conversion des caractères éte Modification des droits sur un dossier [ par mika69 ] Bonjour,Mon problème est le suivant, pour mon boulot, on m'a demander de gérer des droits d'accès spécifique sur un dossier particulier, en fonction q Couleur de texte dans une cellulle Excel [ par Drahnur2 ] Bonjour, Je cherche a mettre un texte d'une cellule Excel une couleur spécfique (par rapport a plusieurs variables) Je sais comment récuperer les don Texte défilant Excel [ par peisinoe ] Bonjour,Votre site m'a déjà bien aidé, mais voilà, je bloque depuis qq jours sur un problème. J'ai cherché partout, personne n'a la réponse: Je voudra executer la commande dos "dir" [ par rober ] bonsoir, je voudrais dans mon prog executer la commande dos "dir" pour lister tous les sous repertoires a partir d'un chemin connu et ensuite l'ecrir


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales