Transformation Excel en Txt

Chris06nice

XLDnaute Nouveau
Bonjour

Je suis nouveau sur votre forum.
Je cherche depuis un moment un moyen de facilité mon travail mensuel sans y parvenir
Peut etre pouvez vous m'aider
je vous explique

J’ai un fichier Excel avec des colonnes que je récupère mensuellement
Je veux le transformer en fichier txt mais voila il faut que les données soient à une position précise dans le fichier txt pour pouvoir l’importer ensuite dans un programme Sage.

Je vous joins le fichier excel
Et le tableau avec les longueurs de chaque « donnée »

Merci de votre aide

Chris
 

Pièces jointes

  • TEST.xls
    13.5 KB · Affichages: 57
  • TEST.xls
    13.5 KB · Affichages: 60
  • TEST.xls
    13.5 KB · Affichages: 59

tototiti2008

XLDnaute Barbatruc
Re : Transformation Excel en Txt

Re,

Peut-être cette légère modification de la proposition d'Efgé, alors

Code:
Sub Fichier_Texte()
Dim Txt$, Liste(), i&, j&, Lng&, Var&
Liste = Array(0, 2, 10, 1, 30, 20, 5, 12, 12, 12, 12, 12, 2, 13)
Open "D:\temp\Résultat recherche.txt" For Output As #1
With ThisWorkbook
    With .Sheets("TEST44")
    .cells.entirecolumn.autofit
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
    Txt = ""
            For j = 1 To 13
                Lng = Len(.Cells(i, j).text): Var = Liste(j) - Lng
                Txt = Txt & .Cells(i, j).text & Space(Var)
            Next j
            Print #1, Txt
        Next i
    End With
End With
Close #1
End Sub
 

JNP

XLDnaute Barbatruc
Re : Transformation Excel en Txt

Bonjour le fil :),
J'avais plutôt vu les choses comme cela, en reprenant le code de EfGé :rolleyes:...
Code:
Sub Fichier_Texte()
Dim Txt$, Liste1(), Liste2(), i&, j&
Liste1 = Array(0, 2, 10, 1, 30, 20, 5, 12, 12, 12, 12, 12, 2, 13)
Liste2 = Array("", "00", "#0000", "0", "", "", "#00", "#.000", "#.000", "#.000", "#.000", "#.000", "#0", "#0")
Open "C:\temp\Résultat recherche.txt" For Output As #1
With ThisWorkbook
    With .Sheets("TEST44")
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            For j = 1 To 13
                If Liste2(j) = "" Then
                    Txt = Txt & Cells(i, j) & String(Liste1(j) - Len(Cells(i, j)), " ")
                Else
                    Txt = Txt & Format(Cells(i, j), Liste2(j)) & String(Liste1(j) - Len(Format(Cells(i, j), Liste2(j))), " ")
                End If
            Next j
            Print #1, Txt
            Txt = ""
        Next i
    End With
End With
Close #1
End Sub
Bonne suite :cool:
 

JNP

XLDnaute Barbatruc
Re : Transformation Excel en Txt

Re :),
Ca marche également mais ca se limite toujours a la 1ere ligne d'excel
Peut-on automatiser pour plusieurs lignes excel
par exemple de la ligne 1 à 100 ?
Tous les codes proposés marchent avec la totalité des lignes utilisées de la feuille :confused: ...???
Où alors, tu n'as pas de données en colonne A :rolleyes:...
Code:
.Cells(Rows.Count, 1).End(xlUp).Row
Le 1 désigne la colonne A, si c'est la B qui est remplie, il faut utiliser 2, etc. :p...
Bon courage :cool:
 

Efgé

XLDnaute Barbatruc
Re : Transformation Excel en Txt

Re à tous, Bonjour JNP :),

Je rentre de réunion pour m'aperçevoir que, ce que j'imaginai une petite usine (à gaz) n'était, en fait, pas si loin dui but ;).
L'est content le Efgé :D.
Cordialement
 

Discussions similaires

Réponses
6
Affichages
353

Statistiques des forums

Discussions
312 756
Messages
2 091 764
Membres
105 064
dernier inscrit
Voluntaries