Import de données sur excel

Résolu
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

1 réponse

  1. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    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
    1. TOTO
       
      C'est exactement ce qu'il me fallait,

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