Mise en forme d'un fichier texte dans Excel

Bonjour,

Je suis entrain d'essayer d'importer un fichier ".txt.1" dans excel. L'importation s'effectue correctement grâce à ce code :

Private Sub Workbook_Open()

    Dim Fich As Worksheet
    Dim Tbl
    Dim Variables
    Dim Ligne As String
    Dim I As Integer
    Dim J As Integer
    Dim FichierTemp As String

    Set Fich = ThisWorkbook.Worksheets("Feuil1")

    'entêtes de colonnes
    Variables = Array("Code_JDE", _
                      "Format", _
                      "Indice", _
                      "Description", _
                      "Date", _
                      "Dessinateur")

    For I = 0 To UBound(Variables)

      Fich.Cells(1, I + 1) = Variables(I)

    Next I

    'chemin du fichier texte à lire
    FichierTemp = "C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt.1"

    'commence à la seconde ligne pour éviter les entêtes
    J = 1

    'ouverture pour lecture
    Open FichierTemp For Input As #1

    'boucle sur toutes les lignes
    Do While Not EOF(1)

        'lecture de la ligne
        Line Input #1, Ligne

        'si pas vide
        If Ligne <> "" Then

            'incrémente pour la ligne suivante
            J = J + 1

            'splite dans un tableau, attention, le séparateur doit être adapté !
            Tbl = Split(Ligne, ":")

            'inscrit les valeurs dans les cellules de la feuille
            For I = 0 To UBound(Tbl)

                Fich.Cells(J, I + 1) = Tbl(I)

            Next I

        End If

    Loop

    'ferme le fichier
    Close #1

    'vide le tableau
    Erase Tbl

End Sub

Le soucis c'est qu'il me recopie les entêtes et en plus de cela il me colle tout en colonne A alors que je souhaiterai qu'il colle la sélection de l'autre fichier en ligne 2.

Je ne comprends vraiment pas ce qui ne va pas.

Les chemins des fichier sont :

Pour le xls :

C:\ptc_config\config_perso_wf2\code_xls\code.xls

Pour le txt.1

C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt

Merci.

50code.zip (12.35 Ko)
63code-temp-txt.zip (327.00 Octets)

Bonjour

Je trouve qu'il importe bien le fichier texte en 2 colonnes car chaque entrée ne comporte qu'une séparation (:)

En plus

azertym a écrit :

L'importation s'effectue correctement grâce à ce code :

et après

azertym a écrit :

Le soucis c'est qu'il me recopie les entêtes et en plus de cela il me colle tout en colonne A alors que je souhaiterai qu'il colle la sélection de l'autre fichier en ligne 2.

Je ne comprends vraiment pas ce qui ne va pas.

C'est bon ou ce n'est pas bon ?

azertym a écrit :

alors que je souhaiterai qu'il colle la sélection de l'autre fichier en ligne 2.

Tu n'as fourni qu'un seul fichier à importer

Bonjour

Après réflexion

Essayes

Private Sub Workbook_Open()
Dim Fich As Worksheet
Dim Tbl
Dim Variables
Dim Ligne As String
Dim I As Integer
Dim J As Integer
Dim FichierTemp As String

    Set Fich = ThisWorkbook.Worksheets("Feuil1")

    'entêtes de colonnes
    Variables = Array("Code_JDE", _
                      "Format", _
                      "Indice", _
                      "Description", _
                      "Date", _
                      "Dessinateur")

    Fich.Cells.ClearContents

    For I = 0 To UBound(Variables)
      Fich.Cells(1, I + 1) = Variables(I)
    Next I

    'chemin du fichier texte à lire
    FichierTemp = "C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt.1"

    'commence à la seconde ligne pour éviter les entêtes
    J = 2

    'ouverture pour lecture
    Open FichierTemp For Input As #1

    I = 1     ' On commence à la colonne 1

    'boucle sur toutes les lignes
    Do While Not EOF(1)

        'lecture de la ligne
        Line Input #1, Ligne

        'si pas vide
        If Ligne <> "" Then

            'splite dans un tableau, attention, le séparateur doit être adapté !
            Tbl = Split(Ligne, ":")

            'inscrit la valeur en fonction de l'entête de la colonne
            Fich.Cells(J, I) = Tbl(UBound(Tbl))

            ' colonne suivante
            I = I + 1
        End If

    Loop

    'ferme le fichier
    Close #1

    'vide le tableau
    Erase Tbl

End Sub

Fonctionne très bien avec le fichier fourni

Merci Banzai, ca marche parfaitement !

Rechercher des sujets similaires à "mise forme fichier texte"