Code:SP = Split(Environ("USERNAME") & " " & Now & vbCrLf & Input(LOF(8), #8), vbNewLine)
Code:For N = UBound(SP)To1Step-1: SP(N) = SP(N - 1): Next
Version imprimable
Désolé Robert mais là je ne capte rien, ne décode pas, n'imprime pas, au choix !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub Demo4Noob() Const FICHIER ="C:\Users\dysorthographie\Desktop\Az.txt") Dim L%, N&, SP$() For L = 1 To 110 If Dir(FICHIER) > "" Then Open FICHIER For Input As #8 SP = Split(Environ("USERNAME") & " " & Now & vbCrLf & Input(LOF(8), #8), vbNewLine) Close #8 ReDim Preserve SP(Application.Min(UBound(SP) + 1, 99)) ' For N = UBound(SP) To 1 Step -1: SP(N) = SP(N - 1): Next Else ReDim SP(0) End If 'SP(0) = "Ligne " & Format$(L, "000 : ") & Now Open FICHIER For Output As #8 Print #8, Join$(SP, vbNewLine); Close #8 Next End Sub
Oui ! :plusser: Cela simplifie d'autant …Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Demo4Noob() Const FICHIER = "C:\Windows\Temp\DemoLog.txt" Dim L%, S$, SP$() For L = 1 To 110 S = "Ligne " & Format(L, "000 : ") & Now If Dir(FICHIER) > "" Then Open FICHIER For Input As #8: S = S & vbNewLine & Input(LOF(8), #8): Close #8 SP = Split(S, vbNewLine) If UBound(SP) > 99 Then ReDim Preserve SP(99): S = Join(SP, vbNewLine) Open FICHIER For Output As #8 Print #8, S; Close #8 Next End Sub
Edit :modification en utilisant une variable Variant pour avoir en mémoire une seule fois les données …
Inutile vu le peu de lignes, retour du code en mode classique …
Merci à vous deux cela répond à mon besoin.