Problèmes lors d'une exportation d'excel vers cvs automatique
cs_Arcanis
Messages postés18Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention26 juin 2008
-
2 mai 2005 à 19:20
Beaver_ctb
Messages postés3Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention29 novembre 2005
-
29 nov. 2005 à 20:40
Salut à tous,
Mon Problème :
J'essaye convertir un fichier excel en n fichiers csv dans l'optique d'une migration vers une base de données MySQL
J'ai créé un petit bout de code en VB me permettant de me générer n fichiers csv (un fichier par onglet) de manière automatique, mais malheureusement pour moi, le séparateur de colonne est une , au lieu d'un ; comme tout fichier csv digne de ce nom...
Le point virgule est capital pour moi car mes données peuvent contenir des , et donc l'insertion en base de données MySQL échouera violemment...
Mon code :
Dim MyXl As Excel.Application
Dim MyWorkbook As Excel.Workbook
Dim MyWorksheet As Excel.Worksheet
Dim i As Integer
Set MyXl = CreateObject("Excel.application")
Set MyWorkbook = MyXl.Workbooks.Open("R:\Incidents.xls")
MyXl.DisplayAlerts = False
For i = 1 To MyWorkbook.Worksheets.Count
Set MyWorksheet = MyWorkbook.Worksheets(i)
MyWorksheet.SaveAs "E:\Fichier Incidents\Fichier " & UCase(MyWorksheet.Name), xlCSV
Next i
MyXl.Quit
C'est pas grand chose , mais bon... En fait je créé un objet Excel, puis un sous-objet Classeur et enfin un sous-sous-objet feuille. Pour chaque feuille, je "sauvegarde sous" au format CSV, le nom du fichier étant le nom de ma feuille (capital pour la suite...)
Mes tests
J'ai essayé tous les formats CSV possibles et imaginables... Rien à faire.
J'ai cru tenir la solution grace à un topic trouvé ici ... Le séparateur par défaut du format CSV est stocké dans les paramètres régionnaux de Windows (je bosse sous NT4).
J'ai vérifié : il s'agit bien d'un ; dans mon cas.
Je suis dans l'incapacité d'utiliser une routine permettant le bouclage sur les cellules de part la structure "anormale" de mon fichier excel (c'est d'ailleurs à cause de cela qu'il est prévu de le faire migrer sous MySQL... )
Je remercie d'avance tout ceux qui ont eu le courage de lire ma question jusqu'au bout et je remercie encore plus ceux qui pourront m'aider...
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 2 mai 2005 à 20:47
La fonction SaveAs n'automatise pas le changement de séparateur de colonnes ?
Sinon tu y vas à la bourrin, tu cherches tous les ',' dans le fichier CSV créé, en l'ouvrant en binaire, et tu remplaces par ';'...
Sinon je vois pas trop, je n'ai jamais vraiment fait de VBA...
cs_Arcanis
Messages postés18Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention26 juin 2008 3 mai 2005 à 09:08
La fonction SaveAs n'automatise pas le changement de séparateur. En effet, seul le format de fichier permet de le faire...
Et le bourrin, je ne peux pas... car si je remplace tous les , par des ; comment vais-je faire la différence entre les colonnes !?!
Pour info, c'est pas du VBA (Mon appli est extérieure à Excel, c'est pas une macro...)