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.
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 : " & logfileAvez 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 : " & logfileEst 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 : " & logfileMerci beaucoup, c'est parfait !