Import de données sur excel
Résolu
TOTO
-
TOTO -
TOTO -
Bonjour,
Je cherche à importer un fichier EDI dans Excel, mon problème est que l'ensemble du fichier tient sur une ligne sans retour à la ligne. Je ne peux pas lui indiquer un séparateur car je dépasse les limites du nombre de colonnes.
Est-il possible avec vba d'indiquer qu'à chaque séparateur les données doivent être renvoyées sur une nouvelle ligne ?
Par exemple un fichier :
Jean;Jacques;Paul;Bernard;.... avec plus de 256 prénoms. séparateur ";" pour faire simple
Je voudrais le convertir sous la forme :
Jean
Jacques
Paul
Bernard
Merci de votre aide
Je cherche à importer un fichier EDI dans Excel, mon problème est que l'ensemble du fichier tient sur une ligne sans retour à la ligne. Je ne peux pas lui indiquer un séparateur car je dépasse les limites du nombre de colonnes.
Est-il possible avec vba d'indiquer qu'à chaque séparateur les données doivent être renvoyées sur une nouvelle ligne ?
Par exemple un fichier :
Jean;Jacques;Paul;Bernard;.... avec plus de 256 prénoms. séparateur ";" pour faire simple
Je voudrais le convertir sous la forme :
Jean
Jacques
Paul
Bernard
Merci de votre aide
1 réponse
-
Bonjour,
voici un vba à coller dans un moduleSub SplitFichierEDIT() Dim objFSO, objEDI Dim Ligne, Champ, RangChamp, NewLigne Dim FichierExcel, Feuille Const ForReading = 1 Const ForWriting = 2 'Définition du fichier EDI Set objFSO = CreateObject("Scripting.filesystemobject") Set objEDI = objFSO.opentextfile("D:\Data\Fichiers\Test\TestEDI.txt", ForReading) 'Définition du fichier Excel Set FichierExcel = ActiveWorkbook Set Feuille = ActiveSheet 'Lecture des données NewLigne = 2 Do While objEDI.AtEndOfStream <> True 'Lecture de la ligne Ligne = objEDI.readline Champ = Split(Ligne, ";", -1) If Ligne <> "" Then For RangChamp = 0 To UBound(Champ, 1) Feuille.Range("A" & NewLigne) = Champ(RangChamp) NewLigne = NewLigne + 1 Next End If Loop End Sub
Il faut changer le chemin du fichier original. La macro écrit dans la feuille active. Il est possible de pointer sur une feuille donnée.