The following macro will do what you want I hope 
Option Explicit
Sub replace_right_minus()
Dim found As Range
Dim cellcontent As Variant
Dim first_no_change_addr As String
With ActiveSheet.UsedRange
On Error Resume Next
' Look for cells ending with a '-'
Set found = .Find(what:="*-", LookIn:=xlValues, lookat:=xlWhole)
On Error GoTo 0
If Not found Is Nothing Then
Do
' Extract the cell content for everything apart from the '-'
cellcontent = Left(found.Value, Len(found.Value) - 1)
' If the cell contents are numeric then flip the '-' to the left, otherwise record the first found non-numeric cell
If IsNumeric(cellcontent) Then
found.Value = Left(found.Value, Len(found.Value) - 1) * -1
ElseIf first_no_change_addr = "" Then
first_no_change_addr = found.Address
End If
' Look for the next matching cell
Set found = .FindNext(found)
' If nothing is found, stop looking
If found Is Nothing Then Exit Do
Loop While found.Address <> first_no_change_addr ' if we find a cell we've already decided not to change, stop looking
End If
End With
MsgBox "Completed"
End Sub
Bookmarks