Bonjour,
Teste avec un fichier texte .txt :
Sub EcrireFichierTexte()
Dim LaPlage As Range
Dim I As Long
Dim Phrase As String
'défini la plage sur la feuille active
Set LaPlage = Plage(ActiveSheet)
'adapter le chemin et nom du fichier texte
'si il n'existe pas dans le dossier, le fichier est créé
Open "D:\Mon Dossier\Texte.txt" For Output As #1
'la plage est parcourue de la gauche vers la droite et du haut vers le bas
For I = 1 To LaPlage.Count
'concatène les cellules de la même ligne
Phrase = Phrase & LaPlage(I).Value
'et si on est sur la cellule de la dernière colonne, inscrit puis à la ligne suivante
If I Mod LaPlage.Columns.Count = 0 Then
Print #1, Phrase
Phrase = ""
End If
Next I
'ferme le fichier texte
Close #1
End Sub
Function Plage(Fe As Worksheet) As Range
With Fe
Set Plage = .Range(.Cells(1, 1), .Cells( _
.Cells.Find("*", .Cells(1, 1), -4123, , 1, 2).Row, _
.Cells.Find("*", .Cells(1, 1), -4123, , 2, 2).Column))
End With
End Function
Hervé.