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
- Effacer les données de navigation sur android - Guide
- Comment calculer la moyenne sur 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.