Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Convertir fichier excel en fichier texte

Mouelhib

XLDnaute Nouveau
Bonjour, je poste de nouveau ma demande d'aide, voila en parcourant le forum j'ai trouvé des solutions à plusieurs de mes problèmes grâce à vos réponses. donc j'ai pu exporter mes données en format txt seuelemnt je veux garder la longueur des deux champs Nom et prénom (40c chacun) sachant que parfois le prénom ou le nom soit composé et bien entendu je dois insérer des espaces pour atteindre (40c) de même pour les montants qui doivent rester sur 12c donc je dois ajouter des 0.
Juste une petite macro qui reussi à me faire cela et merci pour vos aide.
 

Pièces jointes

  • fichierdonnées.xlsx
    16.2 KB · Affichages: 9
Solution
re
Bonjour
dans mon code en post 4 la chose est très simple
si j'ai bien compris ton intention (bien sur )
VB:
For i = 1 To UBound(tbl)
        tbl(i, 9) = tbl(i, 9) & Application.Rept(" ", 40 - Len(tbl(i, 9)))'nom
        tbl(i, 10) = tbl(i, 10) & Application.Rept(" ", 40 - Len(tbl(i, 10)))'prenom

        'formate les colonnes que tu veux ici
        'la colonne "montant je ne sais pas la quelle c'est

    Next
dans cette boucle ici je fait le nom et prenom (respectivement les colonnes 9 et 10)
il ne tiens qu'a toi d'en ajouter
il te suffit de copier la ligne du prenom(la 10) par exemple
de la coller la ligne en dessous
et dans cette nouvelle ligne ,de changer le 10 pour la colonne que tu veux et le 40 pour le nombre de...

sousou

XLDnaute Barbatruc
Bonjour,
He oui.... ne connaissant pas les colonnes montant, j'ai un exemple avec la colonne 21 (array à modifier en conséquence
Macro formater,
 

Pièces jointes

  • fichierdonnées.xlsm
    36.2 KB · Affichages: 1

patricktoulon

XLDnaute Barbatruc
bonjour à tous
juste en passant
ADAPTE "fichier"
VB:
Sub regtext()
    Dim fichier, tbl, i&, c&, x&, T$
    fichier = "C:\Users\patrick1\Desktop\mon fichierentxt.txt"'A ADAPTER
  
    tbl = Range("a1", Cells(1, "a").End(xlDown)).Resize(, 115)
    For i = 1 To UBound(tbl)
        tbl(i, 9) = tbl(i, 9) & Application.Rept(" ", 40 - Len(tbl(i, 9)))'nom
        tbl(i, 10) = tbl(i, 10) & Application.Rept(" ", 40 - Len(tbl(i, 10)))'prenom

        'formate les colonnes que tu veux ici
        'la colonne "montant je ne sais pas la quelle c'est

    Next

    For i = 1 To UBound(tbl)
        For c = 1 To UBound(tbl, 2)
            T = T & tbl(i, c) & ";"
        Next
        T = T & vbCrLf
    Next
    x = FreeFile: Open fichier For Output As #x: Print #x, T: Close #x
End Sub
résultat
 

Mouelhib

XLDnaute Nouveau
Bonjour, merci pour votre aide, je vais essayer votre solution.
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
dans mon code en post 4 la chose est très simple
si j'ai bien compris ton intention (bien sur )
VB:
For i = 1 To UBound(tbl)
        tbl(i, 9) = tbl(i, 9) & Application.Rept(" ", 40 - Len(tbl(i, 9)))'nom
        tbl(i, 10) = tbl(i, 10) & Application.Rept(" ", 40 - Len(tbl(i, 10)))'prenom

        'formate les colonnes que tu veux ici
        'la colonne "montant je ne sais pas la quelle c'est

    Next
dans cette boucle ici je fait le nom et prenom (respectivement les colonnes 9 et 10)
il ne tiens qu'a toi d'en ajouter
il te suffit de copier la ligne du prenom(la 10) par exemple
de la coller la ligne en dessous
et dans cette nouvelle ligne ,de changer le 10 pour la colonne que tu veux et le 40 pour le nombre de caractères que tu veux
terminé la chose est simple, le reste ne change pas
 

Mouelhib

XLDnaute Nouveau
Merci Patrick, c'est ce que j'ai fais et ça marche. j'ai supprimé le séparateur parce que je n'en ai pas besoin.
 

Pièces jointes

  • fichierdonnées.xlsm
    21.2 KB · Affichages: 3

Mouelhib

XLDnaute Nouveau
Encore un truc SVP, comment puis je exporter la date de format jj/mm/aaaa en jjmmaaaa (je doit supprimer / pour avoir une longueur de 8 seulement), pour le moment je suis entrain de la faire manuellement.
Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…