Essayez la fonction définie par l'utilisateur suivante:
Public Function PrettyOutput(sIN As String) As String
Dim hr As String, i As Long, maxL As Long
Dim U As Long
hr = Chr(10)
If InStr(1, sIN, hr) = 0 Then
PrettyOutput = sIN
Exit Function
End If
ary = Split(sIN, hr)
U = UBound(ary)
For i = 0 To U
ary(i) = Application.WorksheetFunction.Trim(ary(i))
Next i
maxL = 0
For i = 0 To U
bry = Split(ary(i), " ")
If Len(bry(0)) > maxL Then maxL = Len(bry(0))
Next i
For i = 0 To U
bry = Split(ary(i), " ")
PrettyOutput = PrettyOutput & bry(0) & Application.WorksheetFunction.Rept(" ", maxL - Len(bry(0))) & " " & bry(1) & hr
Next i
PrettyOutput = Mid(PrettyOutput, 1, Len(PrettyOutput) - 1)
End Function
Les fonctions définies par l'utilisateur (UDF) sont très faciles à installer et à utiliser:
- ALT-F11 ouvre la fenêtre VBE
- ALT-I
ALT-M ouvre un nouveau module
- collez le contenu et fermez la fenêtre VBE
Si vous enregistrez le classeur, la fonction utilisateur est enregistrée avec celui-ci.
Si vous utilisez une version d'Excel plus tard que 2003, vous devez enregistrer
le fichier en tant que .xlsm plutôt que .xlsx
Pour supprimer le fichier UDF:
- afficher la fenêtre VBE comme ci-dessus
- effacer le code
- ferme la fenêtre VBE
Pour utiliser le fichier UDF d'Excel:
= ma fonction (A1)
Pour en savoir plus sur les macros en général, voir:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
et
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
et pour plus de détails sur les FDU, voir:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Les macros doivent être activées pour que cela fonctionne!
Donc, avec des données dans A1 , dans B1 entrer:
=PrettyOutput(A1)
et format B1 avec une police comme Courrier :