Importation d'un format csv dans un classeur excel

Résolu
fred2567 Messages postés 42 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 31 janvier 2008 - 25 sept. 2007 à 16:47
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 27 sept. 2007 à 12:23
Bonjour à tous,

Voila j'ai un soucis concernant l'importation de données dun csv dans un classeur excel.

Petit malin que je suis je pensais faire un copier coller de mon csv vers mon classeur grace a une macro automatique
mais au final mes cases ne sont pas distinctes et toutes mes valeurs de lignes sont à la suite avec des ;

    Shell "net use u: [file://\\1.1.1.1\home \\1.1.1.1\home] /USER:bonnin bonnin /PERSISTENT:YES", vbHide


    ChDir "U:\preguillon\stats modele"
   
    Workbooks.Open Filename:="U:\preguillon\stats modele\stats.csv"
    Cells.Select
    Selection.Copy
   
    Windows("stats vie modeles.xls").Activate
    Sheets("stats vie modeles").Select
    Cells.Select
    ActiveSheet.Paste


    ActiveWindow.WindowState = xlMinimized
    Windows("stats.csv").Activate
    ActiveWindow.Close
    Sheets("Menu").Select

Voyez vous un moyen de passetr outre le format csv avec délimiteur le ";"??

merci d'avance pour vos réponses

8 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
26 sept. 2007 à 12:08
Essaie de cette manière en utilisant le Clipboard d'Excel.
Il faut que tu crées une référence à "Microsoft Forms 2.0 Object library"

    Dim MyDataObject As DataObject
    Dim strTemp As String
   
    Open "C:\Fichier.csv" For Binary As #1  'change le nom du fichier
        strTemp = Space$(LOF(1))
        Get #1, , strTemp
        strTemp = Replace(strTemp, ";", vbTab) 'remplace les ; par des tabulations
       
        Set MyDataObject = New DataObject
        MyDataObject.SetText strTemp
        MyDataObject.PutInClipboard
        Range("A1").PasteSpecial
    Close #1
   
    MyDataObject.Clear
    Set MyDataObject = Nothing

MPi²
3
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
25 sept. 2007 à 17:05
Moi je fais comme ça , si cela peut aider :

private sub workbook_open() 'ou autre ^^
workbook.open Filename:= thisworkbook.path + "\test.csv"
range("A2:K999".copy
windows("importation.xls).activate
range("A3").Select
selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks:=false, transpose:=false

C'est quasi se que tu fais mais je sais que le past special fonctionne avec un csv "data1;data2;...."
voila j'éspére que j'ai pas fait trop de faute car c'est recopié à la main

Tiens les balises ne sont pas reconnues ^_____^, zut alors.....
0
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
25 sept. 2007 à 17:11
Arg comment on fait pour éditer son post ??


bon ben double post alors, dsl.


j'ai oublier une parenthése à la fin du rangeA2,A999.
et indiquer la fin de la copy pour ne pas avoir la selection qui traine dans le presspapier


De plus il faut fermer le fichier CSV à la fin, mais bon tu le sais déja^^

Tiens les balises ne sont pas reconnues ^_____^, zut alors.....
0
fred2567 Messages postés 42 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 31 janvier 2008
26 sept. 2007 à 07:59
je tes ça et je te redis

merci par avance de ta contribution
0

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

Posez votre question
fred2567 Messages postés 42 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 31 janvier 2008
26 sept. 2007 à 08:42
j'ai utilisé ton code mais apparamment il veut pas faire de collage spéciale,
en tout cas il ne remplace pas les ; .
c'es d'autant plus étrange que lorsque manuellement je fais ouvrir le fichier csv il apparait sous forme de colonne et si je le fai en auto il le présente avec des ; arggghhh

voici le code après modif :

    Shell "net use u: [file://\\1.1.1.1\home \\1.1.1.1\home] /USER:bonnin bonnin /PERSISTENT:YES", vbHide


    ChDir "U:\preguillon\stats modele"
   
    Workbooks.Open Filename:="U:\preguillon\stats modele\stats.csv"
    Worksheets("stats").Range("A1:AM999").Copy
    Windows("stats vie modeles.xls").Activate
    Worksheets("stats vie modeles").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False
    Windows("stats.csv").Activate
    ActiveWindow.Close
    Windows("stats vie modeles.xls").Activate
    Sheets("Menu").Select
0
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
26 sept. 2007 à 12:46
ou alors le plus simple :
tu me dis que l'orsque tu l'ouvre il format bien ton csv ? mais pas via la macro c'est ça ?
Alors le plus simple c'est de cliquer sur enregistrer une macro et de faire toute les manip d'ouverture et de copier / coller à la main ^^
Et apres tu regardes le codes XD, c'est con mais ça marche ;)
++
Tiens les balises ne sont pas reconnues ^_____^, zut alors.....
0
fred2567 Messages postés 42 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 31 janvier 2008
27 sept. 2007 à 08:07
Merci mpi ton code marche nickel

Adn 56 merci pour ta contribution sinon j'avais déjà essayer la macro auto sans succès;

Adn56 : 56 pour morbihan?
0
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
27 sept. 2007 à 12:23
yep ^___^ Lorient city ;)

Tiens les balises ne sont pas reconnues ^_____^, zut alors.....
0
Rejoignez-nous