Sub PointVirg2BackSlashPointVirg()
Dim S As Worksheet
Dim R As Range
Dim var
Dim i&
Dim j&
Dim k&
Dim A$
Dim B$
Dim T()
If TypeName(Selection) <> "Range" Then
MsgBox "Il faut sélectionner une plage de cellules"
Exit Sub
End If
If Selection.Cells.Count = 1 Then
MsgBox "Il faut sélectionner au moins 2 cellules (même si vide)"
Exit Sub
End If
var = Selection
ReDim T(1 To UBound(var, 1), 1 To UBound(var, 2))
For i& = 1 To UBound(var, 1)
For j& = 1 To UBound(var, 2)
A$ = CStr(var(i&, j&))
If A$ = "" Then Exit For
For k& = 1 To Len(A$)
If Mid(A$, k&, 1) = ";" Then
If k& = 1 Then
B$ = "\;"
Else
If Mid(A$, k& - 1, 1) <> "\" Then
B$ = B$ & "\;"
Else
B$ = B$ & Mid(A$, k&, 1)
End If
End If
Else
B$ = B$ & Mid(A$, k&, 1)
End If
Next k&
T(i&, j&) = B$
B$ = ""
Next j&
Next i&
Sheets.Add
Set S = ActiveSheet
Set R = S.Range(S.Cells(1, 1), S.Cells(UBound(var, 1), UBound(var, 2)))
R = T
End Sub