fred2567
Messages postés42Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention31 janvier 2008
-
25 sept. 2007 à 16:47
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 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.....
fred2567
Messages postés42Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention31 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
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 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.....