Hi

another option..

Code:
Option Explicit

Sub kTest()
        
    Dim b   As String, d As String
    
    Const TrailingChar = "x"    'adjust the char
    Const SpeclChar = "####"
    
    With Intersect(ActiveSheet.UsedRange, Range("a:d"))
        b = .Columns(2).Address
        d = .Columns(4).Address
        On Error Resume Next
        .Columns(2).SpecialCells(4) = SpeclChar
        .Columns(2) = Evaluate("if(" & d & "<>0,if(right(" & b & ",len(""" & TrailingChar & """))=""" & TrailingChar & """,left(" & b & ",len(" & b & ")-len(""" & TrailingChar & """))," & b & ")," & b & ")")
        .Columns(2).Replace SpeclChar, vbNullString, 1
    End With
    
End Sub