Bonjour à tous et aux autres ,
Une macro dans le classeur .xlsm joint. Ce classeur contient une macro Reformater qui va traiter les retours à la ligne de la sélection active.
- Ouvrir le classeur rdbx-Traiter-Retour-Lignes-v1.xlsm (pour que sa macro soit visible par l'application Excel).
- Ensuite sélectionner le classeur source. Dans ce classeur, sélectionner la feuille des données sources puis sur cette feuille sélectionner la plage à traiter.
- Une fois cette plage sélectionnée, sans changer de feuille (et en veillant à conserver la plage sélectionnée), tapez directement la combinaison des 3 touches Ctrl+Maj+J. Ceci lancera la macro pour traiter les cellules de la plage.
[s=co-4f81bd][/s]
nota : je me suis autorisé (et personne ne m'en a empêché jusqu'à maintenant ) à supprimer les lignes qui sont vides. S'il ne faut pas le faire, m'en informer.
Le code de la macro associée à la combinaison des trois touches Ctrl+Maj+J :
Sub Reformater()
Dim xrg As Range
Dim t, x, i&, j&, k&, s, n&
With Intersect(Selection.Parent.UsedRange, Selection)
t = .Value
If Not IsArray(t) Then x = t: ReDim t(1 To 1, 1 To 1): t(1, 1) = x
For i = 1 To UBound(t): For j = 1 To UBound(t, 2)
t(i, j) = Replace(t(i, j), vbCr, vbLf): t(i, j) = Replace(t(i, j), vbLf, vbLf)
s = Split(t(i, j), vbLf)
n = -1
For k = 0 To UBound(s)
If Trim(s(k)) <> "" Then n = n + 1: s(n) = s(k)
Next k
If n > -1 Then ReDim Preserve s(n): t(i, j) = Join(s, vbLf)
Next j, i
.Value = t
End With
End Sub