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
A voir également:
- Import de données sur excel
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
1 réponse
Bonjour,
voici un vba à coller dans un module
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.
voici un vba à coller dans un module
Sub 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.
Merci beaucoup, je vais analyser cette macro pour ma culture vba.