Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VBSCRIPT PERMETTANT DE PASSER UN FICHIER EXCEL EN CSV


Information sur la source

Catégorie :VBScript Classé sous : xls, csv, vbs, convertir, excel Niveau : Débutant Date de création : 20/04/2007 Date de mise à jour : 20/04/2007 13:53:20 Vu / téléchargé: 14 006 / 636

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

J'ai eu un peu de mal à trouver les informations pour faire tout ca donc et je me suis dit que ca pourrait eventuellement interesser alors voila.
Ce petit code réaliser à partir de quelques sources différentes permet de passe n'importe quel fichier xls en csv et le en créant le csv dans le même repertoire que le xls.

Désolé de ne pas citer d'auteurs pour les sources pompées mais je n'ai absolument pas fait attention lors de ma recherche.
Si vous reconnaissez votre code, faites moi signe, je vous cite :D.

 

Source

  • if wscript.arguments.length > 0 then
  • path_file = lcase( wscript.arguments(0) )
  • nomfichier = mid(path_file,1,len(path_file) - 3) & "csv"
  • 'load excel
  • set ex = Wscript.createobject("excel.application")
  • 'ouvre le doc excel
  • ex.Workbooks.Open path_file
  • ex.visible = false
  • 'supprime la première ligne
  • 'va mettre toutes les entetes et compter le nombre de colonnes
  • nbcol = 1
  • while not ex.ActiveSheet.cells(1,nbcol).value = ""
  • fichier = fichier & ex.ActiveSheet.cells(1,nbcol).value & ";"
  • nbcol = nbcol +1
  • wend
  • nbcol = nbcol - 1
  • fichier = mid(fichier,1, len(fichier)-1)
  • fichier = fichier & vbcrlf
  • 'va enregistrer tous les champ de chaque ligne dans la variable fichier
  • nbligne = 2
  • while not ex.ActiveSheet.cells(nbligne,1).value = ""
  • for i = 1 to nbcol
  • fichier = fichier & ex.ActiveSheet.cells(nbligne,i).value
  • if i < nbcol then fichier = fichier & ";"
  • next
  • nbligne = nbligne +1
  • fichier = fichier & vbcrlf
  • wend
  • msgbox fichier
  • 'ferme excel
  • ex.Application.DisplayAlerts = False
  • 'on va ouvrir un fichier texte et ecrire dedans la variable fichier
  • Set fso = CreateObject("Scripting.FileSystemObject")
  • 'Creation du fichier texte et ecriture dans ce fichier
  • Set fichierTexte = fso.CreateTextFile(nomfichier , True)
  • fichierTexte.WriteLine(fichier)
  • fichierTexte.close
  • ex.quit
  • msgbox ".csv créé"
  • else
  • msgbox "Déposer le fichier à convertir sur l'icone du programme"
  • continue = false
  • end if
if wscript.arguments.length > 0 then

	path_file = lcase( wscript.arguments(0) )
	
	 nomfichier = mid(path_file,1,len(path_file) - 3) & "csv"


	'load excel
	set ex = Wscript.createobject("excel.application")
	'ouvre le doc excel
	ex.Workbooks.Open path_file
	ex.visible = false
	'supprime la première ligne


	'va mettre toutes les entetes et compter le nombre de colonnes	
	
	nbcol = 1
	
	while not ex.ActiveSheet.cells(1,nbcol).value = "" 
		
		
		fichier = fichier & ex.ActiveSheet.cells(1,nbcol).value & ";" 
		nbcol = nbcol +1
	wend
	nbcol = nbcol - 1
	fichier = mid(fichier,1, len(fichier)-1)
	fichier = fichier & vbcrlf
	
	'va enregistrer tous les champ de chaque ligne dans la variable fichier
	nbligne = 2
	
	while not  ex.ActiveSheet.cells(nbligne,1).value = "" 
		for i = 1 to nbcol
			fichier = fichier & ex.ActiveSheet.cells(nbligne,i).value
			if i < nbcol then fichier = fichier & ";"
		next
			nbligne = nbligne +1
		fichier = fichier & vbcrlf
	wend 
	
	msgbox fichier
	'ferme excel
	ex.Application.DisplayAlerts = False 
	'on va ouvrir un fichier texte et ecrire dedans la variable fichier
	Set fso = CreateObject("Scripting.FileSystemObject")
	'Creation du fichier texte et ecriture dans ce fichier
	Set fichierTexte = fso.CreateTextFile(nomfichier , True)
	fichierTexte.WriteLine(fichier)
	fichierTexte.close
	

	ex.quit
	msgbox ".csv créé"
	







else
	msgbox "Déposer le fichier à convertir sur l'icone du programme"

       continue = false

end if

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

20 avril 2007 13:53:20 :
changement dans l'explication.

Commentaires et avis

signaler à un administrateur
Commentaire de Willi le 20/04/2007 14:18:51 administrateur CS

Pourquoi se prendre la tête alors qu'excel permet de convertir ton xls au format csv.

-----------------------------------

dim oExcelApp
dim oExcelWbk

Set oExcelApp = CreateObject("Excel.Application")
oExcelApp.DisplayAlerts = False

Set oExcelWbk = oExcelApp.Workbooks.Open(<FICHIER_EXCEL>)
oExcelWbk.SaveAs left(<FICHIER_EXCEL>,len(<FICHIER_EXCEL>)-4) & ".csv",6,,,,,,,,,,True

oExcelWbk.Close False
oExcelApp.Quit

Set oExcelWbk = nothing
Set oExcelApp = nothing

signaler à un administrateur
Commentaire de Shad108 le 20/04/2007 16:38:25

Pas mal, mais le top serait de ne pas utiliser Excel pour lire les infos du fichier excel, en fait il existe une technique de permettant d'utiliser ADO pour transférer ton workbook vers un fichier csv, de plus tu ne tiens pas compte de la langue de ton utilisateur car pour la langue français c'est bien le séparateur ";" mais tu passe ton régional settings en anglais ton séparateur deviens ",", et dans ce cas lors de l'ouverture CSV l'utilisateur anglais ne pourra pas lire correctement ton fichier.

signaler à un administrateur
Commentaire de esus1985 le 26/04/2007 14:46:26

willi :

par ce que des fois, un script vb sur un serveur ne referme pas bien l'objet excel et sur un serveur entreprise, on ne prend pas le risque de lancer ca donc on execute un vbs sur un portable avant

shad108 : je n'en avais pas besoin pour faire ce que j'ai eu à faire donc je n'ai pas été chercher jusque la.

signaler à un administrateur
Commentaire de Willi le 26/04/2007 16:34:59 administrateur CS

Je ne vois pas du tout le rapport entre ton code/ma version/et ta réponse mais bon passons...

signaler à un administrateur
Commentaire de esus1985 le 27/04/2007 10:46:38

oui bon, il etait que 14h45 donc, j'etais en train de digerer :D
je ne veux pas utiliser directement excel car j'ai plusieurs fichiers differents sur lesquels differentes modifications sont à apporter donc, il me faut un script dans lequel je rentre n'importe quel fichier et qui me le modifie pour ensuite lancer un lot DTS manuellement. De plus, il n'y a pas toujours que ca comme changement à faire donc le vbs me parait indiqué.

signaler à un administrateur
Commentaire de Willi le 27/04/2007 11:05:15 administrateur CS

Bien après lecture du contenu de ton vbs il réalise simplement un passage des données de ton xls vers un fichier formatté en csv.
Neni, tu utilises déjà Excel donc je maintiens le fait que tu remplaces ton code par ce que j'ai fournit comme autre solution puis en remplacant uniquement les <FICHIER_EXCEL> par ton fichier passé en argument le résultat est le meme.

signaler à un administrateur
Commentaire de esus1985 le 02/05/2007 11:44:41

oui bon ok d'accord...
du coup, ca sert à rien et ton code est beaucoup plus rapide...
mais euh !
^^

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Convertir un Fichier CSV en XLS [ par Sebby59 ] Bonjour à tous !Voilà mon petit problème : Je souhaite que mon fichier CSV soit correctement représenté dans Excel. Je m'explique plus clairement, mon [VBA-E] Comment convertir 3000 fichiers de .csv à .xls?? (Attention prise de tête!) [ par maximecdb ] Salut, Je suis en stage depuis 2 semaines, et l'un de mes premiers boulot est de concaténer plein de données a la suite et je piétine depuis deux jou SaveAS CSV d'un fichier excel en VBS [ par Aegwym212 ] Bonjour, je me lance dans la création de fichier .vbs afin de me faciliter certaine tâche au boulot. Mon besoin : créer un script vbs qui demande à l' convertir fichier .csv en fichier.xls [ par julien0000 ] bonjour,quand j'essayes d'ouvrir un fichier.csv avec VBA, le fichier n'apparait pas sous forme de tableau mais le contenu des cases est séparé par des automatiser l'import de csv dans xls [ par girardpallet ] bonjours,je suis sous excel 2002 et voila ce que je voudrais faire:je possède un dossier avec environs une 30 de fichiers  .CSV de structure identique Convertir un .doc en .xls [ par bluelive ] Je cherche à pouvoir soit convertir un fichier word (.doc) contenant un tableau en un fichier xls via VB ou bien ouvir le fichier word, et faire les a passer un xls en csv [ par sebV ] Bonjours, j'ai besoin dans un programme d'importer une feuille d'un XLS, pour l'instant je doit exporter le xls sous excel, mais je voudrait que mon a Fonction pour convertir ujn fichier "csv" en "xls" [ par LibreMax ] Salut,Quelqu'un connaiterai une fonction pour convertir un fichier ".csv" en ".xls"Merci LibreMax Convertir plusieurs fichiers Excel en fichiers CSV [ par domm78 ] Bonjour,Je recherche une fonction&nbsp;pour convertir, a partir d'une page HTML, plusieurs&nbsp;fichiers XLS (qui sont dans un&nbsp;repertoire et des& Convertir xls en csv [ par billout80000 ] bonjour a vousje suis debutant de chez debutant en VB6J'ai recherch&#233; sur le forum mais je n'ai pas trouv&#233; de reponse a ma question donc je v


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.