Platform Movement implement

Hi, I have a problem, the movement left-right is not functionnal. Can I help you ?

    MovePlatformLeft()<suspends>:void=
        StartPosition: vector3 = PlatformElem.GetTransform().Translation
        EndPosition: vector3 = vector3{X:=PlaformPositionTo, Y:= StartPosition.Y, Z:= StartPosition.Z}
        
        loop:
            var CurrentPosition: vector3 = PlatformElem.GetTransform().Translation
            if (Distance(CurrentPosition, EndPosition) > MarginPosition):
                NewPosition: float = CurrentPosition.X + IncrementMovementSpeed
                PlatformElem.MoveTo(vector3{X:=NewPosition, Y:=CurrentPosition.Y, Z:=CurrentPosition.Z}, PlatformElem.GetTransform().Rotation, MovementOvertime)
                PlatformElmReversed.MoveTo(vector3{X:=NewPosition, Y:=CurrentPosition.Y, Z:=CurrentPosition.Z}, PlatformElmReversed.GetTransform().Rotation, MovementOvertime)
            else:
                MovePlatformRight()
                    
    MovePlatformRight()<suspends>:void=
        StartPosition: vector3 = PlatformElem.GetTransform().Translation
        EndPosition: vector3 = vector3{X:=PlaformPositionToBack, Y:= StartPosition.Y, Z:= StartPosition.Z}

        loop:
            var CurrentPosition: vector3 = PlatformElem.GetTransform().Translation
            if (Distance(CurrentPosition, EndPosition) > MarginPosition):
                NewPosition: float = CurrentPosition.X - IncrementMovementSpeed
                PlatformElem.MoveTo(vector3{X:=NewPosition, Y:=CurrentPosition.Y, Z:=CurrentPosition.Z}, PlatformElem.GetTransform().Rotation, MovementOvertime)
                PlatformElmReversed.MoveTo(vector3{X:=NewPosition, Y:=CurrentPosition.Y, Z:=CurrentPosition.Z}, PlatformElmReversed.GetTransform().Rotation, MovementOvertime)
            else:
                MovePlatformLeft()

The movement left functionnel, but right movement not working.
the variable IncrementMovementSpeed, MarginPosition, MovementOvertime, PlaformPositionToBack implement in UEFN.