VBA - Excel - copie d'un CSV vers un XLS

jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 - 23 mai 2008 à 23:52
jepassaisparla Messages postés 8 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 14 juin 2008 - 24 mai 2008 à 16:29
Bonjour,

Je cherche à copier le contenu d'une feuille d'un fichier CSV, dans une feuille d'un fichierXLS.

Mon problème:
Lorsque j'ouvre un fichier CSV à la main (double clic), il apparaît comme un fichier xls (données réparties dans les différentes cellules) et je peux copier/coller son contenu sans problème.

Lorsque j'ouvre un fichier CSV via VBA (Set book = Workbooks.Open("C:\file.csv")) il m'ouvre le fichier mais il m'affiche le contenu en CSV (avec les ;) et non pas comme quand je le fais à la main.
Du coup lorsque j'essaie de copier coller (via VBA/ou à la main) ce contenu dans un fichier xls, le xls contient un contenu CSV (avec les ;) mais en aucun cas me met en forme les données CSV dans les différentes lignes/colonnes.

Y a-t-il d'autre moyen d'ouvrir un CSV de sorte à ce qu'il apparaîsse comme un fichier XLS ?

Merci de votre aide.

A+

23 réponses

jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008
24 mai 2008 à 10:34
Oui c'est ce que j'ai adopté comme solution.
Ca fonctionne très bien.

Merci.

A+
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 mai 2008 à 10:42
Salut Casy;

merci pour ton inter, je pensais aussi qu'il y a une façon plus simple, mais dur dur de trouver
Je pense que j'ai buggé Excel avec mon ShellExecute, car ta méthode avait été tenté (OpenText *.csv) mais sans résultat concluant !
Ou alors suis trop crevé et je fais n'importe quoi 

Je reverrai ça à  tête reposé, pis j'ai mis une autre personne à contribution pour chercher la soluce et voir si lui même à des bugs ou des soucis d'affichage des valeurs dans XL.

Merci en tout cas de tes infos, vais m'y pencher cette niut

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
jepassaisparla Messages postés 8 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 14 juin 2008
24 mai 2008 à 16:29
bonjour,
dans ce cas de figure on connait la structure du fichier texte ( csv ou autre) on peut donc lire le texte et le tansférer directement dans une feuille comme suit: 

Sub OuvrirCsv()
fic = Application.GetOpenFilename("fichier CSV,*.csv")
Open fic For Input As #1
Workbooks.Add ' là ou ailleur
Set c = Cells(1, 1)
Do While True
    Line Input #1, txt
    d = 1
    nc = 0
    f = InStr(d, txt, ";")
    Do While f
        c.Offset(0, nc) = Mid(txt, d, f - d)
        nc = nc + 1
        d = f + 1
        f = InStr(d, txt, ";")
    Loop
    c.Offset(0, nc) = Mid(txt, d)
    Set c = c.Offset(1, 0)
    If EOF(1) Then Exit Do
Loop
End Sub
0
Rejoignez-nous