I worked up a function that will process a string as you've requested based on the examples given. I can't know everything about your situation and dataset so it's obviously untested, but it could give you an idea of an approach you could take:
Code:
Public Function FixMyString(ByVal InputStr As String) As Variant
Dim pos As Integer 'index position of the last digit(s) in the input string
Dim InputLen As Integer 'num of chars in the input string
Dim asciiCode As Integer 'ascii value of the last char in the string to see if it has a T (or anything other than a number)
'Replace ALL period chars with a comma
InputStr = Replace(InputStr, ".", ",")
'Decide where in the sting to look to check if the last digits are 1 digit or two digits
asciiCode = Right(InputStr, 1)
InputLen = Len(InputStr)
If Not (asciiCode > 47 And asciiCode < 58) Then 'If the last char in the string is anything other than a number
pos = InputLen - 3
Else
pos = InputLen - 1
End If
'If there is hyphen in this position then insert a 0 char because we expected a digit
If Mid(InputStr, pos, 1) = "-" Then
InputStr = Left(InputStr, pos) & "0" & Right(InputStr, InputLen - pos)
End If
FixMyString = InputStr
End Function