Vbscript permettant de passer un fichier excel en csv

Soyez le premier à donner votre avis sur cette source.

Vue 23 966 fois - Téléchargée 1 018 fois

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 / Exemple :


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

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
76
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

oui bon ok d'accord...
du coup, ca sert à rien et ton code est beaucoup plus rapide...
mais euh !
^^
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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.
Messages postés
76
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

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é.
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Je ne vois pas du tout le rapport entre ton code/ma version/et ta réponse mais bon passons...
Messages postés
76
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

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.
Afficher les 7 commentaires

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.