XL 2013 Convertir fichier excel en fichier texte

  • Initiateur de la discussion Initiateur de la discussion Mouelhib
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
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
demo.gif
 
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
Regarde la pièce jointe 1167607
Bonjour, merci pour votre aide, je vais essayer votre 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 caractères que tu veux
terminé la chose est simple, le reste ne change pas
 
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
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour