Option Explicit
[COLOR=green]'@+Thierry's[/COLOR][COLOR=green] Démo pour Excel-Downloads.com, April 2005[/COLOR]
Sub BuildTXT()
Dim Plage As Object, Line As Object
Dim TheText As String, ThePath As String, TmpString As String
Dim TheFile As Variant
Dim L As Integer
Dim C As Byte, X As Byte, i As Integer
TheFile = Application.GetSaveAsFilename(ThePath, "Fichier,*.txt")
If TheFile = False Then Exit Sub
L = 4 [COLOR=green]'= Ligne de départ + 1 soit 5[/COLOR]
With Sheets("TXT")
Set Plage = .Range("A5:[B]J[/B]" & .Range("A65536").End(xlUp).Row)
End With
Open TheFile For Output As #1
For Each Line In Plage.Rows
L = L + 1
TheText = ""
For C = 1 To 10 [COLOR=green]'10 Colonnes[/COLOR]
Select Case C
Case 1, 3
TmpString = ""
For i = Len(CStr(TXT.Cells(L, C).Text)) To 9 [COLOR=green]'Pour une largeur de 10 (ESPACES APRES)
[/COLOR] TmpString = TmpString & Chr(32)
Next
TheText = TheText & Left(CStr(TXT.Cells(L, C).Text), 10) & TmpString
Case 2
TmpString = ""
For i = Len(CStr(TXT.Cells(L, C).Text)) To 19 [COLOR=green]'Pour une largeur de 20 (ESPACES APRES)
[/COLOR] TmpString = TmpString & Chr(32)
Next
TheText = TheText & Left(CStr(TXT.Cells(L, C).Text), 20) & TmpString
Case 4 To 9
TmpString = ""
For i = Len(CStr(TXT.Cells(L, C).Text)) To 29[COLOR=green] 'Pour une largeur de 30 (ESPACES AVANT)
[/COLOR] TmpString = Chr(32) & TmpString
Next
TheText = TheText & TmpString & CStr(TXT.Cells(L, C).Text)
Case 10
TmpString = ""
For i = Len(CStr(TXT.Cells(L, C).Text)) To 39[COLOR=green] 'Pour une largeur de 40 (ESPACES AVANT)
[/COLOR] TmpString = TmpString & Chr(32)
Next
TheText = TheText & TmpString & CStr(TXT.Cells(L, C).Text)
End Select
Next
Print #1, TheText
Next
Close #1
Set Plage = Nothing
End Sub