Import de données sur excel

Résolu/Fermé
TOTO - 17 avril 2009 à 11:20
 TOTO - 17 avril 2009 à 12:16
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

1 réponse

leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
123
17 avril 2009 à 11:58
Bonjour,

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.

0
C'est exactement ce qu'il me fallait,

Merci beaucoup, je vais analyser cette macro pour ma culture vba.
0