Extraire un csv dans un tableau excel en VBA

Résolu
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013 - 17 juin 2009 à 10:53
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013 - 17 juin 2009 à 14:46
Bonjour tout le monde!

Petite question. Comment extraire un fichier .csv dans un tableau excel?
En fait je fais une appli où je dois rassembler plusieurs feuilles excel de différents fichiers, dont l'un est un fichier csv. Alors quand j'ouvre ce fichier csv directement avec la souris avec excel, ça s'affiche normal.
Mais quand je copie la feuille de ce fichier csv dans mon fichier de rassemblement (par le bias de mon appli), il me le copie sous forme d'origine, c'est-à-dire qu'il ne prend pas en compte les séparateurs ";".
Tous les champs sont rassemblé dans la colonne A.

Une idée, pour qu"il me recopie la feuilel normalement?

Merci.
Bonne journée.

5 réponses

lepetitcodeur Messages postés 8 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 23 juillet 2009
17 juin 2009 à 14:15
pour modifier le séparateur tu fais un ctrl+f -> remplacer tu remplis les champs puis remplacer tout (tes données en elles-mêmes ont pas de ";" je suppose)

Sinon si tu fais une macro pour importer des données en choisissant le séparateur par défaut
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\base.csv", Destination _
        :=Range("A1"))
        .Name = "base"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited 'là tu délimites entre chaque donnée
        .TextFileTextQualifier = xlTextQualifierDoubleQuote 'c'est cette ligne qui correspond au  ";"
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub 


Bon bien sur là c'est juste le code macro fait à l'arrache, il faut un peu adapter pitetre ;)
3
lepetitcodeur Messages postés 8 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 23 juillet 2009
17 juin 2009 à 12:10
Salut,
alors petites questions :
comment copies tu avec ton appli ? une petite copie du code serait le top pour jeter un coup d'oeil ^^'
0
cs_frippons Messages postés 18 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 29 juillet 2009
17 juin 2009 à 12:15
Cela vient de ton importation, il faut que tu importes et que modifie les séparateur. Cela se passe assez souvent quand on passe d'un csv en anglais ou les nombre décimaux sont avec des point et que ton excel est en francais et donc le point ne fonctionne pas.

Donc fait ton importation manuellement dans un fichier excel, en vayant à  vérifier tes séparateur enregistre leur puis ton vba fera sans doute le reste.
0
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
17 juin 2009 à 13:48
Bonjour Frippons et merci de m'avoir répondu.

voici mon code:

    Workbooks.Open (Monchemin)
    Workbooks("fich.csv").Sheets(feuille).Copy After:=Workbooks("TestCroisement.xls").Sheets(1)
    Workbooks("TestCroisement.xls").Sheets(feuille).Name = "mafeuillecsv"
    Workbooks(fich).Saved = True
    Workbooks(fich).Close

tu peux me dire comment modifier le séparateur? dans mon fichier csv c'est séparer avec des ";".

Merci.
0

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

Posez votre question
mmmxtina Messages postés 67 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 avril 2013
17 juin 2009 à 14:46
Merci lepetitcodeur ça marche niquel!!!!!!
ya pratiquement pas de modif, tout y est!
bonne journée!!
0
Rejoignez-nous