Supprimer les deux premières lignes du dernier fichier texte

Bonjour,

Je souhaiterai pouvoir réaliser la manipulation suivante :

  • Sélectionner le dernier fichier texte créé
  • Supprimer les deux premières lignes
  • Enregistrer le fichier avec le même nom de fichier.

L'existant est le suivant :

  • A partir d'un fichier Excel long de 53 colonnes et de 1200 caractères, réalisation d'un copié/collé dans un fichier text créé
  • Ce fichier texte est enregistré sous la date, et l'heure du moment.
=> pour cela tout se passe bien, sauf que j'ai deux premières lignes vides qui sont créées et qui doivent être supprimées pour le traitement à suivre.

Voici le code de la manip':

Dim lig As Long, col As Long, nbCar As Variant
    Dim data As Variant
    nbCar = Worksheets("Structure fichier").[A2:BA2]
    derlig = Cells(Rows.Count, "A").End(xlUp).Row
    Application.ScreenUpdating = False
    If derlig > 2 Then
        For lig = 2 To derlig
            data = Cells(lig, 1).Resize(, 53)
                      For col = 1 To 53

    data(1, col) = Left(data(1, col) & Space(nbCar(1, col)), nbCar(1, col))

            Next col
            Cells(lig, 1).Resize(, 53) = data
        Next lig
    End If
    Application.ScreenUpdating = True

Dim ws As Worksheet
User_code = Environ("Username")

    FileNumber = FreeFile    ' Lit le numéro de fichier inutilisé
    logfile = "C:\Documents and Settings\" & User_code & "\Mes documents\mandats_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") & ".txt"
    Set ws = ActiveWorkbook.Worksheets("Données globales")
    Open logfile For Append As #FileNumber
    Print #FileNumber,
    Close #FileNumber

Dim FileNum As Integer, cl As Range, z As Integer, y As Integer
Dim myStr As String
FileNum = FreeFile

Open logfile For Append As #FileNum

z = 14000
For Each cl In Range(Cells(2, 1), Cells(derlig, 53))

        y = cl.Row
    If y = z Then
        myStr = myStr & cl

    Else: Print #FileNum, myStr
        z = cl.Row
        myStr = "": myStr = myStr & cl

    End If
Next

Print #FileNum, myStr
Close #FileNum

MsgBox "Le fichier text est prêt sous : " & logfile

Avez vous des suggestions pour m'aider dans mon besoin?

Merci beaucoup par avance.

Cindy

J'ai modifié mes lignes de codes (il y avait un doublon entre les Print et les Close", mais j'ai toujours une première ligne au début de mon fichier texte.

    Dim lig As Long, col As Long, nbCar As Variant
    Dim data As Variant
    nbCar = Worksheets("Structure fichier").[A2:BA2]
    derlig = Cells(Rows.Count, "A").End(xlUp).Row
    Application.ScreenUpdating = True

    If derlig > 2 Then
        For lig = 2 To derlig
            data = Cells(lig, 1).Resize(, 53)
                      For col = 1 To 53

    data(1, col) = Left(data(1, col) & Space(nbCar(1, col)), nbCar(1, col))

            Next col
            Cells(lig, 1).Resize(, 53) = data
        Next lig
    End If
    Application.ScreenUpdating = True

Dim ws As Worksheet
User_code = Environ("Username")
Dim FileNum As Integer, cl As Range, z As Integer, y As Integer
Dim myStr As String
FileNum = FreeFile

logfile = "C:\Documents and Settings\" & User_code & "\Mes documents\mandats_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") & ".txt"
Set ws = ActiveWorkbook.Worksheets("Données globales")

Open logfile For Append As #FileNum

Do While Application.Worksheets("Données globales").Range(Cells(2, 1), Cells(derlig, 53)).Value <> ""

z = 14000
For Each cl In Range(Cells(2, 1), Cells(derlig, 53))

       y = cl.Row
   If y = z Then
      myStr = myStr & cl

    Else: Print #FileNum, myStr
       z = cl.Row
       myStr = "": myStr = myStr & cl

    End If
Next

Print #FileNum, myStr
Close #FileNum

MsgBox "Le fichier text est prêt sous : " & logfile

Est ce que quelqu'un a une idée de la façon dont je pourrai ne pas la faire apparaître?

Je fais un petit up, car je n'ai toujours pas trouvé de solution

Bonjour à tous,

Je n'aui pas trouvé mieux que mon code actuel, mais je bloque toujours sur cette première ligne... il faudrait que mon fichier texte n'est pas de ligne de vide en premier.

bonjour,

proposition de correction, sans garantie car je n'ai pas pu tester, je ne dispose pas de tes fichiers.

Open logfile For Append As #FileNum

'  tu devrais avoir une erreur au moment de l'exécution, il manque l'instruction de cloture de cette instruction
' pour moi elle ne sert à rien donc je l'enlève.
' Do While Application.Worksheets("Données globales").Range(Cells(2, 1), Cells(derlig, 53)).Value <> ""

z = 14000

For Each cl In Range(Cells(2, 1), Cells(derlig, 53))

   y = cl.Row
   If y = z Then
      myStr = myStr & cl

    Else
       if myStr<>"" then  Print #FileNum, myStr
       z = cl.Row
       myStr = "": myStr = myStr & cl

    End If
Next

if myStr<> " " then Print #FileNum, myStr
Close #FileNum

MsgBox "Le fichier text est prêt sous : " & logfile

Merci beaucoup, c'est parfait !

Rechercher des sujets similaires à "supprimer deux premieres lignes dernier fichier texte"