Sub MacroavecDonneesConvertir()
'on prépare le terrain
Application.ScreenUpdating = False
With Range("B1:B6")
.FormulaR1C1 = "=TRIM(RC[-1])"
.Value = .Value
End With
Columns("A:A").Delete
Range("A1:A6").Replace What:=" M ", Replacement:="$M$", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1:A6").Replace What:=" P ", Replacement:="$P$", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'On se donne et on se convertit
'une fois
Range("A1:A6").TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _
OtherChar:="$", FieldInfo:=Array(Array(0, 2), Array(17, 9)), _
TrailingMinusNumbers:=True
'deux fois
Range("B1:B6").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, OtherChar _
:="$", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 4)), _
TrailingMinusNumbers:=True
'trois fois
Range("A1:A6").TextToColumns Destination:=Range("E1"), DataType:=xlFixedWidth, _
OtherChar:="$", FieldInfo:=Array(Array(0, 9), Array(18, 2)), _
TrailingMinusNumbers:=True
'quatre fois
Range("E1:E6").TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="$", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 1)), _
ThousandsSeparator:=".", TrailingMinusNumbers:=True
Range("G1:G6").TextToColumns Destination:=Range("G1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, OtherChar _
:="$", FieldInfo:=Array(Array(1, 1), Array(2, 4)), ThousandsSeparator:=".", _
TrailingMinusNumbers:=True
'c'est fini
Range("B1:H6").Columns.AutoFit
Range("B1:H6").Borders.LineStyle = xlContinuous
Application.ScreenUpdating = False
End Sub