Bonjour BillySteph, le Forum
Je pense qu'une petite démo vaut toujours mieux qu'un long discours !
=> Fichier Téléchargeable Lien supprimé
=> Fil de Discussion Lien supprimé
Maintenant pour ta demande précise, il faudra un peu adapter le code à ce niveau :
=> Module.Name "Exportation"
=> Macro.Name "Sub BuildTXT(Separateur As String)"
=> Line.Number 30 to 32
=> Code Original :
If C < 4 Then
TheText = TheText & CStr(Cells(L, C).Text) & Separateur
Else
TheText = TheText & CStr(Cells(L, C).Text)
End If
=> Code de Remplacement :
If C < 4 Then
TheText = TheText & Chr(34) & CStr(Cells(L, C).Text) & Chr(34) & Separateur
Else
TheText = TheText & Chr(34) & CStr(Cells(L, C).Text) & Chr(34)
End If
Maintenant au regard de ce que tu as écrit => "1","2",3,"4",5,6
Je Conclus que tu as 6 colonnes alors que mon Programme en exporte que 4...
Donc le code pour toi donnerait un peu un résulat comme ceci :
Option Explicit
Sub BuildTXTBillySteph()
Dim Range As Object, Line As Object
Dim TheText As String, ThePath As String, Separator As String
Dim TheFile As Variant
Dim L As Integer
Dim C As Byte
ThePath = ThisWorkbook.Path & "\ReportDataTXT"
TheFile = Application.GetSaveAsFilename(ThePath, "Fichier,*.txt")
If TheFile = False Then Exit Sub
Separator = ","
Set Range = ActiveSheet.Range("A1:F" & TXT.Range("A65536").End(xlUp).Row)
Open TheFile For Output As #1
For Each Line In Range.Rows
L = L + 1
TheText = ""
For C = 1 To 6
If C < 3 Or C = 4 Then
TheText = TheText & Chr(34) & CStr(Cells(L, C).Text) & Chr(34) & Separator
ElseIf C = 3 Or C = 5 Then
TheText = TheText & CStr(Cells(L, C).Text) & Separator
Else
TheText = TheText & CStr(Cells(L, C).Text)
End If
Next C
Print #1, TheText
Next
Close
Set Range = Nothing
End Sub
Bon Aprèm
@+Thierry