Excel 2003 :1 ligne XLSX => 3 lignes modifiées TXT [Résolu/Fermé]

Signaler
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
-
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
-
Bonjour,

Je suis loin d'être experte, mais je vais essayer d'être le plus précise possible...
Et vous remercie par avance de l'aide et du temps que vous voudrez bien m'accorder.

J'aimerais créer un fichier Texte (séparateur point-virgule) à partir d'un tableau sur Excel qui comporterait un nombre de ligne non défini (variable).
Avec les particularités suivantes :
- le fichier texte portera le même nom que le fichier Excel,
- les 2 premières lignes du fichier Excel ne sont pas à prendre en compte quelque soit leurs contenus,
- le fichier Texte comportera une ligne vide en début de fichier
- la deuxième ligne du fichier Texte sera systématique renseignée par "J'aime la galette"

- la 3è ligne du fichier comportera les données de la 3è ligne du fichier Excel dans l'ordre suivant :
  • colonne A; colonne B, colonne C, colonne D, colonne E, colonne F, colonne G, colonne H

- la 4è ligne du fichier comportera les données de la 3è ligne du fichier Excel dans l'ordre suivant :
  • colonne A; le texte "Fait", colonne C, colonne D, colonne E, colonne F, colonne G=colonne F*0,2, colonne H=colonne F+colonne G (qui vient d'être calculée=colonne F*0,2)

- la 5è ligne du fichier comportera les données de la 3è ligne du fichier Excel dans l'ordre suivant :
  • colonne A; le texte "Fait", colonne C, colonne D, colonne E, colonne F, colonne G=colonne F*0,55, colonne H=colonne F+colonne G (qui vient d'être calculée=colonne F*0,55)


la 6è ligne du fichier comportera les données de la 4è ligne du fichier Excel dans l'ordre suivant :
  • colonne A; colonne B, colonne C, colonne D, colonne E, colonne F, colonne G, colonne H

- la 7è ligne du fichier comportera les données de la 4è ligne du fichier Excel dans l'ordre suivant :
  • colonne A; le texte "Fait", colonne C, colonne D, colonne E, colonne F, colonne G=colonne F*0,2, colonne H=colonne F+colonne G (qui vient d'être calculée=colonne F*0,2)

- la 8è ligne du fichier comportera les données de la 4è ligne du fichier Excel dans l'ordre suivant :
  • colonne A; le texte "Fait", colonne C, colonne D, colonne E, colonne F, colonne G=colonne F*0,55, colonne H=colonne F+colonne G (qui vient d'être calculée=colonne F*0,55)


Etc. jusqu'à atteindre la 1ere cellule vide de la colonne A

J'espère ne pas avoir été trop confuse...

Merci d'avance :D

1 réponse

Messages postés
15732
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2021
1 481
Bonjour,

code a mettre dans un module, adaptez le nom de la feuille et le chemin du fichier:

Sub Export_Txt()
    With Worksheets("feuil1")
        derlig = .Range("A" & Rows.Count).End(xlUp).Row
        TInfos = .Range("A3:H" & derlig).Value
    End With
    LTInf = UBound(TInfos, 1)
    Close
    Fichier = ActiveWorkbook.Name & ".TXT"
    Chemin = "D:\_Test_Txt\"
    SepT = ";"
    Open Chemin & Fichier For Output As #1
        Print #1,
        Print #1, "J'aime la galette"
        
        For N = 1 To LTInf
            For NL = 1 To 3
                If NL = 1 Then         'A;B   ;C;D;E;F;G      ;H;
                    Print #1, TInfos(N, 1); SepT; TInfos(N, 2); SepT; TInfos(N, 3); SepT; TInfos(N, 4); SepT; TInfos(N, 5); SepT; TInfos(N, 6); SepT; TInfos(N, 7); SepT; TInfos(N, 8)
                ElseIf NL = 2 Then  'A;Fait;C;D;E;F;F*0.2;F+F*.02
                    Print #1, TInfos(N, 1); SepT; "Fait"; SepT; TInfos(N, 3); SepT; TInfos(N, 4); SepT; TInfos(N, 5); SepT; TInfos(N, 6); SepT; TInfos(N, 6) * 0.2; SepT; TInfos(N, 6) + TInfos(N, 6) * 0.2
                Else                        'A;Fait;C;D;E;F;F*0.55;F+F*0.55
                    Print #1, TInfos(N, 1); SepT; "Fait"; SepT; TInfos(N, 3); SepT; TInfos(N, 4); SepT; TInfos(N, 5); SepT; TInfos(N, 6); SepT; TInfos(N, 6) * 0.55; SepT; TInfos(N, 6) + TInfos(N, 6) * 0.55
                End If
            Next NL
        Next N
    Close 1
        
End Sub


A+
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
Bonjour f894009,
Mille mercis et plus encore!!!