Convertir fichier .csv en fichier.xls

cs_julien0000 Messages postés 9 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 30 juin 2008 - 27 juin 2008 à 13:28
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 28 juin 2008 à 22:12
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 ; et disposé comme un fichier texte.

exemple:  NOM;PRENOM;AGE
               Durand;Marcel,65

j'ai vu des discussions qui parlaient de ce sujet mais je n'ai pas réussi à résoudre mon problème...

existe-t-il une solution pour ouvrir ce fichier "normalement" ou une méthode pour convertir ce fichier directement en fichier.xls?

merci

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 juin 2008 à 13:48
Trouvé dans une autre discution d'il y a un mois à quelques jours près :
Workbooks.OpenText Filename:Nom du fichier , Origin:xlWindows, _
    StartRow:= 1, DataType:=xlDelimited, Semicolon:=True

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_julien0000 Messages postés 9 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 30 juin 2008
27 juin 2008 à 14:01
ça ne marche tjs pas,

soit je fais quelquechose d'anormal soit  il y a un autre probleme.

quand j'appliques cette expression avec Nom de Fichier = data.csv

le fichier s'ouvre toujours avec les ";"

...
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 juin 2008 à 14:08
Oupssss, pardon

C'est pas Semicolon= True, mais Comma=True

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_julien0000 Messages postés 9 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 30 juin 2008
27 juin 2008 à 14:19
non toujours pas....

toujours les ";" qui sont là !!!

je ne vois pas... il faut dire que je ne connais pas les effets des instructions ( comma, datatype, start row,...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_julien0000 Messages postés 9 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 30 juin 2008
27 juin 2008 à 15:44
c'est bon j'ai reussi à ouvrir mon fichier correctement...

c'est pas très beau mais ça marche, je pense qu'il y a de plus belle méthode!
 
je mets ma solution ci dessous ci certain sont intéressés

'je traduis mon fichier .csv en fichier .txt
ActiveWorkbook.SaveAs FileName:= c:\\repertoire\file.txt

'je traduis mon fichier .txt en fichier .xls
'(j'ai trouvé cette procedure sur le forum : http://www.vbfrance.com/infomsg_CONVERTIR-FICHIER-CSV-XLS_70496.aspx )

    Dim NomFichier
    Dim FichiersChoisis As String
    Dim remplace As String


    remplace = ".txt"
    FichiersChoisis = ""
 
    FichiersChoisis = c:\\repertoire\file.txt
     
    If FichiersChoisis <> "" Then
        'Ouverture du fichier text
        Workbooks.OpenText FileName:= _
                            FichiersChoisis, _
                            Origin:=xlWindows, _
                            StartRow:=1, _
                            DataType:=xlDelimited, _
                            TextQualifier:= _
                            xlDoubleQuote, _
                            ConsecutiveDelimiter:=False, _
                            Tab:=False, _
                            Semicolon:=True, _
                            Comma:=False, _
                            Space:=False, _
                            Other:=False
              
       ' On enlève l'adresse complète du fichier et on garde son nom
        FichiersChoisis = Mid(FichiersChoisis, InStrRev(FichiersChoisis, "") + 1)
        'On active le classeur
        Windows(FichiersChoisis).Activate
       
        'On supprime le *.txt pour pouvoir sélectionne la feuille
        FichiersChoisis = Replace(FichiersChoisis, remplace, "")
        Sheets(FichiersChoisis).Select
        'On sélèctionne les parties du tableaux qui nous intéresse
        NomFichier = Range("A1:AM10000").Value
       
        'On sélèctionne le dossier ou l'on veux déplacer notre ficher .txt
       'Windows("nouveau fichier.xls").Activate
        'On remplace
        'Sheets("sheet1").Range("B17:AN10000").Value = NomFichier
    End If

voilà comme je l'avais dit c'est pas très beau

a+
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 juin 2008 à 22:12
Tu pourrais aussi ouvrir ton fichier CSV dans une variable, remplacer les points-virgules par des virgules et copier le tout dans Excel.

Voir
Open ... for Binary As ...
LOF
Replace

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous