Wow, j'allais poser cette question moi-même mais elle a déjà été posée. Toutes les sorties du presse-papiers Excel sont délimitées par des tabulations par défaut. C'est un peu ennuyeux pour une “vraie” sortie de texte brut lorsque vous avez une police à largeur fixe mais pas nécessairement la prise en charge du délimiteur de tabulation.
Quoi qu'il en soit, j'ai trouvé et modifié une petite macro Excel qui copie la région actuellement sélectionnée sous la forme d'un simple tableau ASCII de colonnes à largeur fixe – comme ça :
187712 201 37 0.18 2525 580 149 0.25 136829 137 43 0.31
Voici le code de la Macro. Pour l'utiliser, assurez-vous que vous activez l'onglet Développeur dans les options Excel si vous utilisez Excel 2007 ou une version ultérieure.
Sub CopySelectionToClipboardAsText()
' requires a reference to "Windows Forms 2.0 Object Library"
' add it via Tools / References; if it does not appear in the list
' manually add it as the path C:\Windows\System32\FM20.dll
Dim r As Long, c As Long
Dim selectedrows As Integer, selectedcols As Integer
Dim arr
arr = ActiveSheet.UsedRange
selectedrows = UBound(arr, 1)
selectedcols = UBound(arr, 2)
Dim temp As Integer
Dim cellsize As Integer
cellsize = 0
For c = 1 To selectedcols
temp = Len(CStr(Cells(1, c)))
If temp > cellsize Then
cellsize = temp
End If
Next c
cellsize = cellsize + 1
Dim line As String
Dim output As String
For r = 1 To selectedrows
line = Space(selectedcols * cellsize)
For c = 1 To selectedcols
Mid(line, c * cellsize - cellsize + 1, cellsize) = Cells(r, c)
Next c
output = output + line + Chr(13) + Chr(10)
Next r
Dim MyData As MSForms.DataObject
Set MyData = New DataObject
MyData.SetText output
MyData.PutInClipboard
MsgBox "The current selection was formatted and copied to the clipboard"
End Sub