Option Explicit
Public Function XportTxt(Sh As Worksheet) As Boolean
Dim FSO As Scripting.FileSystemObject
Dim Ts As TextStream
Dim i%, LeNom$
LeNom = "L:\" & Format(Date, "ddmmyyyy") & "_CasExceptionnels" & ".txt" ' à ajuster
Set FSO = New Scripting.FileSystemObject
Set Ts = FSO.CreateTextFile(LeNom)
For i = 5 To Sh.Range("E" & Rows.Count).End(xlUp).Row 'De 5 à la dernière ligne non vide de la colonne E
If Len(Sh.Range("G" & i)) = 0 Then Ts.WriteLine (Sh.Range("E" & i) & ";" & Format(Sh.Range("F" & i) & Sh.Range("H" & i), "0.00"))
Next i 'Si rien en colonne G, on écrit sur une nouvelle ligne d'un txt la valeur en colonne E; valeur en F et H
If FSO.FileExists(LeNom) Then MsgBox "Fichier créé.", vbInformation, "Confirmation"
Set FSO = Nothing: Set Ts = Nothing 'On libère la mémoire
XportTxt = True 'Pour éviter que le texte de la celulle A1 soit selectionnée.
End Function